我有一个反复出现的问题。
我希望能够强制 latex 完成编译,无论是否出现错误。我知道这个错误会在我的脚本中多次出现,这是 pythontex 包导致的。
我使用 pythontex 包将我在 python 中处理的数据导入到我的报告中。要使用 pythontex,首先要使用 latex 编译 tex 文档(我使用 xelatex),然后使用 pythontex,最后再次使用 latex。因此,我在命令行中运行:
xelatex mydoc.tex
pythontex mydoc.tex
xelatex mydoc.tex
问题是,我希望能够根据从 python 返回的值是大于还是小于零来对它们进行颜色编码。但是,我第一次使用 xelatex(或其他程序)编译我的 tex 文件时,由于尚未运行 pythontex,我传递给函数的 \py{2} 参数colorme
为空。这会引发错误,整个过程会停止。
我将创建更多类似的函数,因此colorme
我希望有一个包罗万象的解决方案,可以帮助保持乳胶运行,尽管空参数不可避免地会出现错误。
有没有办法强制 latex 完成编译,以便我至少可以运行 pythontex?
\documentclass{article}
\usepackage{pythontex}
%color things red!
\newcommand{\colorme}[1]{
\ifnum\ifnum\numexpr 0 < #1
\textcolor{black}{#1}
\else
\textcolor{red}{#1}
\fi
}
\begin{document}
\colorme{\py{2}}
\colorme{\py{-2}}
\colorme{2}
\colorme{\py{-2}}
\end{document}
答案1
xelatex -help
建议
-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/
scrollmode/errorstopmode)
你可能想要batchmode
,但可能更好的选择是修复你的宏以接受空参数例如
\ifnum\numexpr 0 < \ifx\valign#1\valign0 \else #1\fi\relax
将进行{}
测试0
但仍然打印为空。
无论如何你肯定想改变\ifnum\ifnum
。\ifnum
\documentclass{article}
\usepackage{pythontex}
%color things red!
\newcommand{\colorme}[1]{%
\ifnum\numexpr 0 < \ifx\valign#1\valign0 \else#1\fi\relax
\textcolor{black}{#1}%
\else
\textcolor{red}{#1}%
\fi
}
\begin{document}
\colorme{}
\colorme{2}
\end{document}