更改文档类的注释字符 (%)

更改文档类的注释字符 (%)

从源生成文件时*.dtx,Docstrip 会丢弃以注释字符开头的行%(除非它们包含保护符%<guard>content)。使用类似包的实用程序排版文档时doc,通常使用包含相同的文件,这会导致排版之前遗漏的材料,包括和\DocInput{file.dtx}之间的未注释代码。\begin{macrocode}\end{macrocode}

我想知道是否可以使用 Docstrip 处理其他语言的注释语法。例如,对于 python,%必须将其替换为#。其他语言使用多个字符来开始注释行,例如//在 C 中。如果可以更改查找的字符doc,则可以排版源文件,同时仍保持其原始语言的有效性和可执行性。

是否可以将%符号更改为一个或多个其他字符\DocInput

答案1

我不相信doc可以如此定制,除非您自己制作一个版本来查找其他字符。例如,\xmacro@code中的宏doc被定义为明确查找% \end{macrocode}

\catcode`\!=\catcode`\%   ^^A In this section there must not be
                              ^^A any exclamation marks.
                              ^^A
\begingroup
\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
\catcode`\{=12 \catcode`\}=12
\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
!%    \end{macrocode*}
!    Next follows the actual definition of  |\macro@code|;
!    notice the
!    use of the new escape character.  We manage to get the argument
!    surrounded by the string |\end{macrocode}|, but at the end
!    however, in spite of the actual characters used during the
!    definition of
!    this macro, |\end| with the argument |{macrocode}|
!    will be executed, to ensure a balanced environment.
!    \begin{macrocode*}
|gdef|xmacro@code#1%    \end{macrocode}[#1|end[macrocode]]
!%    \end{macrocode*}

这段代码有点令人困惑,但关键部分是!是注释,|\[{]}{}%是正常符号,\和 空格被激活。因此,以下行

|gdef|xmacro@code#1%    \end{macrocode}[#1|end[macrocode]]

本质上

\gdef\xmacro@code#1%    \end{macrocode}{#1\end{macrocode}}

除了%必须有和四个空格之外。

据推测,您可以进行修改doc.sty来处理类似的问题#,但这似乎需要大量工作。

这纯粹是个人观点,但我发现文学程序非常难读。对我来说,阅读一个文件比阅读带有注释的文件.dtx要难得多。同样,我发现.stytex.web很难阅读。更好的选择可能是使用专门为其他语言设计的工具,而不是试图强制doc适应您的用例。

相关内容