该类ltxdoc
是专为记录 LaTeX 源文件而设计的,基于该类article
。超过一定阈值后,文档可能需要分为几章,而另一个类(例如该类report
)可能更合适。
因此我的问题是:有没有一种方法可以使用该类ltxdoc
但以report
底层类来记录 LaTeX 源文件?或者最好的方法是在可以选择类的单独文档中构建文档?
答案1
scrlfile
您可以从 KOMA 脚本中使用。
\listfiles
\RequirePackage{scrlfile}
\ReplaceClass{article}{report}
\documentclass{ltxdoc}
\begin{document}
\section{test}
\end{document}
这给了我以下
*File List*
scrlfile.sty 2012/06/15 v3.12 KOMA-Script package (loading files)
ltxdoc.cls 2007/11/11 v2.0u Standard LaTeX documentation class
report.cls 2007/10/19 v1.4h Standard LaTeX document class
size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
doc.sty 2010/02/04 v2.1e Standard LaTeX documentation package (FMi)
multicol.sty 2011/06/27 v1.7a multicolumn formatting (FMi)
***********
不幸的是,一旦\maketile
运行命令,一切都会中断。原因很简单。ltxdoc
加载包文档以及,即重新定义maketitle
。这样,您可以在一个文档中使用多个标题(根据文档的文档)。加载包titlepage
可让错误消失。但有一个缺点:该命令\maketitle
现在不执行任何操作。
但:您可以保存 maketitle 的原始定义(由report
类保存),然后(doc
处理后)恢复它。
\listfiles
\RequirePackage{scrlfile}
\ReplaceClass{article}{report}
\BeforePackage{doc}{\let\oldmaketitle\maketitle}
\documentclass{ltxdoc}
\author{Some one}
\title{some thing}
\usepackage{blindtext}
\let\maketitle\oldmaketitle
\begin{document}
\maketitle
\blinddocument
\end{document}
是否要这样做由您决定。
顺便说一句:\BeforePackage
也由 提供scrlfile
。