![风格/课程教程](https://linux22.com/image/231486/%E9%A3%8E%E6%A0%BC%2F%E8%AF%BE%E7%A8%8B%E6%95%99%E7%A8%8B.png)
有哪些好教程编写自定义样式(类)来清楚地解释所使用的命令以及 TeX 以样式方式提供的一些功能?
答案1
- 几小时内几分钟是一个开始的地方。
答案2
虽然我无法指出一个预先构建的“操作方法”指南,但我至少可以尝试在这里提供一些指示。要记住的第一点是,LaTeX2e 在提供内核中自定义的文档“钩子”方面相当薄弱。因此,必须通过加载支持包来完成很多工作。
从最基本的意义上讲,类是一组用于更改标准格式的指令。因此,许多简单的类一开始只不过是自定义的序言,然后将其拆分成单独的文件。除非您非常有经验,否则开始自定义类的最佳方式可能是加载标准类之一,例如
\LoadClass{article}
然后可以加载一系列包(使用\RequirePackage
而不是\usepackage
),以允许修改。这里的明显示例是geometry
、float
、caption
、各种字体包,ETC。只需将一组支持包和适当的选项捆绑到一个文件中,就可以实现很多功能。
接下来要考虑的是提供自定义命令。这些命令可能很简单,例如
\newcommand\subject[1]{%
\begin{center}
\bfseries
#1%
\end{center}
}
我在一个稍微定制的字母类中做了这些,以供我自己使用。当然,这里有意义的东西取决于你想要什么。自定义命令当然可能依赖于你知道将被加载的包,因为它们包含在类的列表中。
人们在自定义类中往往会做的下一件事是简单地重新定义 LaTeX 内部结构。最明显的是\@maketitle
,您可能想要修改它。请记住,类文件设置@
为字母,因此\makeatletter
不需要。在此阶段,修改往往是从现有代码开始并对其进行修改。LaTeX2e 内核类(article.cls
、report.cls
、ETC.) 和内核本身 ( 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