coq-tex
可以使用特殊环境预处理 LaTeX 文件,将 Coq 交互放入输出文件中;结果即可用于pdflatex
。
我喜欢latexmk
,最近才发现它,并希望它自动运行 coq-tex。怎么做?
答案1
基于latexmk:多个自定义生成的文件和 \input,我设法使以下设置基本正常工作。latexmk
配置
add_cus_dep('tex', 'v_tex', 0, 'coqtex');
sub coqtex {
system("coq-tex -sl \"$_[0].tex\" -o \"$_[0].v_tex\"");
}
push @generated_exts, 'v_tex';
然后,使用以下宏input
在 Coq 环境中对 tex 文件进行操作:
\newcommand{\inputcoq}[1]{\InputIfFileExists{#1.v_tex}{}{\typeout{No file #1.v_tex.}}}
例如,\inputcoq{foo}
.latexmk
应该会自动重新生成正确的文件。
但是,有一个问题是,无论是latexmk -c
还是latexmk -C
都不会删除生成的v_tex
文件。第二个问题是,它coq-tex
会自动使用扩展名,当我用它配置它(并相应地更改其余代码)时.v.tex
,它似乎会卡住。这是因为将最后一个点之后的所有内容都视为扩展名。latexmk
add_cus_dep('tex', 'v.tex', 0, 'coqtex');
latexmk