以下问题相关:
我想将 document 类l3doc
与 minted 结合使用。但是我无法获得良好的结果。如果我使用ltxdoc
它,它会起作用:
这里有一个“小”的 MWE:
% \iffalse meta-comment
% arara: pdflatex: { shell: true}
%<*internal>
\iffalse
%</internal>
%<*internal>
\fi
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
\expandafter\begingroup
\fi
%</internal>
%<*install>
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
----------------------------------------------------------------
demopkg --- description text
----------------------------------------------------------------
\endpreamble
%</install>
%<install>\endbatchfile
%<*internal>
\nopreamble\nopostamble
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
\else
\expandafter\endgroup
\fi
%</internal>
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{demopkg}[2009/10/06 v1.0 description text]
%</package>
%<*driver>
% \documentclass{l3doc}
\documentclass{ltxdoc}
\usepackage{minted}
\usepackage{etoolbox}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% Text
%
% \begin{minted}{latex}
% \begin{document}
% \DocInput{\jobname.dtx}
% \end{document}
% \end{minted}
% \iffalse
%<*example>
% \fi
\begin{minted}{latex}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
\end{minted}
% \iffalse
%</example>
% \fi
% Text
%
%\Finale
奖励:我想使用环境铸造,而不使用技巧iffalse
答案1
虽然l3doc
可以使用(我自己使用它xpeek
),还远远没有达到稳定状态。例如, 约瑟夫·赖特的回答到如何使用 dtx 记录 expl3 宏,他将该课程描述为“目前相当庞大的黑客集合[…]缺乏真正全面的文档:正如我所说,它的内部并不完美!”
同样,弗兰克·米特尔巴赫写道在此主题中在 LaTeX3 邮件列表中,“[l3doc] 显然不适合一般用途,无论是质量方面还是稳定性方面。[…] 这并不意味着开发人员不能使用它,但他们必须做好准备(就目前而言),有时布局可能仍会发生变化,而我们正在进行实验,或者文档级别出现问题或... :-)”
从长远来看,我希望l3doc
成为一个基于 LaTeX3 的班级,拥有索引和交叉引用等现代解决方案。但这必须等到基于 LaTeX3 的班级真正可行,这意味着要等待输出例程、模板和类似项目的工作——换句话说,还不到几年。
与此同时,该课程仍将是一个适合 LaTeX3 团队使用的“黑客集合”,并与以下软件包产生不利影响:minted
(这似乎显著改变了输出的处理方式)是可以预料的。
(并且,当 LaTeX3 版本可用时,我不会期望它能够与基于 LaTeX2e 的侵入式软件包顺利配合使用。)
因此,您的选择如下:
- 使用
l3doc
但限制为普通格式(并准备与 LaTeX3 团队一起更新),或者 - 使用其他文档类之一,例如您对上面链接的问题的回答或 OP 自己的(未发布且不受支持)https://github.com/marcodaniel/mdframed/blob/master/ltxmdf.cls。
(或者,使用l3doc
并帮助使其现代化。)