中文

宏包 CJK、xeCJK、zhspacing 可以让文档支持中文,CJK 是中文(Chinese)、日文(Japanese)、韩文(Korean)三国文字的缩写。也可以设置 documentclass 为 ctexart。推荐使用 xeCJK 结合 xelatex 编译,相对 CJK 使用简单,并且生成得到的书签目录没有乱码。

  1. CJK

     \documentclass{article}
     \usepackage{CJK}
     \begin{document}
     \begin{CJK}{GBK}{song}
         文章内容
     \end{CJK}
     \end{document}
    
  2. xeCJK

     \documentclass{article}
     \usepackage{xeCJK}
     \begin{document}
         文章内容
     \end{document}
    
  3. ctexart

     \documentclass{ctexart}
     \begin{document}
         文章内容
     \end{document}
    

reference: 如何评价 xeCJK?,知乎xeCJK 宏包,PDFxeCJK 原作者主页

package 的引用

  1. 单个包引入

     \usepackage{pack1}
     \usepackage{pack2}
     \usepackage{packn}
    
  2. 多个包引入

     \usepackage{pack1, pack2, packn}
    

在引入的包没有参数设置的情况下, 使用第二种要简洁许多.

引入格式文件

可以将包的引入、包的设置等等都放入一个 cls 文件中, 然后引入, 放置在 \begin{document} 之前.

\input{format.cls}

# 如果是样式文件, 推荐用 sty 后缀, 而不是 cls.

补充 cls 即 classes 表示类文件, 如 articlebookbeamer. sty 即 style files, 或称为 packages, 为样式文件.

如果是针对特定类的, 则用 cls, 反之用 sty. 比如有 mystyle.sty, 则可这样引入: \usepackage{mystyle}.

reference: What are.clsand.styfiles? How are they different?

从外部进入 tex 文件

当编写内容比较多事, 可以分割为多个文件, 然后再一起引入, 调试错误也比较方便.

\include{latexFileName} % 不要加 tex 后缀

使用 \include 每一项都会从新的一页开始,可以换用 \input, 另外, 用 \input 在编译时对应的 TeX 子文件不会产生编译过程文件(.aux)。

reference: To have no pagebreak after \include in LaTeX, stackoverflow

循环引入 tex 文件

文件、表格、图片太多,引入太麻烦怎么办?可以使用 pgffor 包。

\foreach \x in {1,...,3}{
    \input{filename-\x}
}
% 引入 filename1.tex, filename2.tex, filename3.tex

reference: Calling several tex files with a loop?, stackoverflow

绘图

图片路径 通过设置图片路径, 不需要再添加图片是带上路径. 需要注意, 如果是通过一个主 tex 文件包含 (includeinput), 图片的相对路径应该是相对与主 tex 文件的. 图片放在子文件夹下,可以通过 \graphicspath 设置路径, 这样就不用在 \includegraphics 命令中添加完整路径, 而直接引用图片名即可. 使用 \graphicspath 可以设置单个或多个路径.

\graphicspath{{imagepath1/}{imagepath2/}…{imagepathn/}}

绘图工具 编程方式可用 PGF/TikZ 绘图; 直观的绘制矢量图可用 Inkscape, 生成 PDF 后再引入.

  1. How I draw figures for my mathematical lecture notes using Inkscape, 2019

添加 PDF 书签

% 添加书签, 并添加内容间的连接(目录、引用等)
\usepackage{hyperref}

工具使用问题

Sublime Text + LaTeXTools:文件分割后使用 cite 提示 no bib files found

问题描述: 将单个 tex 文件的每一章节分割为独立的 tex 文件, 并放置于 include 文件夹下, 载主文件中用 \input 引入. 此情况下, 输入 \cite{ 提示 no bib files found.

解决方案:在分割出来的章节 tex 文件首行加入 % !TEX root = ..\report.tex.

reference: No bib files found!??, GitHub

参考文献引用

bibtex 格式参考文献文件后缀为 bib, 通过此种方式引入参考文献, 可以方便利用文献软件进行管理. 其他的诸多好处可以在如何在LaTeX写作中管理参考文献?中查看.

xelatex main.tex
# 参考文献编译
bibtex main.aux
xelatex main.tex
xelatex main.tex

latexmk: 自动化编译

利用套件里面的 latexmk 命令, 可以实现监视文件变化自动编译、清除缓存文件等功能.

# 清除编译临时文件
latexmk clean

# 预览并自动编译(采用 xelatex, 默认是 pdflatex)
latexmk -pdf -pdflatex="xelatex -interactive=nonstopmode" -pv your.tex

# 简化版
latexmk -pv your.tex

如果需要设置常用属性(比如编译采用 xelatex 还是 pdfletx), 可以了解 .latexmkrc 文件的配置.

reference: latexmk – Fully automated LaTeX document generation

Beamer 使用

使用 algorithm 错误

reference: Using Algorithm2e package in Beamer

使用 verbatim 错误

reference: Verbatim in beamer showing error: “File ended while scanning use of \@xverbatim.”, beamer’s fragile frame as default

资源

  1. 陈硕,用 LaTeX 排版编程技术书籍的一些个人经验,Github,2013
  2. 用于试题的 document class: exam
  3. The Beauty of LATEX: 这篇文章介绍了 LaTeX 相对于 Microsoft Office Word 的优点.
  4. LaTeX/Modular Documents: 介绍如何组织文件.