Latex笔记
Reference
- http://www.math.pku.edu.cn/te... 北大李东风老师的Latex排版心得,但是是11年的文章了,使用的CJK,可以当作一个小的参考
- 一份其实很短的 LaTeX 入门文档 基于CTEX的教程,CTEX维护大佬
关于 LaTeX 的中文支持,首先要说的是:在现在,一切教你使用 CJK 宏包的模板、人、网页、书,都是糟糕的、有害的、恼人的、邪恶的和应该摒弃的。 - 一份不太简短的LATEX2ε介绍 注意:这是固定的最新版的链接,目前是2019版,网上其他地方的链接还有01版的,那可是有点年头了。【最全资料,以下所有内容无论是否有ref标志,在这里都能找到,如果只推荐一个,就是这个】
- 马上用LaTeX写作 速成教程
- TeX — Beauty and Fun 关于Latex的一个简介
- 智障的LaTex入门教程 这真的是文章的名字,有趣的几个小文章,关于bib的介绍不错,其中的第四篇是很好的命令定义的入门
笔记
不是教程,是个速查手册!
数学、排版、常见错误、常用宏包、命令、符号,建议ref3直接查
version 1, 5/31/2019
version 2, 6/16/2019
文档格式
\documentclass{article}
% \documentclass[UTF8]{ctexart} 支持中文对方式2的进一步封装
% \usepackage{xeCJK} 支持中文方式2
\begin{document}
...
\end{document}\documentclass{...}是文档模板,常用的有article、book、report、beamer、ctexart等。例如\documentclass[11pt,twoside,a4paper]{article}则使用可选参数指定了页面信息。
document子环境里是文档内容。两者之间的是导言区。常在导言区设置页面大小、页眉页脚样式、章节标题样式等等。
在 \end{document} 之后插入任何内容都是无效的。
在使用 ctex 宏包和文档类时总是将源代码保存为 UTF-8 编码,用 xelatex 命令编译。
常用宏包
\usepackage[options]{·}
| 包名 | 用途 | 注释 |
|---|---|---|
| graphicx | 插图 | |
| amsmath | 数学公式 | |
| titling | 标题作者默认格式 | ref2 |
| geometry | 版面设置 | ref2 |
| fancyhdr | 设置页眉页脚 | ref2 |
| setspace | 行间距 | ref2 |
| indentfirst | 首行缩进 | ref2 |
| enumerate | 定制列表的序号 | ref4 |
| subfig | 设置子图 | ref3 |
常用命令
综合
\hfill填满这一行的剩余空间\\[⟨length⟩]\newline段内换行\\*另起一行但不是新段- 一个回车或多个空格都会视为一个空格。多个空行分段,或者使用
\par分段 \newpage强制换页\-单词中的这个符号表明可以在这里换行emph{...}强调,变成花体或斜体,emph内部的emph会恢复正常- ulem 宏包的
\uline命令能够生成自动换行的下划线 \footnote{...}后边的内容是脚注。某些环境中,先使用\footnotemark为脚注计数,再在合适的位置用\footnotetext生成脚注。交叉引用
\label{...}\ref{...}\pageref{...}- 在使用不记编号的命令形式(
\section*、\caption*、带可选参数的\item命令等)时不要使用\label命令,否则生成的引用编号不正确。
- 波浪号
$\sim$省略号\ldots - 调用时方括号
[]指代可选参数,花括号{}指代必选参数。 ~一个空格,不会随着版面变化,通常用在人名、图表名称\qquad和\quad空格(\,、\:、\;)
章节标题
\maketitle添加作者,\author\date{\today}\title中使用\thanks添加关于作者的脚注,\and连接不同作者
\section\subsection\subsubsection\paragraph\subparagraph(带上*号,则生成的节标题既不出现于目录,也不带序号)\section[⟨short title⟩]{⟨title⟩}标题使用 ⟨title⟩ 参数,在目录和页眉页脚中使用 ⟨short title⟩ 参数
- 在
report/ctexrep中,还有\chapter{·};在文档类book/ctexbook中,还定义了\part{·} \appendix附录,这是一个分界线,把后边章的序号改为字母标记\tableofcontents生成目录
引用相关
\bibliographystyle{IEEEtran}设置引用格式\bibliography{reference.bib}导入引用文件\cite{}引用\usepackage[hyphens]{url} \usepackage[hidelinks]{hyperref}前一个包的参数使url执行自动换行;后边的包可以将url转换成超链接,参数是为了消除彩色边框\begin{filecontents}{reference.bib}这个子环境中创造了一个虚拟文件,同真实文件一样可以使用上述命令,这个子环境在Document外使用biblatex包,自定义bib格式thebibliography子环境提供了基本引用格式,\bibitem为每个条目
子环境\begin{...} \end{...}
列表
\item[·]后边可填入不同的列表标签,如[+],标签的解析与下边的环境有关itemize列表enumerate有序列表description带描述的列表,ref4,用法:\item[⟨item title⟩]
verbatim原文打印,也可在段落中使用\verb+text+可将分隔符+之间的文本直接打印,其中+可以为除了*和空格的任意字符。可以使用这个输出代码...center居中,flushleft左对齐,flushright为右对齐\centering\raggedright\raggedleft上述是子环境,这个是命令,在其他子环境中使用这个命令即可
quote引文,quotation为长引文,verse为诗歌,abstract摘要minipage盒子,见ref3eqution自动编号公式,数学公式编辑见ref2table表格浮动环境,参数和figure相似。- 双栏排版环境下,LATEX 提供了
table*和figure*环境用来排版跨栏的浮动体。它们的用法与 table 和 figure 一样,不同之处为双栏的 ⟨placement⟩ 参数只能用 tp 两个位置。
- 双栏排版环境下,LATEX 提供了
tabular表格环境,通常嵌入到表格浮动环境中。高阶用法见ref3,推荐自动生成- 参数
[pos]{table spec}的table spec如ccc,表示有三列,居中对齐。l表示左对齐,r表示右对齐,|表示增加一条竖线,p{width}固定长度的列,可自动换行。这四个参数是并列关系,一个为一列。@{·}可以在两列之间插入任何字符,@{}可直接用来消除单元格前后的间距 - 参量Pos设定相对于环绕文本基线的垂直位置,使用字母t、 b和c 来设定表格靠上、靠下或者居中放置。
\\换行,&对齐,\hline行间横线。- 支持宏包diagbox后,可以在tabular环境中用命令
\diagbox{leftBottom}{leftTop}{rightTop}生成对角线表格。 \multicolumn{cols}{spec}{text}可以生成一个较宽的列。参量cols表示所占列数,spec标记了单元格样式(同table spec),text为文本。可以使用这个生成代码段
- 参数
figure图形浮动环境,h表示当前位置,t是top,b是bottom,p是图形单独一页- 通常包含一个center环境居中,然后使用
\includegraphics{...}导入图形。 \caption[short title]{title}可以给图片或表格加个标签(ref1说label在caption内部比较保险,ref2说label要放在caption后)\DeclareGraphicsExtensions{.pdf,.jpg,.png}使用这个命令指定导入图形的后缀,在导入时直接写名字就行,不用写后缀(导言区)\graphicspath{{figs/}{grs/}}指定图形路径(导言区)
- 通常包含一个center环境居中,然后使用
\begin{figure}[htbp]
\centering
\includegraphics[width=\textwidth]{img01}
\caption{例子,这里是图的题注\label{fig:figfloat1}}
\end{figure}
\begin{figure}[htbp]
\begin{minipage}[t]{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{img01}
\caption{左图\label{fig:float2-1}}
\end{minipage}
\hfill
\begin{minipage}[t]{0.48\linewidth}
\centering
\includegraphics[width=\textwidth]{img02}
\caption{右图\label{fig:float2-2}}
\end{minipage}
\end{figure}插入代码
来自ref5
\usepackage{listings}
\lstloadlanguages{C, csh, make}
\lstset{language=C,tabsize=4, keepspaces=true,
breakindent=22pt,
numbers=left,stepnumber=1,numberstyle=\tiny,
basicstyle=\footnotesize,
showspaces=false,
flexiblecolumns=true,
breaklines=true, breakautoindent=true,breakindent=4em,
escapeinside={/*@}{@*/}
}上边的写入导言区即可,然后使用lstlisting子环境写代码。/*@\label{code:restart}@*/可以作为代码具体某一行的引用,这一行在编译后就会消失,可以写到引用的代码的后边,这样行号就是对应的行号。
tricks
- 注意引号,前引号
`,后引号是' - 中文连字符可使用
--,中文破折号---。单-在英文中用来组成复合词,两个连接数字表示范围,三个用来连接单词 %的妙用,用在末尾的时候可以注释掉换行符\newcommand{\name}{...}值定义,以后就可以用\name来代替后边的内容,命令定义见ref6- 把文档拆分成多文件,使用
\include{...}导入。这个命令会在插入内容的前后换页。常用的是使用\input{文件名}直接导入。导言区使用\includeonly{...}文件清单,只有清单里的文件才会被导入。 - 书签
\usepackage[pdftex]{hyperref} 版面设置,这部分内容都要写在导言区
- 页边距
\usepackage{geometry} \geometry{papersize={20cm,15cm}} \geometry{left=1cm,right=2cm,top=3cm,bottom=4cm} - 段间距
\addtolength{\parskip}{.4em} pagestyle{plain}产生只有页号的页,pagestyle{headings}页码在页眉的页面。
- 页边距
- 花体字、空心字见ref1
- 各种符号怎么打同样见ref1
- 西欧语言的重音和特殊字符见ref3,写引用的时候很重要
Other
- http://www.tablesgenerator.com/ 帮助创建表格的工具,不仅Latex,还支持MarkDown和HTML等
- http://texdoc.net/texmf-dist/... graphics的详细用法介绍
- http://www.latexstudio.net/ar... Latex开源小屋,模板库
- https://pitt.libguides.com/c.... 关于引用格式的一个综合介绍,包含多种格式,很有用
- https://zh.wikipedia.org/zh-c... 需梯子