LaTeX 入門 - 代碼塊 listings 宏包
listings
宏包用於設置代碼塊
1. 引入與使用
引入宏包
\usepackage{listings}
使用
- 常規使用代碼塊
\begin{lstlisting}
codes
\end{lstlisting}
- 從文件中導入代碼塊
\lstinputlisting[language=Python]{main.py}
\lstinputlisting[language=Python, firstline=2, lastline=12]{main.py}
- 行內代碼
\lstinline|mycodes|
2. 設置命令
\lstset{
columns = fixed,
basicstyle = \linespread{0.8} \ttfamily, % 設置行距,字體
numbers = left, % 在左側顯示行號
numberstyle = \tiny \color{gray}, % 設定行號格式
keywordstyle = \bfseries \color[RGB]{40,40,255}, % 設定關鍵字顏色
numberstyle = \footnotesize \color{darkgray},
commentstyle = \color[RGB]{0,96,96}, % 設置代碼注釋的格式
stringstyle = \color[RGB]{128,0,0}, % 設置字符串格式
frame = single, % 不顯示背景邊框
backgroundcolor = \color[RGB]{245,245,244}, % 設定背景顏色
showstringspaces = false, % 不顯示字符串中的空格
language=R % 設置語言
}
行號相關設置
參數 | 說明 | 可選值 |
---|---|---|
numbers |
行號 | left :左側顯示行號right :右側顯示行號none :不顯示行號 |
stepnumber |
每隔多少行顯示行號 | 整數 |
numbersep |
行號與代碼內容的間隔 | |
firstnumber |
行號起始數字 | 整數:last :起始行數為上一段lstlisting 環境結尾的行數·` |
框架相關設置
參數 | 說明 | 可選值 |
---|---|---|
frame |
代碼塊邊框設置 | topline :只有上側有線rightline :只有右側有線bottomline :只有底部有線leftline :只有左側有線trbl ,tbl ,tb :按照top、right、bottom、left順序,指定的任意方位設置邊框TRBL ,TBl ,Tb :大寫字母表示雙豎線shadowbox :帶有陰影none :不設置邊框 |
frameround |
邊框圓角 | fftt :邊框右上角、右下角、左下角、左上角(順時針方向)4個角的方角(f )或圓角(t ) |
rulecolor |
設置框架線條顏色 | |
rulesepcolor |
設置框架陰影顏色 | 只有當 frame=shadowbox 才會起作用 |
linewidth |
行寬 | 可與framexrightmargin 產生相同效果 |
framexleftmargin framexrightmargin framextopmargin framexbottommargin |
邊框往左、右、上、下擴展的距離 僅改變框架,不會改變代碼、行號的位置 |
距離:可以為正數、或負數,分別表示往外、或內擴展 |
xleftmargin xrightmargin xtopmargin xbottommargin |
調整框架整體(包括框架、代碼、行號)往左、右、上、下擴展的距離。 | 距離:可以為正數、或負數,分別表示往外、或內擴展 |
aboveskip belowskip |
框架整體與上、下方的距離 | 距離: |
樣式相關設置
參數 | 說明 | 可選值 |
---|---|---|
numberstyle |
行號樣式 | |
keywordstyle |
關鍵字樣式 | |
stringstyle |
字符串樣式 | |
commentstyle |
注釋樣式 |
其他相關設置
參數 | 說明 | 可選值 |
---|---|---|
tabsize |
縮進空格數 | 整數: |
columns |
調整字母之間的距離 | fixed :flexible :fullflexible : |
firstline lastline |
只排版firstline 到lastline 的代碼 |
整數: |
language |
程序語言 | Python ,R ,C++ ,Jave 等 |
3. 設置字體
- 將編譯器(complier)改成 XeLaTex
- 引入宏包
fontspec
,並通過\setmonofont
命令設置等寬字體 - 在
lstset
或lstlisting
中設置basicstyle = \ttfamily
\usepackage{fontspec}
\setmonofont{Source Code Pro}
\begin{lstlisting}[basicstyle = \ttfamily]
codes
\being{lstlisting}
參考資料
[1] LaTeX listings 宏包使用說明(一), 知乎, 地址