LaTeX 文档的类

LaTeX 文档的类

我想知道有哪些类可用于排版 LaTeX 手册。到目前为止,我使用的是ltxdoc。我对它的功能很满意,但对它的布局/设计不满意,而且在使用英语以外的语言编写时,它的灵活性并不高(请参阅 德语文档的类别/包)此外,{verbatim}环境在其后留出了太多空间。

是否有其他类可以替代而不会对我现有的文件ltxdoc造成太多工作?.dtx

有没有一个类可以使用,listings.sty而不是纯{verbatim}, 来获得语法高亮?我试过了

\let\verbatim\relax
\let\endverbatim\relax
\lstnewenvironment{verbatim}{}{}

但这不适用于像 DocStrip 输入

% Describing text for the following code
%    \begin{macrocode}
\newcommand{\foo}{FOO}
\newcommand{\bar}{BAR}
%    \end{macrocode}
% Some more text.

答案1

记录LaTeX源代码有点拼凑,因为整个系统有四个主要依赖项文档文档条ltxdoc文章,加上您在驱动程序中添加的附加命令。

一些主要的软件包作者付出了很多努力来修改标准类,就像我们修改文档中标准类的序言一样。文档类、软件包或大量修改中,最突出的是列表(lstdoc),微型(文档样式)和比布拉特克斯(ltxdockit)包。对于常用的类,您可以查看Komamemoir dtx文件。LaTeX3 项目还有一个实验性的文档类(文档),外观上非常赏心悦目。

但最终,您可能希望定义自己的内容。这并不像听起来那么难。文档部分排版的主要问题通常在于“用户手册”部分。实施部分最好采用不太鲜艳的方式,唯一的主要变化是将编号变灰。

在此处输入图片描述

查看microtypeLaTeX3文档,了解这如何改善代码部分的外观,尤其是当行号达到数千时。

现在介绍用户手册部分。这是您需要付出努力的地方,一切皆有可能,包括微排版。这里可以进行许多改进。首先,采用某种形式的装箱,并拥有一种使用 漂亮地打印 LaTeX 代码的方法。listings此外,根据您正在开发的包或类,自动运行实际示例可以使生活更轻松。我建议添加的包是tcolorbox。它为显示框提供了环境,自动执行 LaTeX 代码,并且非常擅长以样式显示键pgf。在结合所有这些的序言中,我设法获得了这种类型的输出:

在此处输入图片描述在此处输入图片描述

我遇到的主要困难是获取hyperreflstdoctcolorbox以正确的顺序和加载选项而不产生任何冲突。这很有效:

\usepackage[pdftex,bookmarks,raiselinks,pageanchor,hyperindex,colorlinks]{hyperref}
\usepackage{lstdoc}
\usepackage[listings,theorems,documentation]{tcolorbox}

这听起来很简单,再加上微排版和更改字体就可以了:

 \usepackage[charter]{mathdesign}
 \def\rmdefault{bch} % not scaled
 \def\ttdefault{blg}

文档排版有了明显的改善。

其余约 200 行命令用于重新格式化标题和分段命令。对于微排版,我从 microtype 包中剪切并粘贴了相关代码。

如果您的包裹较小,那么一个很好的解决方案是执行以下操作:

\documentclass{article}
\usepackage{a,b,c,d,e} % as required
\usepackage{filecontents}
\begin{filecontents}{foo.sty}
... Package contents
\end{filecontents*}
\input{foo.sty}
\begin{document}
... User manual
... Code documentation
... \lstinputlisting{foo.sty} 
\end{document}

在文件内容环境中输入包并保存为foo.sty。然后输入它即可使用。在主文档中,您只需使用逐字输入listings命令之一输入代码即可tcolorbox。对于多达 100-200 行代码的任何内容,这是一种极好的方法,并且具有始终在一个文件中工作的优点。此外,在开发包时,您可以在一个文件中同时对其进行测试。当然,样式仍是您自己的责任,但您将获得手册和代码的漂亮打印。

我有一些代码正在忙着写,如果你有兴趣得到一份,只需发表评论(它相当冗长,我会在周末整理并发布到 github 上)。不过,MWE 可以在以下网址找到:LaTeX 文学编程的不同方法

答案2

首先要说的是:我对编写包甚至类一无所知……

我依稀记得几个月前 Florent Chervet 发布了这样一个软件包。经过一番研究,我找到了fcltxdoc。该软件包的手册上写道:

fcltxdoc 提供了一些用于打印文档 (.dtx) 文件的工具。其中大部分是未记录的软件包 holtxdoc 中定义的命令的进一步开发。

(它还说,“它不打算供公众使用......但公众可以使用或复制!”)

再次搜索:holtxdoc是捆绑包的一部分oberdiek,手册告诉我们

注意:此包不供公众使用!…因此,该软件包对兼容性一无所知。只有我当前的软件包的文档必须编译。

旧版本更有趣,因为它们包含将 hyper-ref 功能添加到 LATEX 文档系统的代码,例如书签和索引链接。我将这些内容分离出来并创建了一个新的包 hypdoc。

hypdoc当然也是oberdiek捆绑的一部分。

看看这些包。

编辑:mbork 指向gmdoc。还有一个包gmdoc-enhance,其文档仅以德语编写。

更新
这个答案根本不打算全面,但自上次编辑以来,TeX.SE 的成员发布了另外三个文档类别:

顺便说一句,Martinydoc还在文档中指出了一些其他类。但这里并未全部提及:

类似套餐

其他文档相关的类和包有ltxdoc、、、、、、、和。docdoxxdocgmdocpauldochypdoccodedocnicetexttkz-doc

他还写了我们可以假设的主要原因,为什么同一项任务会有如此多不同的类别(“作者”=马丁):

所有这些包都不适合作者,因此,他猜测,编写了自己的文档包。

答案3

还有gmdoc。我不记得它的灵活性(我很久以前读过它的手册),但它可以与hyperref生成可点击索引等一起使用。此外,鉴于作者是波兰人,它应该可以在(至少一种)非英语语言中工作(我确实亲自在一个用波兰语记录的课程中使用过它,而且它工作得很好)。

相关内容