l2tabuen-note

《An essential guide to LaTeX2e usage: Obsolete commands and packages》 是一份20多页的简短文档,介绍了常见的LaTeX错误用法和一些过时命令。 原文是德文,后来被翻译成英文、法文等 (暂无中文版)。一般的发行版中已经包含这份文档,可以使用如下命令打开。

texdoc l2tabuen

以下是不完整的概要,跳过了与德语以及外文字体有关的内容。

  • 不要使用 a4.sty 或者 a4wide.sty ,应该使用类包的 a4paper 选项。

  • 调整页边距时,应该使用 typearea.sty ,或 geometry.sty , 或 vmargin.sty ,不要使用 \oddsidemargin 之类的命令。

  • 如果对TeX不熟悉,不要修改 \hoffset\voffset 命令。

  • 不要直接修改LaTeX的类包文件,如 article.cls

  • 修改行距有三种方法:

    1. 使用 setspace.sty;
    2. 使用LaTeX命令 \linespread{<factor>};
    3. 重新定义 \baselinestretch.
  • 调整段首缩进长度时,不要使用绝对长度,如 mm , 应该使用与字体有关的相对长度,如 em 。 后者不会随着字体大小自动调整,是与依赖于当前使用的字体。 调整要使用LaTeX命令,以便保持良好的兼容性或重新定义。 不要使用 \parindent=1em ,应该使用 \setlength{\parindent}{1em}

  • 调整段落间距,不要使用

\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}

因为 \parskip 会改变列表环境、目录以及页眉中项目间的间距。 应该使用 parskip.sty 。如果已经使用KOMA-Script中的某一文档类,就不用再调用 parskip.sty 了。

  • 不要在LaTeX文档中使用 $$ ... $$ ,因为这是一个TeX命令, 它会改变段公式的竖直距离,而且 fleqn 选项也会失效。 应该使用 \[ ... \]
\begin{displaymath}
...
\end{displaymath}
  • 使用 \newcommand{\<name>}{...} 定义新命令,不要使用 \def\<name>{...} 。主要是因为 \def 不会检查是否已经有同名的命令。如果之前已经有同名的命令, 不会报错,直接覆盖。重新定义命令时,使用 \renewcommand{\<name>}{...}

  • 过时的改变字体命令已经不适用于新的NFSS字体选择框架, 很多时候无法实现预期的效果。应使用相应的局部命令(仅作用于命令的参数), 或是全局开关命令(其后所有字体都会改变)。过时的命令

    • {\bf ...}, \it, \rm, \sc, \sf, \sl, \tt

    相应的局部命令

    • \textbf{...}, \emph, \texit, \textmd, \textrm, \textsc, \textsf, \textsl, \texttt, \textup

    相应的全局开关命令

    • \bfseries, \em, \itshape, \mdseries, \rmfamily, \scshape, \sffamily, \slshape \ttfamily, \upshape
  • 分式不要用 a \over b, 应该用 \frac{a}{b}

  • 居中不要用 \centerline, 应该用 {\centering ...} 或者

\begin{center}
...
\end{center}
  • 用于插入图片的过时包 epsf.sty, psfig.sty, epsfig.sty 已被 graphics.stygraphicx.sty 代替
  • 用于调整行距的过时包 doublespace.sty 已经被 setspace.sty 代替
  • 用于设置页眉的过时包 fancyheadings.sty 已经被 fancyhdr.sty 代替
  • 不要用 \usepackage{caption}, 应该用 \usepackage{caption}[2004/07/16] 指定使用 caption.sty 的v3.x版
  • 图像、表格等浮动体居中时,建议使用 \centering, 而不是 \begin{center} ... \end{center}, 以避免产生额外的竖直距离。不要这样写:
\begin{figure}
\begin{center}
\includegraphics{bild}
\end{center}
\end{figure}

应该这样写:

\begin{figure}
\centering
\includegraphics{bild}
\end{figure}
  • 附录不再是一个环境,而是用一个命令开始。不要再写成:
\begin{appendix}
\section{Blub}
\end{appendix}

应该这样写:

\appendix
\section{Blub}
  • 对于数学公式,都应该使用 amsmath.sty 包。当使用 amsmath.sty 宏包时,不要再用 displaymath, 直接用 \[ ... \] 即可。 eqnarray, eqnarray* 等环境不支持,应该用 alignalign*.

Comments

Comments powered by Disqus