使 ltxdoc 类使用 report 作为底层类

使 ltxdoc 类使用 report 作为底层类

该类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

相关内容