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原始碼文件:

1 \documentclass{article}
2 \begin{document}
3 Hello World!
4 \end{document}

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

Hello World!

空格或空行[編輯]

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

下面是例子。

1 \documentclass{article}
2 \begin{document}
3    no   matter how much
4    tab or space you input   
5    or   even you start a new line  
6 
7         there will be only one space
8 \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,數字等非字母字符結尾.
  • 命令以\開頭,命令的主體部分由一個非字母的字符組成.

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

1 \^{n}

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

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

LaTeX 環境[編輯]

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

1 \begin{environmentname}
2 text to be influenced
3 \end{environmentname}

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

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

注釋[編輯]

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

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

它代表什麼意思?[編輯]

% hello.tex - Our first LaTeX example! The first line is a comment. This is because it begins with the percent symbol (%); when LaTeX sees this, it simply ignores the rest of the line. Comments are useful for people to annotate parts of the source file. For example, you could put information about the author and the date, or whatever you wish.
\documentclass{article} This line is a command and tells LaTeX to use the article document class. A document class file defines the formatting, which in this case is a generic article format. The handy thing is that if you want to change the appearance of your document, substitute article for another class file that exists.
\begin{document} This line is the beginning of the environment called document; it alerts LaTeX that content of the document is about to commence. Anything above this command is known generally to belong in the preamble.
Hello World! This was the only actual line containing real content - the text that we wanted displayed on the page.
\end{document} The document environment ends here. It tells LaTeX that the document source is complete, anything after this line will be ignored.

As we have said before, each of the LaTeX commands begin with a backslash (±). This is LaTeX's way of knowing that whenever it sees a backslash, to expect some commands. Comments are not classed as a command, since all they tell LaTeX is to ignore the line. Comments never affect the output of the document.

生成文件[編輯]

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