对这个非常基本的问题道歉!
我只想读一个乳胶文件(基本上是文本)并输出所有(说)定理,这些定理总是采用格式
\begin{theorem}
some lines of latex
\end{theorem}
我总是认为Perl是正确的语言!
当然,我只知道C ++和Java中非常基本的编程,而且几乎没有Perl。
尽管如此,我现在可以阅读文本文件,并逐行处理。
这似乎是最基本的方法:
($string =~ /pattern/)
我开始感到困惑,然后阅读控制代码,如?,* +,$等
任何简单的引用或链接都可以让我入手?
(我把它放在这里,而不是Tex网站,因为它通常用于阅读文本文件,而不仅仅是LaTeX!)
答案 0 :(得分:8)
如果您使用的是Unix-y机器(包括Mac),对于这么小的任务,您应该首先到达sed
:
$ sed -ne '/^\\begin{theorem}$/,/^\\end{theorem}$/p' doc.tex
如果您使用的是Windows,则不会将sed
与操作系统捆绑在一起,并且perl更容易安装AIUI,所以这里是等效的:
> perl -ne 'print if /^\\begin\{theorem\}$/.../^\\end\{theorem\}$/;' doc.tex
您可能会注意到这两个命令之间存在明显的相似之处。那不是偶然的; Perl从许多旧的Unix文本复制实用程序中获取了想法,包括sed
。
答案 1 :(得分:0)
我认为模式 \开始{定理}(。*)\ {端定理}
然后在进行匹配后,你的定理将在变量$ 1中。
注意:我在这里假设最基本的结构。如果定理可以是多线的,那么我可以给你更好的解决方案。