当文件不受版本控制时,嵌入版本控制信息会返回错误

当文件不受版本控制时,嵌入版本控制信息会返回错误

考虑以下 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}

相关内容