跳轉到內容

LaTeX/常見問題解答

來自華夏公益教科書,開放世界的開放書籍

LaTeX

入門
  1. 介紹
  2. 安裝
  3. 安裝額外軟體包
  4. 基礎
  5. 如何獲得幫助

常用元素

  1. 文件結構
  2. 文字格式
  3. 段落格式
  4. 顏色
  5. 字型
  6. 列表結構
  7. 特殊字元
  8. 國際化
  9. 旋轉
  10. 表格
  11. 標題建立
  12. 頁面佈局
  13. 自定義頁面頁首和頁尾‎
  14. 匯入圖形
  15. 浮動體、圖片和標題
  16. 腳註和邊注
  17. 超連結
  18. 標籤和交叉引用
  19. 首字母

機制

  1. 錯誤和警告
  2. 長度
  3. 計數器
  4. 規則和支柱

技術文字

  1. 數學
  2. 高階數學
  3. 定理
  4. 化學圖形
  5. 演算法
  6. 原始碼清單
  7. 語言學

特殊頁面

  1. 索引
  2. 詞彙表
  3. 參考文獻管理
  4. 更多參考文獻

特殊文件

  1. 科學報告(學士報告、碩士論文、博士論文)
  2. 信件
  3. 簡報
  4. 教師專欄
  5. 簡歷
  6. 學術期刊(MLA、APA 等)

建立圖形

  1. 介紹過程式圖形
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. 建立 3D 圖形

程式設計

  1. Plain TeX
  2. 建立軟體包
  3. 建立軟體包文件
  4. 主題

其他

  1. 模組化文件
  2. LaTeX 文件的協作寫作
  3. 匯出到其他格式

幫助和建議

  1. 常見問題解答
  2. 技巧和竅門

附錄

  1. 作者
  2. 連結
  3. 軟體包參考
  4. LaTeX 文件示例
  5. 索引
  6. 命令詞彙表

編輯此框編輯目錄

邊距過大

[編輯 | 編輯原始碼]

LaTeX 的預設邊距可能看起來太大。在大多數情況下,這是首選的預設值,並且可以提高可讀性。

如果您仍然不同意,您可以輕鬆地使用以下方法更改它們

\usepackage{geometry}
% or
\usepackage[margin=1.5in]{geometry}

請參見 頁面佈局

避免原始碼中出現過多的雙行斷行

[編輯 | 編輯原始碼]

太多一行或兩行的段落看起來不太好。

請記住 TeX 規則

  • 如果找到兩個或多個連續的換行符,TeX 將開始一個新段落。
  • 如果只找到一個換行符,TeX 會插入一個空格,前提是它前面或後面沒有空格。

您可能很想一直放置空白行來提高原始碼的可讀性,但這會影響格式。解決方案很簡單:在空白行的開頭放置一個註釋。這將阻止 TeX 看到另一個換行符——註釋後的所有字元(包括下一個換行符)都會被忽略。

示例

We are in the first paragraph here.
%
We are still in the first paragraph.

This time, this is another paragraph.

簡化特殊字元輸入

[編輯 | 編輯原始碼]

只要您的計算環境支援 UTF-8,您就可以直接輸入特殊字元,而不是輸入 TeX 命令來表示變音符號和其他擴充套件字元。例如,

R\'esum\'e can also be written résumé.

這需要

  • 您的文字編輯器支援並設定為以 UTF-8 儲存您的檔案;
  • 在序言中新增 \usepackage[utf8]{inputenc} 行。

避免使用 latin1。請參見 特殊字元

直接寫入歐元符號

[編輯 | 編輯原始碼]

在您的序言中新增以下幾行

\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\DeclareUnicodeCharacter{20AC}{\EUR{}}

LaTeX 段落標題在同一行上顯示標題和內容

[編輯 | 編輯原始碼]

有些人不喜歡 \paragraph{...} 將標題與內容寫在同一行的方式。這實際上在很多文件中都很常見,並沒有看起來那麼奇怪。

但是,有一些方法可以繞過預設行為;請參見 \paragraph 換行符 瞭解更多資訊。

字型難看/鋸齒/點陣圖PDF 搜尋失敗從 PDF 中複製/貼上很亂

[編輯 | 編輯原始碼]

您一定是使用 OT1 編碼(預設編碼)的變音符號(例如重音)。切換到 T1 編碼

\usepackage[T1]{fontenc}

如果您在更改字型編碼後遇到難看的鋸齒字型,那麼您沒有可用的 Type1 相容字型。安裝 Computer Modern SuperLatin Modern(軟體包名稱可能是 lm)。要使用 Latin Modern,您需要包含軟體包

\usepackage{lmodern}

請參見 字型 以獲取解釋。

