考虑以下 MWE。请注意,这里使用 Mercurial 进行说明,但问题并不特定于 Mercurial
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
\parbox{\linewidth}{\centering
\input{"| hg log -v -l 1 \jobname.tex --template '{node} {date|isodate}'"}\\
}
\end{document}
如果文件受版本控制,则命令
hg log -v -l 1 \jobname.tex --template '{node} {date|isodate}'
具有非空值,则没有问题。但是,如果文件受版本控制,则此命令不会返回值,文件将缩减为
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
\parbox{\linewidth}{\centering
\\
}
\end{document}
这会产生错误。有什么好方法可以确保如果输入返回的字符串为空,则应\\
将其删除?
可以使用其他命令来代替该hg
命令。唯一的要求是,在某些情况下,该命令不返回任何内容。
答案1
您可以测试 hmode:
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
\parbox{\linewidth}{\centering
% your input ...
\ifhmode \\ \fi
blalal
}
\end{document}