LaTeX/技巧和竅門
如果您在非預設字型區域插入\LaTeX命令,它將根據相應的格式進行排版。如果您想保留 LaTeX 以計算機現代羅馬字型的形式書寫,則必須重新定義該函式。但是,簡單的
\renewcommand{\LaTeX}{{\rm \LaTeX}}
將輸出
TeX capacity exceeded , sorry [ grouping levels =255].
因此您需要建立一個臨時變數。
遺憾的是,
\newcommand{\LaTeXtemp}{\LaTeX}
\renewcommand{\LaTeX}{{\rm \LaTeXtemp}}
也不起作用。
我們必須使用 TeX 原語\let代替。
\let\LaTeXtemp\LaTeX
\renewcommand{\LaTeX}{{\rm \LaTeXtemp }}
如果您簡單地使用 "i.e." 或 "e.g." 形式,LaTeX 將把句點視為句子結束句點(即 句號),因為它們後跟一個空格,並在下一個 "句子" 之前新增更多空格。為了防止 LaTeX 在最後一個句點後新增空格,正確的語法是 "i.e.\ " 或 "e.g.\ ",或者 "i.e., " 和 "e.g., ",後面跟著一個逗號。逗號被 LaTeX 解釋為句子的一部分,因為句點後面沒有空格。在這種情況下,"i.e.," 和 "e.g.," 不需要任何特殊關注。例如,芝加哥格式手冊 偏愛後者。
如果命令 \frenchspacing 在序言中使用,則句子之間的空格始終與單詞之間的空格相同。
對於長文件,編號會變得很繁瑣,因為數字會達到兩位數和三位數。要使計數器在每個章節開頭重置,並將數字加上字首章節號,請在序言中包含以下內容。
\usepackage{amsmath}
\numberwithin{equation}{section}
\numberwithin{figure}{section}
類似的計數器型別和文件單位(如 "小節")也可以這樣做。
在影像中使用與文件相同的字型和字號通常是比較好的選擇。此外,對於科學影像,您可能需要數學公式或特殊字元(如希臘字母)。如果影像編輯器允許您在影像中使用 LaTeX 程式碼,那麼這兩件事都可以輕鬆實現。大多數向量圖形編輯器都沒有提供此選項。但是,也有一些例外。
在早期,LaTeX 使用者使用 Xfig 來繪製圖形。如今,該編輯器仍被不少人使用,因為它具有特殊的 "匯出到 LaTeX" 功能。它還提供了一些非常基本的方法將 LaTeX 文字和數學封裝到影像中(將文字的 "特殊標誌" 設定為 "特殊" 而不是 "正常")。匯出時,所有 LaTeX 文字都將放在一個 .tex 檔案中,與影像的其餘部分分開(影像將放在一個 .ps 檔案中)。
專門為 LaTeX 使用量身定製的,更新且更易於使用的向量圖形編輯器是 IPE。它允許使用任何 LaTeX 命令,包括但不限於影像中的數學公式。該程式將其檔案儲存為可編輯的 .eps 或 .pdf 檔案,無需在每次編輯後匯出影像。
一款功能非常強大的向量圖形編輯器是 Inkscape。它本身不支援 LaTeX 文字,但您可以使用外掛 Textext 來實現。這使您可以在影像中放置任何 LaTeX 程式碼塊。此外,從版本 0.48 開始,您可以匯出到向量圖形,文字在 .tex 檔案中單獨存放。使用這種方法,文字將由 LaTeX 編譯器本身進行渲染。
LaTeXDraw 是一款免費的開源圖形 PSTricks 生成器和編輯器。它允許您繪製基本的幾何物件,並將結果儲存為多種格式,包括 .jpg、.png、.eps、.bmp 以及 .tex。在最後一種情況下,儲存的檔案只包含 PSTricks/LaTeX 程式碼。因此,您可以在圖片中包含任何可能的 LaTeX 程式碼,因為該檔案將直接由您的 LaTeX 環境進行渲染。
另一種生成向量圖形的方法是使用 Asymptote 語言。它是一種程式語言,可以生成封裝在 Postscript 格式中的向量影像,並支援任何文字標籤中的 LaTeX 語法。
在 LaTeX 文件中包含圖表和表格的一種簡單方法是在通用的電子表格軟體(如 OpenOffice Calc 或 MS Office Excel 等)中建立它們,然後將其作為裁剪後的螢幕截圖包含在文件中。但是,這會生成質量較低的柵格化影像。Calc 還允許您將圖表複製貼上到 OpenOffice Draw 中,並將其儲存為 PDF 檔案。
使用 Microsoft Excel 2010,可以直接將圖表複製到 Microsoft Expression Design 4 中,然後將其儲存為 PDF 檔案。這些 PDF 檔案可以包含在 LaTeX 中。這種方法會生成高質量的向量化影像。
渲染圖形的一種極好的方法是透過 gnuplot,這是一款免費且通用的繪圖軟體,它具有一個特殊的輸出過濾器,可以直接匯出檔案到 LaTeX。我們假設資料儲存在 CSV 檔案(逗號分隔文字)的第一列和第三列中。繪製資料的簡單 gnuplot 指令碼如下所示

