My LaTeX Cookbook
Contents
整理目前有用到过的 LaTeX 常用命令,以便于查找。 曾经是放在 Evernote 里面的,可惜它对于代码块复制黏贴后的格式支持实在有点差…
表格
修改表格行高
1 | \usepackage{array} |
表格过长,需要延伸多页
1 | \usepackage{longtable} |
注意 longtable 环境不支持 \centerline{}, 如果表格仍然过宽,可以使用以下方式横置页面。
1 | \usepackage{pdflscape} |
控制表格某一格宽度
1 | \begin{longtable}[c]{p{35em}ccc} |
尚未实验这种做法是否能用在 tabular 环境中,并且似乎这样控制大小之后,只能够左对齐。
表格中文字过长,需要换行
在表格内部再加入一个 tabular 环境,此时的 cols 需要写成 {@{}l@{}}, 其中 l 可以换成 c, r.
两个 @{} 的作用是消去不需要的空格。
例如
1 | \begin{table}[h] |
效果为

图片
多图片并列
1 | \begin{figure}[htb] |
注意以上代码如果添加空行似乎会失效,无法并列而是回到上下排列。
超大图片 (tikz)
对于超过一页 A4 大小的超大图片,需要在文档中间更改 geometry 才能放下,找了很多资料都没有成功。以下是一个暂时的解决方案:
新建一个 .tex 文件,利用 \documentclass[border=1cm]{standalone} 单独编译为一个 PDF 文件。
在主文件中,使用如下操作:
1 | \usepackege{pdfpages} |
标题与 TOC
中文
- 调整中文文章标题格式
1 | \documentclass[UTF8]{ctexart} |
以上代码将格式调整如下:

这里 \CTEXsetup 的具体用法为:
1 | \CTEXsetup[OPTIONS]{NAME} |
NAME: part, chapter, section, subsection, etc.
OPTIONS:
name: 在章节编号前后插入指定的文本,用逗号分隔,即:name={前,后}number: 章节编号的数字样式format: 标题的全局格式,包括字体大小、对齐方式等nameformat: 章节名(包含编号)的格式numberformat: 章节编号的格式(通常置空)aftername: 章节名和标题之间的格式变换【??这啥titleformat: 标题内容的格式beforeskip: 标题与上方文本的间距afterskip: 标题与下方文本的间距indent: 标题的缩进距离
通常而言中间几个 “format” 并不需要操作,通常控制的都还是整个整体,包括标题和章节名的格式。
设置其他中文标题名字:
1 | \CTEXoptions[OPTIONS] |
OPTIONS:
contentsnamelistfigurenamelisttablenamefigurenametablenameabstractnameindexnamebibname
General
- 插图与表格目录
1 | \listoffigures |
- 将插图和表格目录包含在
\tableofcontents中
1 | \usepackage[nottoc]{tocbibind} |
Miscellaneous
中文字体与字号设置
字体:
\songti\heiti\fangsong\kaishu\lishu\youyuan
字号:
1 | \zihao{NUMBER} |
NUMBER:
- ‘0’: 初
- ‘1’-‘8’: 一至八
- ‘-’: 小
示例:
- -0: 小初
- 4: 四号
- -6: 小六
使用罗马字母
1 | \makeatletter |
多列 enumerate/itemize 列表
1 | \usepackage{multicol} %多列enumerate列表 |
将正文中未 \cite{} 的文献添加到文末 Reference 中
1 | \nocite{KEY} |
KEY 为 ‘*’ 时代表加入所有 BibTeX 文件中的条目
用方框将部分内容框起进行强调
1 | \usepackage{framed} |
这里定义了一个新的命令方便框出较短内容进行强调,主要依赖的是 framed 宏包。
代码排版
1 | \usepackage{minted} |
基于 minted 宏包,进行了针对 Python 的外部封装,其他语言同理。
此时编译时需要添加 --shell-escape 选项,并且需要先安装 Python 并且 pip install pygments.
调整部分区域字体
1 | \usepackage{fontspec} |
英文文章所有段落不缩进并通过隔行分段
1 | \usepackage{parskip} |
自定义计数器设置
新建一个计数器
1 | \newcounter{COUNTER} |
设置一个 COUNTER-A, 在 COUNTER-B 步进时自动清零(用例例如两层嵌套的列表,当外层列表计数器步进时,内部计数器也需要步进)
1 | \newcounter{COUNTER-A}[COUNTER-B] |
将计数器步进 1/任意数字
1 | \stepcounter{COUNTNER} |
直接给计数器设置一个数字
1 | \setcounter{COUNTER}{SOME-NUMBER} |
输出计数器的数字
1 | \arabic{COUNTER} |
以上命令会输出数字格式的计数器数字。还有其他命令可以选择:
\alph: a, b, c…\Alph: A, B, C…\roman: 小写罗马数字\Roman: 大写罗马数字
波浪号与反斜杠打法
- 波浪号:
\textasciitilde - 反斜杠:
\textbackslash