LaTeX/初學者必讀

這份文件的用意是讓你能更快速的了解LaTeX.

在開始之前,請確認你的電腦已經安裝了LaTeX (安裝LaTeX必要的步驟請參照Installation). 我們會從建立一個全新的LaTeX文件開始,接著會帶著你利用這份文件來輸出一份高品質的文稿,像是postscript格式或是PDF格式。

LaTeX 原始碼

編輯

LaTeX 是所謂的標記式語言 (markup language), 使用一些標記去做文章的編排。LaTeX 系統把 LaTeX 原始碼, 依其中的標記, 轉成高品質的文件。打個比方説, LaTeX 很像網頁用的 HTML, HTML 用標記來指定網頁的排版, 文字的大小、顏色等等。

LaTeX 原始碼只是一個純文字檔案, 最早使用英文就是用 ASCII 純文字檔, 近代為多國語言的使用 (包括中文), 大多使用 UTF-8 編碼。只使用純英文的檔案, 用 UTF-8 編碼也是完全和以前 ASCII 檔案相容的, 因此建議有可能有中文或其他語言編寫文件的需求, 就使用 UTF-8 編碼。

以下是最簡單的LaTeX源代碼文件:

\documentclass{article}
\begin{document}
Hello World!
\end{document}

以上源代碼經過LaTeX的編譯,會輸出dvi,pdf等格式的文件.產生如下輸出:

Hello World!

空格或空行

編輯

空白字元,例如空格或是Tab在Latex中通常都被視為空格,多個空格在latex中也被視為單一空格。 若空白在一行的行首時通常不會顯示出來,每一行的結束通常在Latex中都會被視為一個空格。 若要表示一個段落,則在上段最後一句和下段第一句間留下空行即可,然而空下多行在latex中會被視為只有空下一行。

下面是例子。

\documentclass{article}
\begin{document}
   no   matter how much
   tab or space you input   
   or   even you start a new line  

        there will be only one space
\end{document}

輸出的效果如下:

no matter how much tab or space you input or even you start a new line

there will be only one space

特殊字元

編輯

以下列舉字元含特殊意義,若你直接輸入下列字元,則下列字元將無法輸出。

# $ % ^ & _ { } ~ \

若要讓這些文字得以輸出,請在這些字元前加反斜線

其他更多的字元可以使用數學公式中的特殊命令或者作爲特殊標記來輸出。

  • 反斜線 \ 不能通過上面所說的在前面加上另一個反斜線的方式輸出, \\ 代表換行, 如果需要輸出一個反斜線, 你可以採用\backslash
  • \~ 的效果是在下一個字符的上方產生一條波浪線, 例如\~n會輸出ñ , 如果要輸出單個的波浪線, 你可以採用\~{}.
  • 類似地, 你也可以使用\^在之後的一個字母上方加上'^', \^{}會產生一個在空格上的'^'.
  • 如果你想要在文章中加入鏈接, 你可以考慮使用\verb, 關於這個命令, 我們將會在formatting中進行更詳細的討論.

LaTeX 指令

編輯

LaTeX的命令是大小寫敏感的, 一般取下列兩種格式之一:

  • 命令以\開頭,命令的主體部分由多個字母組成, 以換行符,空格,tab,數字等非字母字符結尾.
  • 命令以\開頭,命令的主體部分由一個非字母的字符組成.

對於一些需要參數的命令, 參數一般放在命令主體部分後的大括號{}中. 例如:

\^{n}

某些支持可選參數(optional parameters)的命令, 其參數放置在命令主體之後的方括號[]中. 例如:

\commandname[option1,option2,...]{argument1}{argument2}...

LaTeX 環境

編輯

環境在LaTeX中具有和命令相同的格式, 但與命令不同的是, 它會對文件的一部分, 而不是某個字母或者某個參數, 起作用.它的語法如下:

\begin{environmentname}
text to be influenced
\end{environmentname}

