1. 程式人生 > >LaTeX巨集包介紹備忘

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繪圖示例一

示例二
\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;
};

效果如下:
tikz繪圖示例二

示例三

  下面這張圖是我自己編寫的UML繪圖巨集包,是由tikz擴充套件而來。
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,是倒著用,否則會有一絲縫隙,當然,如果你想有縫隙也可以。