我怎样才能从 dtx 文件中提取一个示例?

我怎样才能从 dtx 文件中提取一个示例?

核心问题是如何将 dtx 文件的一部分转换为纯 LaTeX。

在进一步了解包时,我想使用 dtx 中的示例?输出显示在 pdf 中。但是,dtx 的代码布局如下:

% \latexcommand

% some text that prints

% \morelatexcode

我无法确定需要哪些包,以及为什么仅删除“%”不起作用。我想使用的代码来自 longtable.dtx,但还有其他 dtx 文件包含有趣的示例,我想使用它们。

答案1

我回答了你关于 的问题longtable。你不能从 .dtx 中取出代码片段并期望它们能工作的原因与你不能从任何其他 TeX 文件中提取代码片段并期望它能工作的原因相同:它可能依赖于它之前的东西。

不可能给出一个通用的解决方案,但诀窍是运行 TeX 并查看收到的错误消息,该错误消息几乎肯定是未定义的控制序列。然后,在 .dtx 中找到定义控制序列的代码片段并将其复制过去。重复此操作直到编译成功。

答案2

以下是我所采用的步骤。

  • 将 .dtx 复制到 .tex。我的示例:
cp longtable.dtx longtable_eg.tex

编辑 longtable_eg_dtx.tex

  • 将“^( *)\”替换为“%%% \0\”,将“^( +)”替换为“%%% \0”,这将注释所有 dtx 命令。
s/^( *)\\/\%\%\% \0\\/
s/^( +)/\%\%\% \0/
  • 在顶部插入行
\documentclass{ltxdoc} 
\usepackage{longtable} 
\begin{document} 

对于初始 \if /fi 对之后的行:

%%% \documentclass{ltxdoc} 
%%% \usepackage{longtable} 
%%% \begin{document} 
  • 插入\end{document}到末尾。

  • 取消注释不在 \if - \fi 对中的部分,靠近每行顶部以“%”开头的部分

  • 编译(至少两次)

  • 查看结果

相关内容