手動格式化:使用換行符和分頁符

[編輯 | 編輯原始碼]

確實應該避免手動換行和分頁。TeX 引擎負責這些。手動格式化的一大問題是它不是動態的。即使它第一次看起來很正確,如果您在手動格式化之前更改了任何內容,內容很可能最終會呈現得很糟糕。

建議在文件的分節最高層級(例如,部分或章節)中使用分頁符(儘管當您開始一個新的部分或章節時,LaTeX 通常會為您執行此操作)。當您手動插入分頁符時,您應該使用 \clearpage\cleardoublepage,這將列印當前浮動圖片,然後開始一個新頁面。

如果您絕對必須手動插入換行符或分頁符,您應該在確保完成文件後執行此操作,這樣以後您就不必再回來更新它了。

始終以{} 結束命令

[編輯 | 編輯原始碼]

TeX 有一條不直觀的規則:如果控制序列(命令)後面沒有一對花括號(無論中間是否有引數),那麼後面的空格字元將被忽略。LaTeX 不會列印任何空格,並且命令(例如 TeX 或 LaTeX 的徽標)會與後面的單詞連在一起。

要解決這個問題,請在命令後面使用一對花括號,即使沒有引數。例如

\LaTeX is great. % BAD !
\LaTeX{} is great. % GOOD !

(技術解釋:控制序列名稱只能由字元碼為 11 的字元組成,預設情況下即為 A-Z 和 a-z。TeX 透過反斜槓知道控制序列名稱的起始位置,並在遇到第一個非字元碼為 11 的字元時知道控制序列名稱的結束位置。然後跳過該字元。由於連續的空格已經連線成一個空格,因此沒有空格被考慮在內。)

可以透過使用 xspace 包來定義宏,該宏將動態插入空格。

  • 如果命令後面沒有花括號並且有空格,則會追加一個額外的空格。
  • 如果有花括號,則不會列印額外的空格。

示例

\usepackage{xspace}
\let\latexold\LaTeX
\renewcommand{\LaTeX}{\textrm{\latexold}\xspace}
...
\LaTeX is followed by a space.
\LaTeX{} is followed by a space.
\LaTeX{}is not followed by a space.

避免使用粗體和下劃線

[編輯 | 編輯原始碼]

從排版角度來說,在段落中間使用粗體或下劃線格式通常是不好的做法。這已經成為傳統文字處理軟體使用者的常見習慣,因為這兩個功能很容易使用(以及斜體)。

然而,粗體和下劃線會使文字顯得過重,分散讀者注意力。當您開始閱讀一個段落,其中間有一個粗體字時,您經常會先閱讀強調的部分,從而破壞了內容並打亂了想法的順序。斜體不那麼明顯,而且不像普通字元那樣顯得更重,因此在強調少量文字時通常是更好的選擇。

粗體和下劃線的原始和更恰當的用法是用於特殊部分,例如標題、索引、術語表等。(實際上,下劃線在專業環境中很少使用。)

LaTeX 有一個宏 \emph{...},用於使用斜體強調文字。它應該優先於 \textit{...},因為 \emph{...} 將在其他斜體文字中以常規字型正確列印強調的文字。

使用圖形的正確方法

[編輯 | 編輯原始碼]

習慣使用 Microsoft Word 或 LibreOffice 等所見即所得文字處理軟體的使用者經常會對圖形感到沮喪。答案很簡單:圖形不是圖片!

如果您使用 \includegraphics 而不將其包含在 figure 環境中,它將與文字處理軟體中的行為相同,將圖片放置在原始碼中放置圖片的位置。

圖形是一種浮動物件,它是一種虛擬物件,LaTeX 可以將其放置在與建立位置不同的位置,這有助於防止文字因圖片和表格而變得雜亂。

有關更多詳細資訊,請參閱匯入圖形浮動物件、圖形和標題

文字停止對齊

[編輯 | 編輯原始碼]

您很可能在某個時候使用了 \raggedleft\raggedright\centering,並忘記將其關閉。這些命令是開關——它們一直處於活動狀態,直到作用域結束,或者如果沒有作用域,則直到文件結束。有關更多資訊,請參閱段落對齊

標點符號和間距規則

[編輯 | 編輯原始碼]

LaTeX 會為您做一些工作,但不是所有工作。特別是關於標點符號,您可以隨意做您想做的事情。每種語言的標點符號規則都不同。在英語中,標點符號之前沒有空格,之後有一個空格。

有很多規則,但您可以快速檢視維基百科

在 Babel 語言更改後編譯失敗

[編輯 | 編輯原始碼]

這是 Babel 的一個限制。刪除.aux檔案(或清理專案),然後嘗試再次編譯。

快速或正確學習 LaTeX