\begin\end 之間, 你可以加入其他的命令, 或者聲明另一個環境. 一般來說, 環境也可以接受參數,但這個特性並不常用到, 所以我們把它留到後面再討論.

LaTeX中的一切都可以用環境和命令的形式表示.

注釋

編輯

LaTeX源碼的注釋以%開頭, LaTeX將會忽略掉百分號之後一整行的內容以及最後的換行符還有下一行文本前的所有空白.

  • 注釋可以用於在LaTeX源代碼文件中加入一些備忘的事項,而注釋中的內容將不會出現在輸出的文件中.
\documentclass{article}
\begin{document}
This is the words to be output %This will be ignored by LaTeX
%You won't see me in the file output.
\end{document}
  • 請注意%還可以用來分隔很長的單詞, 或者說長的,中間不允許加入空格等空白字符的一串字母. 例如:
\documentclass{article}
\begin{document}
This is an % stupid
% Better: instructive <----
example: Supercal%
            ifragilist%
icexpialidocious
|render= This is an example: Supercalifragilisticexpialidocious
\end{document}

儘管在源代碼中Supercalifragilisticexpialidocious被分成了三行, 但實際上, 在輸出的文件中, 它還是以一個中間沒有任何空白字符的完整單詞的形式輸出.

LaTeX的核心語法並沒有預置可以將多行文字一併注釋的命令. 如需解決方案請參照 multi-line comments.

輸入檔案架構

編輯

當LaTeX編譯某個源代碼文件時, 它會假定源代碼文件遵從特定的結構. 例如, 每一個源代碼文件都要以\documentclass{...}開始.

這行命令聲明了你想要編寫的文件的類型(例如atricle,book...), 在這之後, 你可以加入一些配置文檔風格的命令, 或者你也可以通過\usepackage{...}加載一些宏包來給LaTeX增加一些新的功能.

當所有的這些配置工作都已經完成後, 你可以開始編輯文檔的正文部分了. 通過輸入\begin{document}來表示進入文檔正文.接下來你可以輸入文檔的正文和一些必要的命令. 當你已經完成文檔的編輯之後, 你需要輸入\end{document}來結束文檔的編輯.

命令,告訴LaTeX每天調用它。 LaTeX將忽略此命令後面的任何內容。 ±和±} 之間的區域稱為前導碼

典型的命令行會話

編輯

LaTeX本身沒有GUI(圖形用戶界面),因為它只是一個程序,可以處理你的輸入文件,並生成DVI或PDF文件。某些LaTeX安裝具有圖形前端,你可以在其中單擊LaTeX來編譯輸入文件。在其他系統上可能涉及一些打字,所以這裡是如何誘導LaTeX在基於文本的系統上編譯輸入文件。請注意:此說明假定你已在計算機上安裝了可用的LaTeX。

  1. 編輯/創建LaTeX輸入文件。該文件必須是純ASCII文本。在Unix上,所有編輯器都會創建這種格式。在Windows上,你可能需要確保以ASCII或純文本格式保存文件。在為文件選擇名稱時,請確保其帶有.tex 擴展名。
  2. 在輸入文件上運行LaTeX。如果成功,你將獲得.dvi文件。可能需要多次運行LaTeX才能獲得目錄和所有內部引用。 當你的輸入文件有錯誤時,LaTeX會告訴你它並停止處理你的輸入文件。

鍵入ctrl-D以返回命令行。

latex foo.tex

現在你可以查看DVI文件。在Unix上使用X11,你可以輸入xdvi foo.dvi, 在Windows上,你可以使用名為yap 的程序(另一個預覽程序). (現在evince和okular——許多Linux發行版的標準文檔查看器,都能夠查看DVI文件。)

你可以使用 pdflatex運行類似的過程,以從原始的.tex 生成PDF文檔。與上面類似,輸入命令:

pdflatex foo.tex

現在你可以查看PDF文件, foo.pdf.

我們的第一份文件

編輯

