Latex 有没有可能写自己的;“包装”;乳胶?
作为一名程序员,我想知道是否可以为LaTeX创建自己的包。我需要一些像著名的“清单”软件包,但更适合我的需要。我在寻找一个清单解决方案,它会注意像这样的评论行Latex 有没有可能写自己的;“包装”;乳胶?,latex,Latex,作为一名程序员,我想知道是否可以为LaTeX创建自己的包。我需要一些像著名的“清单”软件包,但更适合我的需要。我在寻找一个清单解决方案,它会注意像这样的评论行 // BEGIN LISTING 3122 // END LISTING 3122 没有语法突出显示,但智能支持制表符缩进。然后,该包将与文件名或路径一起使用,遍历所有行并复制出感兴趣的片段 我百分之百肯定市场上绝对没有这样的东西。所以我想为乳胶编程。如果可能的话。我不知道如何以及使用什么编程语言/IDE。我从哪里开始找呢?我很确定你
// BEGIN LISTING 3122
// END LISTING 3122
没有语法突出显示,但智能支持制表符缩进。然后,该包将与文件名或路径一起使用,遍历所有行并复制出感兴趣的片段
我百分之百肯定市场上绝对没有这样的东西。所以我想为乳胶编程。如果可能的话。我不知道如何以及使用什么编程语言/IDE。我从哪里开始找呢?我很确定你不能用乳胶做这件事。基本上,您可以疯狂地使用任何命令(
\foo
)或环境(\begin{foo}…\end{foo}
),但不是您在这里描述的方式。在环境或命令中,可以关闭LaTeX的处理,并以某种方式自行处理一切。这就是逐字记录
和列表
的工作方式。不过它并不十分漂亮。这个相当简单的软件包展示了如何将代码通过管道输送到pdflatex:通过编写shell invocable过滤器,您应该能够完成与您的想法类似的操作。基本上,我认为如果您将“/”作为活动字符,这是可能的(例如,有\makeactive
,但我想还有更多的解决方案)然后围绕它发明一些好的魔法。(你需要用你的逻辑模拟/创建一个环境。)在一些国际化软件包中也做了类似的事情,以简化带变音符号的字母输入
对于像“/”这样的字符,这可能会更难,因为这个字符也可以在文本的其他地方编写。因此,您当然要特别注意这一点。这当然是可能的,但在TeX编程语言中这是非常重要的。我现在没有时间编写代码,但这里有一个算法;我建议在comp.text.tex上询问更具体的LaTeX编程建议
- 本地将特殊字符的所有CATCODE设置为“其他”(
),并开始逐行读取输入文件(\dospecials
)\read
- 对于每一行,比较该行的前几个标记(反复使用
或\if
;可能有一个软件包使这更容易,例如stringstrings或xstring)\ifx
- 在默认状态下,扔掉输入行并读取下一行
- 除非是
//开始列出
,在这种情况下,将每一行保存到宏中(类似
)\g@addto@宏
- 显然,直到它成为
//结束列表
- 继续,直到文件结束(
)\ifeof
是这类工作的一个很好的参考指南。您需要某种单独的预处理器来循环所有项目文件。也许您应该看看Sphinx、python docutils包或doxygen,了解如何实现这一点。尤其是doxygen,因为它使用注释语法来解析和提取信息。