编辑 Latex 类设置

编辑 Latex 类设置

我目前正在使用 tufte-book 类。我想将章节样式从 [display] 更改为 [hang]。

但是当我找到 tufte-common.def 文件时,我无法编辑它,有什么建议我该如何做吗?

答案1

这自然取决于您正在进行什么样的编辑。

几乎在所有情况下,都可以在不编辑文件的情况下更改类或包的效果。加载该类或包后,只需根据需要重新定义(在文档序言中)。换句话说,您首先在文档序言中尽可能地覆盖定义。

对于类tufte,它们用于titlesec定义标题的样式,因此您应该能够轻松使用titlesec的 API(如果有人敢这样称呼它)进行所需的重新定义。例如,如果您复制然后调整定义tufte,您可能会得到类似以下内容:

\makeatletter
\titleformat{\chapter}%
  [hang]% CHANGED shape
  {\relax\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}% format applied to label+text
  {\itshape\huge\thechapter}% label
  {1em}% CHANGED horizontal separation between label and title body
  {\huge\rmfamily\itshape}% before the title body
  [\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]% after the title body
\makeatother

因此,要明确的是,这只会在像往常一样加载类之后和之前出现在你的序言中\begin{document}

您还需要这样做,\setcounter{secnumdepth}{0}因为默认情况下此类不使用章节编号(因此无论如何都没有什么可挂起的!)。请注意,我已将其放入\makeatletter... \makeatotherguards 中,因此我可以使用类文件中的定义,其中包括受 & 符号保护的命令。考虑到您的重新定义,我实际上不知道这是否是必要的;但这是无害的。

这就是修改单个文档定义的方法。如果要进行长期更改,除了复制和粘贴之外,还可以采用以下两种方法之一进行:

  1. 定义一个文件tufte-common-local.tex。如果 Tufte 类可以在 TeX 路径中找到它,它就会加载它。因此,您可以将重新定义放在那里,并将其保存在本地 TeX 树中或源文件所在的目录中,这样每次都会加载它。这是该类特有的。

  2. 定义个人样式文件,my-tufte.sty例如在您的 TeX 路径中,并将其加载到您需要的任何文档中。这是一种通用机制。

你做什么不是要做的是修改tufte-common.def。基本上,不要修改已分发的文件(除非您是其维护者)。您很少需要修改文件;如果需要:用新名称复制它,修改它,将其放在您自己的 TeX 路径中(而不是主树中),然后通过其新名称加载它。

相关内容