![StopEventually 在 LtxDoc 和 L3Doc 中的行为不同](https://linux22.com/image/404397/StopEventually%20%E5%9C%A8%20LtxDoc%20%E5%92%8C%20L3Doc%20%E4%B8%AD%E7%9A%84%E8%A1%8C%E4%B8%BA%E4%B8%8D%E5%90%8C.png)
我检查了我自己的两个文件,发现和*.dtx
之间的内容会根据文档类别而不是的设置进行隐藏或显示。也就是说,使用 的文档显示文档的后半部分,而使用 的文档则不显示。我在两个文件的类别之间切换,行为似乎一致。\StopEventually
\Finale
\OnlyDescription
l3doc
ltxdoc
不打印出和ltxdoc
之间的内容是标准吗?\StopEventually
\Finale
答案1
首先,它只是对包和类ltxdoc
的一个薄包装,而现在它是一个doc
article
l3doc
很多更大的类文件。最终l3doc
将拆分为一个类和一个包来记录 LaTeX3 代码,就像LaTeX2ε 的和一样ltxdoc
。doc
包doc
并不\StopEventually
直接定义,而是通过宏\AlsoImplementation
和\OnlyDescription
来打开和关闭文档的实现部分。
当您使用\AlsoImplementation
(默认)时,\StopEventually{<code>}
会使\Finale
执行<code>
(并检查文档的校验和),而不执行其他任何操作。
当您使用时\OnlyDescription
,\StopEventually{<code>}
会立即执行<code>\endinput
,本质上忽略当前文件中的所有其他内容,这就是您所看到的。
这个想法是,你把它放在\StopEventually{<code>}
用户文档和实现部分之间,这样用一个简单的开关就可以打开和关闭实现部分。
l3doc
行为类似,只是文档应位于documentation
环境中,而实现应位于implementation
部分中。然后,常用doc
开关\AlsoImplementation
和\OnlyDocumentation
照常工作。将内容放在环境中l3doc
可让您更好地控制文档,因此您有四个开关:\EnableDocumentation
和\EnableImplementation
用于启用每个环境,和\DisableDocumentation
用于\DisableImplementation
禁用它们。l3doc
还有full
和选项,它们分别是和开关onlydoc
的同义词。\AlsoImplementation
\OnlyDescription