set format "$%g$" set title "Graph 3: Dependence of $V_p$ on $R_0$" set xlabel "Resistance $R_0$ [$\Omega$]" set ylabel "Voltage $V_p$ [V]" set border 3 set xtics nomirror set ytics nomirror set terminal epslatex set output "graph1.eps" plot "graph1.csv" using 1:3 #Plot the data
現在 gnuplot 生成了兩個檔案:圖形繪製在graph.eps中,文字在graph.tex中。第二個檔案包含 EPS 影像,因此我們只需要將檔案 graph.tex 包含在我們的文件中
\input{graph1.tex}
以上步驟可以透過 gnuplottex 包自動完成。透過將 gnuplot 命令放在 \begin{gnuplot}\end{gnuplot} 中,並使用 latex -shell-escape 進行編譯,圖形就會被建立並新增到您的文件中。
從 Windows 上的 latex 訪問 gnuplot 失敗可以透過將檔名只寫成一個詞來解決。不要將您的標題檔案命名為 my report.tex,而應該命名為 myreport.tex 。
當您使用 gnuplottex 時,也可以將終端設定作為引數直接傳遞給環境。
\begin{gnuplot}[terminal=epslatex, terminaloptions=color, scale=0.9, linewidth=2 ]
...
\end{gnuplot}
使用 gnuplottex 在某些編輯器中使用匯入資料的代數函式時會導致錯誤的文字高亮顯示,例如
(2*($1)):2
一些編輯器會認為所有後續文字都是公式的一部分,並將其高亮顯示(因為“$”被解釋為 LaTeX 程式碼的一部分)。可以透過以下方式避免這種情況:
#$
\end{gnuplot}
它為 gnuplot 直譯器取消了美元符號的註釋,但不會影響編輯器對 .tex 的解釋。
當使用 pdfLaTeX 而不是簡單的 LaTeX 時,我們必須將 EPS 影像轉換為 PDF 並替換名稱。graph1.tex檔案。如果我們使用類 Unix shell,它只需使用
eps2pdf graph1.eps sed -i s/".eps"/".pdf"/g graph1.tex
包含的 tex 檔案我們可以像普通影像一樣工作。
而不是呼叫eps2pdf直接,我們也可以包含epstopdf包來自動執行該過程。如果我們現在包含一個圖形並省略副檔名,epstopdf將自動將 .eps 檔案轉換為 PDF 並將其插入文字。
\includegraphics{graph1}
這樣,如果我們選擇輸出到 PS 或 DVI,則使用 EPS 版本,如果我們直接輸出到 PDF,則使用轉換後的 PDF 圖形。請注意,使用epstopdf需要使用 latex -shell-escape 編譯。
注意:Emacs AucTex 使用者可能想檢視 Gnuplot-mode。
生成 png 螢幕截圖
[edit | edit source]請參閱 匯出到其他格式。
拼寫檢查和字數統計
[edit | edit source]如果您想對文件進行拼寫檢查,可以使用命令列aspell, hunspell(最好),或ispell程式。
ispell yourfile.tex aspell --mode=tex -c yourfile.tex hunspell -l -t -i utf-8 yourfile.tex
所有三個都理解 LaTeX 並會跳過 LaTeX 命令。您也可以使用具有內建拼寫檢查功能的 LaTeX 編輯器,例如 LyX、Kile 或 Emacs。另一種選擇是 將 LaTeX 原始碼轉換為純文字,然後在 OpenOffice.org 或 KOffice 等文字處理程式中開啟生成的文字檔案。
如果您想統計字數,您可以再次使用 LyX 或將您的 LaTeX 原始碼轉換為純文字,並使用例如 UNIXwc命令
detex yourfile | wc
作為detex命令是pdftotext命令,它從 PDF 中提取 ASCII 文字檔案
1. pdflatex yourfile.tex 2. pdftotext yourfile.pdf 3. wc yourfile.txt
新偶數頁
[edit | edit source]在 twoside 模式下,您可以透過以下方式獲得新的奇數頁
\cleardoublepage
但是,LaTeX 不允許您獲得新的偶數頁。以下方法可以解決這個問題;
以下內容必須放在您的文件序言中
\usepackage{ifthen}
\newcommand{\newevenside}{
\ifthenelse{\isodd{\thepage}}{\newpage}{
\newpage
\phantom{placeholder} % doesn't appear on page
\thispagestyle{empty} % if want no header/footer
\newpage
}
}
要啟用新的偶數頁,請在您希望新的偶數頁出現的地方鍵入以下內容:
\newevenside
如果給定的頁面是奇數頁,下一個新頁面將是偶數頁,LaTeX 將不會做任何事情,而只是一個常規的 \newpage。但是,如果給定的頁面是偶數頁,LaTeX 將建立一個新的(奇數)頁面,插入一個佔位符,並建立一個新的(偶數)頁面。一種粗略但有效的方法。
帶有資訊的側邊欄
[edit | edit source]如果您想新增一個帶有版權和作者資訊的側邊欄,您可能需要使用eso-pic包。示例
\usepackage{eso-pic}
...
\AddToShipoutPicture{%
\AtPageLowerLeft{%
\rotatebox{90}{%
\begin{minipage}{\paperheight}
\centering\textcopyright~\today{} Humble me
\end{minipage} %
}
} %
}%
如果您只想在某一頁上新增它,請在您希望新增它的頁面上使用 AddToShipoutPicture 命令的帶星號版本。(\AddToShipoutPicture*{...})
隱藏輔助檔案
[edit | edit source]如果您使用的是 pdflatex,您可以建立一個資料夾來儲存所有輸出檔案,這樣您的頂級目錄看起來更乾淨。
pdflatex -output-directory tmp
請注意,tmp 資料夾應該存在。但是,如果您使用的是基於 Unix 的系統,您可以執行以下操作:
alias pdflatex='mkdir -p tmp; pdflatex -output-directory tmp'
或者對於 vim,修改您的 .vimrc
" use pdflatex
let g:Tex_DefaultTargetFormat='pdf'
let g:Tex_MultipleCompileFormats='pdf,dvi'
let g:Tex_CompileRule_pdf = 'mkdir -p tmp; pdflatex -output-directory tmp
-interaction=nonstopmode $*; cp tmp/*.pdf .'