現在我們可以創建我們的第一個文檔。我們將會用儘可能少的代碼來進行最簡單的輸出:典型的Hello,World!程序。

  • 打開你喜愛的編輯器。如果你使用 vim, emacs 或 Notepad++, LaTeX代碼將會自動高亮標記。
  • 輸入以下LaTeX代碼
% hello.tex - Our first LaTeX example!
\documentclass{article}
\begin{document}
Hello World!
\end{document}
  • 保存為hello.tex.

它代表什麼意思?

編輯
% hello.tex - Our first LaTeX example! 第一行是注釋,因為它以百分號 (%) 開始; LaTeX 會將這樣的一行忽略. 注釋能夠讓作者更加方便地標註源文件的各個部分, 比如標出作者或是年份.
\documentclass{article} 這一行是命令, 指示 LaTeX 這個文檔類型是 article. 文檔類型文件對應格式, 在這個例子中 article 類型對應普遍的文章. 在很多情況下, 只需替換文檔類型即可使相同的文章符合不同的格式要求.
\begin{document} 這一行標識了 document 環境的開始, 提示接下來是文檔的內容部分. 在這行代碼以上的所有代碼被稱為 preamble.
Hello World! 這是這個例子中唯一會真正輸出的內容——我們希望在頁面上顯示的內容.
\end{document} document 環境至此結束. 這行代碼提示 LaTeX 文檔內容已經結束, 在其後的代碼將會被忽略.

正如前文中已經提到的, LaTeX 命令以反斜槓(\)開始. 這就是說, LaTeX 一見到反斜槓, 就會期望一個命令. 注釋不會被視為命令, 因為 LaTeX 在任何時候都會忽略注釋.

生成文件

編輯

It is clearly not going to be the most exciting document you have ever seen, but we want to see it nonetheless. I am assuming that you are at a command prompt, already in the directory where hello.tex is stored.

  1. Type the command: latex hello (the .tex extension is not required, although you can include it if you wish)
  2. Various bits of info about LaTeX and its progress will be displayed. If all went well, the last two lines displayed in the console will be:
Output written on hello.dvi (1 page, 232 bytes).
Transcript written on hello.log.

This means that your source file has been processed and the resulting document is called hello.dvi, which takes up 1 page and 232 bytes of space. This way you created the DVI file, but with the same source file you can create a PDF document. The steps are exactly the same as before, but you have to replace the command latex with pdflatex:

  1. Type the command: pdflatex hello (as before, the .tex extension is not required)
  2. Various bits of info about LaTeX and its progress will be displayed. If all went well, the last two lines displayed in the console will be:
Output written on hello.pdf (1 page, 5548 bytes).
Transcript written on hello.log.

you can notice that the PDF document is bigger than the DVI, even if it contains exactly the same information. The main differences between the DVI and PDF formats are:

  • DVI 需要更少的磁盤空間,創建起來更快。但它不包括文檔中的字體,因此如果你想在另一台計算機上正確查看文檔,則必須安裝所有必需的字體。它不支持任何交互性,如超鏈接或動畫圖像。 DVI查看器也不常見,因此你可以考慮在排版時使用它來預覽文檔。
  • PDF需要更多的磁盤空間並且創建速度較慢,但​​它包含文檔中所有必需的字體,因此你不會遇到任何可移植性問題。它支持內部和外部超鏈接。它還支持高級印刷功能: 懸掛標點符號,字體擴展和邊距字距調整,從而為TeX引擎提供更大的靈活性和更好的輸出效果。如今它是共享和發布文檔的事實標準,因此你可以考慮將其用於文檔的最終版本。

About now, you saw you can create both DVI and PDF document from the same source. This is true, but it gets a bit more complicated if you want to introduce images or links. This will be explained in detail in the next chapters, but for now assume you can compile in both DVI and PDF without any problem.

Note, in this instance, due to the simplicity of the file, you only need to run the LaTeX command once. However, if you begin to create complex documents, including bibliographies and cross-references, etc, LaTeX needs to be executed multiple times to resolve the references. But this will be discussed in the future when it comes up.


Previous: Introduction Index Next: Basics