风格/课程教程

风格/课程教程

有哪些好教程编写自定义样式(类)来清楚地解释所使用的命令以及 TeX 以样式方式提供的一些功能?

答案1

答案2

虽然我无法指出一个预先构建的“操作方法”指南,但我至少可以尝试在这里提供一些指示。要记住的第一点是,LaTeX2e 在提供内核中自定义的文档“钩子”方面相当薄弱。因此,必须通过加载支持包来完成很多工作。

从最基本的意义上讲,类是一组用于更改标准格式的指令。因此,许多简单的类一开始只不过是自定义的序言,然后将其拆分成单独的文件。除非您非常有经验,否则开始自定义类的最佳方式可能是加载标准类之一,例如

\LoadClass{article}

然后可以加载一系列包(使用\RequirePackage而不是\usepackage),以允许修改。这里的明显示例是geometryfloatcaption、各种字体包,ETC。只需将一组支持包和适当的选项捆绑到一个文件中,就可以实现很多功能。

接下来要考虑的是提供自定义命令。这些命令可能很简单,例如

\newcommand\subject[1]{%
  \begin{center}
    \bfseries
    #1%
  \end{center}
}

我在一个稍微定制的字母类中做了这些,以供我自己使用。当然,这里有意义的东西取决于你想要什么。自定义命令当然可能依赖于你知道将被加载的包,因为它们包含在类的列表中。

人们在自定义类中往往会做的下一件事是简单地重新定义 LaTeX 内部结构。最明显的是\@maketitle,您可能想要修改它。请记住,类文件设置@为字母,因此\makeatletter 不需要。在此阶段,修改往往是从现有代码开始并对其进行修改。LaTeX2e 内核类(article.clsreport.clsETC.) 和内核本身 ( latex.ltx) 是代码修改的第一个调用端口。以该\@maketitle示例为例,来自的版本article.cls读取

\def\@maketitle{%
  \newpage
  \null
  \vskip 2em%
  \begin{center}%
  \let \footnote \thanks
    {\LARGE \@title \par}%
    \vskip 1.5em%
    {\large
      \lineskip .5em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
    \vskip 1em%
    {\large \@date}%
  \end{center}%
  \par
  \vskip 1.5em}

因此明显的变化是改变间距或字体。

除此之外,您还需要认真学习 (La)TeX 编程,我建议将一些代码编写为包并从类中引用它可能会更好。这是一个复杂的主题,我认为不是开始学习如何编写类文件的方法!

答案3

LaTeX 伴侣[1] 有一章关于编写包/类文件的内容。

编辑:目录是可在线获取。相关章节是附录 A,特别是第 A.4 节。本章的风格与本书其余部分的风格基本相同(第 3 章可在线获取) 详细解释了所有需要的命令,并提供了大量的示例(和反例)。

[1] F. Mittelbach 和 M. Goossens,《LaTeX 指南》。Addison-Wesley 2004

答案4

相关内容