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:
contentsname
listfigurename
listtablename
figurename
tablename
abstractname
indexname
bibname
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