[編輯 | 編輯原始碼]

如今,使用搜索引擎和複製貼上網頁內容來“學習”非常普遍。與任何程式語言一樣,這通常是一種不好的方法,會導致缺乏控制、意外結果以及很多沮喪。真正學習 LaTeX 並不難,而且也不需要很長時間。本書中的大多數章節都專門針對特定的用法,因此基礎知識實際上很快就能學會。

如果您對某個特定軟體包感到沮喪,請確保閱讀其官方文件,這通常是最好的資訊來源。在網上找到的內容,即使在這本書中,也不如官方文件那麼準確。不準確的資訊可能會導致錯誤,而您卻不知道原因。

您花在學習上的時間是值得的,並且它很快就會彌補您如果沒有正確學習而一直卡住而損失的時間。

不間斷空格

[編輯 | 編輯原始碼]

這個有用的功能大多數新手都瞭解,儘管它在大多數所見即所得文字處理軟體上都可用。兩個標記(例如單詞、標點符號)之間的不間斷空格可以防止處理器在它們之間插入換行符。這對一致閱讀非常重要。LaTeX 使用“~”符號作為不間斷空格。

您通常會為某些語言中的標點符號、單位和貨幣、首字母縮寫詞等使用不間斷空格。

例如,在法語排版中,您會在所有兩部分標點符號之前放置一個不間斷空格。例如

Il répondit~: «~Ce pain coûte-t-il 2~€~?~»

請注意,像這樣寫法語可能會非常痛苦。幸運的是,Babel 具有 frenchb 選項,它將處理所有標點符號的不間斷空格。在上面的例子中,只需保留歐元符號的不間斷空格。

智慧數學

[編輯 | 編輯原始碼]

所有由字母、變數或其他符號指定的虛擬物件都應使用專門的格式。對於數學和其他許多領域,LaTeX 數學格式是完美的。例如,如果您想引用一個物件A,請寫

Speaking of $A$, let's say...

如果您想在一個句子中引用多個物件,則相同。

Speaking of $A$, $B$ and $C$...

如果您引用一組物件,您仍然可以使用數學符號。

The family $(A, B, C)$ is...

請注意,這與通常的文字括號不同。

A sentence. ($A$, $B$, and $C$ are not concerned, but we do not mean the $(A, B, C)$ family.)

使用向量圖形而不是光柵影像

[編輯 | 編輯原始碼]

光柵(點陣圖)圖形縮放效果很差,並且經常會產生鋸齒或低質量的結果,與文件質量衝突,特別是在列印時。

使用向量(線型)圖形代替,無論是透過 LaTeX 的原生繪圖工具還是透過從您的繪圖或圖表工具匯出向量格式,都將產生更高質量的結果。在可能的情況下,您應該優先考慮 PDF、EPS 或 SVG 圖形而不是 PNG 或 JPG。

拉伸表格

[編輯 | 編輯原始碼]

嘗試使用預設的 tabular 環境拉伸表格,通常會導致意外結果。不錯的 tabu 軟體包將實現您想要的功能,甚至更多。或者,如果您無法使用 tabu 軟體包,您可以嘗試 tabularxtabulary 軟體包。參閱表格

表格比您想象的更容易

[編輯 | 編輯原始碼]

即使表格章節相當長,也值得一讀。最終,你只需要瞭解你選擇的環境的一些知識。

一些 LaTeX 編輯器具有表格助手功能。此外,許多電子表格應用程式具有 LaTeX 匯出功能(或外掛)。同樣,有關更多詳細資訊,請參閱表格

簡化繁瑣的程式碼(列表和長命令名)

[編輯 | 編輯原始碼]

LaTeX 有時寫起來很麻煩,特別是如果你沒有使用合適的編輯器。請參閱編輯器以瞭解一些有趣的選項。

你可以定義別名以縮短一些命令。

\usepackage{xspace}
\newcommand{\tss}[1]{\textsuperscript{#1}}
\newcommand{\tbs}[1]{\textbackslash\xspace}

這裡xspace 包裹可以幫助避免吞掉空格。

對於列表,你可能想嘗試使用easylist 包裹。現在編寫列表就像

\usepackage[ampersand]{easylist}
% ...

\begin{easylist}
& Item 1
& Item 2
&& Subitem 1
&&& Subsubitem 1
& Item 3
&& Subitem 1
\end{easylist}

減小 LaTeX 安裝檔案的大小

[編輯 | 編輯原始碼]

安裝 文章詳細介紹瞭如何在 100 MB 以內手動安裝一個功能齊全的 TeX 環境,包括 LaTeX 和其他功能。


上一頁:匯出到其他格式 索引 下一頁:技巧和竅門
華夏公益教科書