BenTaiLatex瑞 2019-11-17
关于 LaTeX 的中文支持,首先要说的是:在现在,一切教你使用 CJK 宏包的模板、人、网页、书,都是糟糕的、有害的、恼人的、邪恶的和应该摒弃的。
不是教程,是个速查手册!
数学、排版、常见错误、常用宏包、命令、符号,建议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会恢复正常\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相似。
table*
和 figure*
环境用来排版跨栏的浮动体。它们的用法与 table 和 figure 一样,不同之处为双栏的 ⟨placement⟩ 参数只能用 tp 两个位置。tabular
表格环境,通常嵌入到表格浮动环境中。高阶用法见ref3,推荐自动生成
[pos]{table spec}
的table spec如ccc
,表示有三列,居中对齐。l
表示左对齐,r
表示右对齐,|
表示增加一条竖线,p{width}
固定长度的列,可自动换行。这四个参数是并列关系,一个为一列。@{·}
可以在两列之间插入任何字符,@{}
可直接用来消除单元格前后的间距\\
换行,&
对齐,\hline
行间横线。\diagbox{leftBottom}{leftTop}{rightTop}
生成对角线表格。\multicolumn{cols}{spec}{text}
可以生成一个较宽的列。参量cols
表示所占列数,spec
标记了单元格样式(同table spec),text
为文本。可以使用这个生成代码段figure
图形浮动环境,h表示当前位置,t是top,b是bottom,p是图形单独一页
\includegraphics{...}
导入图形。\caption[short title]{title}
可以给图片或表格加个标签(ref1说label在caption内部比较保险,ref2说label要放在caption后)\DeclareGraphicsExtensions{.pdf,.jpg,.png}
使用这个命令指定导入图形的后缀,在导入时直接写名字就行,不用写后缀(导言区)\graphicspath{{figs/}{grs/}}
指定图形路径(导言区)\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}@*/
可以作为代码具体某一行的引用,这一行在编译后就会消失,可以写到引用的代码的后边,这样行号就是对应的行号。
`
,后引号是'
--
,中文破折号---
。单-
在英文中用来组成复合词,两个连接数字表示范围,三个用来连接单词%
的妙用,用在末尾的时候可以注释掉换行符\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}
页码在页眉的页面。