Latex 有没有可能写自己的;“包装”;乳胶?

Latex 有没有可能写自己的;“包装”;乳胶?,latex,Latex,作为一名程序员,我想知道是否可以为LaTeX创建自己的包。我需要一些像著名的“清单”软件包,但更适合我的需要。我在寻找一个清单解决方案,它会注意像这样的评论行 // BEGIN LISTING 3122 // END LISTING 3122 没有语法突出显示,但智能支持制表符缩进。然后,该包将与文件名或路径一起使用,遍历所有行并复制出感兴趣的片段 我百分之百肯定市场上绝对没有这样的东西。所以我想为乳胶编程。如果可能的话。我不知道如何以及使用什么编程语言/IDE。我从哪里开始找呢?我很确定你

作为一名程序员,我想知道是否可以为LaTeX创建自己的包。我需要一些像著名的“清单”软件包,但更适合我的需要。我在寻找一个清单解决方案,它会注意像这样的评论行

// 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
    \ifx
    ;可能有一个软件包使这更容易,例如stringstrings或xstring)
    • 在默认状态下,扔掉输入行并读取下一行
    • 除非是
      //开始列出
      ,在这种情况下,将每一行保存到宏中(类似
      \g@addto@宏
    • 显然,直到它成为
      //结束列表
  • 继续,直到文件结束(
    \ifeof

是这类工作的一个很好的参考指南。

您需要某种单独的预处理器来循环所有项目文件。也许您应该看看Sphinx、python docutils包或doxygen,了解如何实现这一点。尤其是doxygen,因为它使用注释语法来解析和提取信息。