LaTeX巨集包介紹備忘
我學習使用LaTeX大概有半年時間,很喜歡這種方式的編輯排版,現在基本上使用的文件編輯都從Office之類的軟體轉移過來了。LaTeX的內容很多,為了方便以後查詢,現在把自己使用過的巨集包介紹和說明文件的下載地址收錄在此。
以下文件的下載地址都在我的百度網盤,不需要CSDN裡面的積分。另外,這些文件都是官方或者開發者免費提供的,不存在侵權問題,大家放心下載使用。
1、geometry
下載:geometry巨集包說明文件百度網盤下載
介紹:這個巨集包用於頁面佈局,例如設定頁面尺寸。
示例:
頁面大小及頁邊距設定
\geometry{a4paper, left = 3.17cm, right = 3.17cm, top = 2.54cm, bottom = 2.54cm}
這段語句的作用就是把頁面設定為A4紙大小,並設定了上下左右的頁邊距,這個邊距是參考MSOFFICE的。
設定單頁的頁邊距
\newgeometry{left = 0cm, right = 0cm, top = 0cm, bottom = 0cm}
% 恢復命令
\restoregeometry
上述語句把頁面的邊距都改為0,後面是恢復成原來的設定。我在編寫封面時就把頁邊距都設為0,好進行全頁面的設計。
2、tikz
下載:tikz巨集包說明文件百度網盤下載
介紹:這個巨集包是強大的線上繪圖包,真的很強。
示例:
示例一
\begin{pgfpicture} \pgfmathdeclarerandomlist{color}{{red}{blue}{green}{yellow}{white}} \foreach \a in {1,...,50}{ \pgfmathrandominteger{\x}{1}{85} \pgfmathrandominteger{\y}{1}{85} \pgfmathrandominteger{\r}{5}{10} \pgfmathrandomitem{\c}{color} \pgfpathcircle{\pgfpoint{+\x pt}{+\y pt}}{+\r pt} \color{\c!40!white} \pgfsetstrokecolor{\c!80!black} \pgfusepath{stroke, fill} } \end{pgfpicture}
效果如下:
示例二
\tikz \datavisualization [ scientific polar axes={0 to pi, clean}, all axes=grid, style sheet=vary hue, legend=below ][ visualize as smooth line=sin, sin={label in legend={text=$1+\sin \alpha$}}] data [format=function] { var angle : interval [0:pi]; func radius = sin(\value{angle}r) + 1; }[ visualize as smooth line=cos, cos={label in legend={text=$1+\cos\alpha$}}] data [format=function] { var angle : interval [0:pi]; func radius = cos(\value{angle}r) + 1; };
效果如下:
示例三
下面這張圖是我自己編寫的UML繪圖巨集包,是由tikz擴充套件而來。
3、xcolor
下載:xcolor說明文件百度網盤下載
介紹:提供色彩支援。
示例:
示例一
\usepackage[dvipsnames, svgnames, x11names]{xcolor}
\definecolor{umlyellow}{RGB}{255, 251, 214}
以上語句的第一句是呼叫xcolor巨集包,同時也載入三個色彩名稱支援。第二句是自定義新的色彩名稱。
4、hyperref
下載:hyperref巨集包說明文件百度網盤下載
介紹:支援超連結,好像只有載入這個包目錄才能跳轉。
示例:
示例一
% 設定超連結樣式
\hypersetup{%
colorlinks,%
linkcolor = blue!80!black,%
breaklinks,%
}%
5、graphics
下載:graphics巨集包說明文件百度網盤下載
介紹:圖版支援。上面的這份說明文件中還包含了color巨集包的說明。
示例:
示例一
\includegraphics[width=8cm]{cover.jpg}
上面的語句是載入cover.jpg圖片,並且指定顯示寬度為8cm。這裡要注意的是圖片檔案可以帶路徑,並且路徑中的下劃線不受LaTeX的影響。
6、ctex
下載:ctex巨集包說明文件百度網盤下載
介紹:中文支援。原來我在使用xeLaTeX編譯方式時,用的是xeCJK,還是挺好用的,只是現在使用LuaLaTeX後,xeCJK就用不成了,所以目前使用這個包。
示例:
示例一
% 設定字型。注意順序,第一個定義的就是預設字型
\setCJKfamilyfont{song}{FZShuSong-Z01S}% 方正書宋簡體
\newcommand{\song}{\CJKfamily{song}}%
\setCJKfamilyfont{kaiti}{FZKai-Z03S}% 方正楷體簡體
\newcommand{\kaiti}{\CJKfamily{kaiti}}%
\setCJKfamilyfont{heiti}{FZHei-B01S}% 方正黑體簡體
\renewcommand{\heiti}{\CJKfamily{heiti}}% 因為原命令已被ctex中定義過,所以這裡重定義
\setCJKfamilyfont{fangsong}{FZFangSong-Z02S}% 方正仿宋簡體
\renewcommand{\fangsong}{\CJKfamily{fangsong}}% 因為原命令已被ctex中定義過,所以這裡重定義
以上語句是定義了一些漢字字型的呼叫命令。上面的四種字型是方正官方免費提供的、可以商用的字型,大家可以去官網下載。要有版權意識。在Ubuntu下,ctex定義的漢字字型呼叫命令是對文鼎系列字型的,這個看個人喜好。
7、luacode
下載:luacode巨集包說明文件百度網盤下載
介紹:用於在LuaLaTeX編譯方式下,支援lua程式碼編寫呼叫。LuaLaTeX編譯方式對於程式設計師而言比較有意義,因為通過這種方式,我們就把文件的編輯排版與lua語言程式設計聯絡在一起,又通過lua與C/C++聯絡起來,這樣我們的發揮空間就很大了。
示例:
示例一
\luaexec{
require "lua/uml_class"
local umlClass = UmlClass:new(nil, "#1", "#2")
tex.sprint(umlClass:Draw())
}
上述語句呼叫了lua子目錄裡的uml_class.lua檔案,並傳遞兩個引數給其中的UmlClass類的函式new。這個就是前面示例中繪製UML圖的命令。uml_class.lua檔案是純粹的(直接在LaTeX下編寫會有很多制約)lua檔案,我是在VSCode中編寫好後供LaTeX呼叫的。
示例二
\luaexec{%
local test = require("test")
str = "字串示例:" .. test.Hello() .. "\\\\"
tex.sprint(str)
str = "數值計算示例,面積: " .. test.Area(6)
tex.sprint(str)
}%
這個示例是呼叫test.so動態連結庫,這個庫是C語言編寫的,有關程式碼、方法我在另一篇部落格中介紹。
8、enumerate
下載:enumerate巨集包說明文件百度網盤下載
介紹:自動列舉巨集包,就是在前面加上可自定義的序號。
示例:
示例一
\begin{enumerate}[(1)]
\item \textbf{僵化性}
\item \textbf{脆弱性}
\item \textbf{牢固性}
\item \textbf{粘滯性}
\item \textbf{不必要的重複}
\item \textbf{晦澀性}
\end{enumerate}
上述語句會在條目前面顯示(1)、(2)……之類的序號。
9、listings
下載:listings巨集包說明文件百度網盤下載
介紹:支援程式碼顯示,可以語法高亮等。
示例:
示例一
% 程式碼顯示樣式設定
\lstset{%
breaklines,% 自動換行
basicstyle=\small,% 設定字型大小
frame=single,% 單線框
numbers=left,% 行號在左邊
numberstyle=\tiny,% 行號字型大小
keywordstyle = \color[RGB]{0, 0, 160},% 關鍵字顏色
commentstyle = \color[RGB]{160, 160, 160},% 註釋顏色
stringstyle = \color[RGB]{0, 0, 255},% 字串顏色
}%
上述語句是設定顯示的程式程式碼的樣式。
示例二
\begin{lstlisting}
public void testPayroll() {
MockEmployeeDatabase db = new MockEmployeeDatabase();
MockCheckWriter w = new MockCheckWriter();
Payroll p = new Payroll(db, w);
p.payEmployees();
assert(w.checksWereWrittenCorrectly());
assert(db.paymentsWerePostedCorrectly());
}
\end{lstlisting}
在lstlisting環境內,不會受到LaTeX的控制字元的影響。
10、setspace
下載:無
介紹:這個巨集包用於行距設定
示例:
示例一
\renewcommand{\baselinestretch}{1.0}% 修改n倍行距
\setlength{\baselineskip}{20pt}
行間距是由兩部分控制,就是上面的這兩個,第一個中的1.0代表幾倍行距。
11、overpic
下載:overpic巨集包說明文件百度網盤下載
介紹:用於在圖片上面擺放文字。說明文件只有一頁。
示例:
示例一
\begin{overpic}[width = 21cm]{#4}%
\color{white}\put(70, 57){\textit{Hongshan Park, Anshun, Guizhou}}%
\end{overpic}
效果如下:
12、booktabs
下載:booktabs巨集包說明文件百度網盤下載
介紹:提供一些改善表格質量的附加功能。目前我用在給表格上下橫線加粗。
示例:
示例一
\begin{tabular}{p{0.06\textwidth}|p{0.24\textwidth}|p{0.7\textwidth}}
\bottomrule
年份 & 獲獎者 & 獲獎原因\\
\hline
1966 & Alan J. Perlis & 先進程式設計技術和編譯架構方面的貢獻\\
\hline
1971 & John McCarthy & Lisp語言、程式語義、程式理論、人工智慧方面的貢獻\\
\hline
1972 & E. W. Dijkstra & 對開發Algol做出了原理性貢獻\\
\hline
1977 & John Backus & 在高階語言方面所做出的具有廣泛和深遠意義的貢獻,特別是在Fortran語言方面\\
\toprule
\end{tabular}
效果如下:
其中的\bottomrule與\toprule就是這個巨集包提供的功能,注意是頂部橫線用\bottomrule,底部橫線用\toprule,是倒著用,否則會有一絲縫隙,當然,如果你想有縫隙也可以。