使用 svn $Id$ 关键字替换时出现“!缺少 $ 插入。”

使用 svn $Id$ 关键字替换时出现“!缺少 $ 插入。”

我想显示 Subversion 修订号以供在我的文档内容中使用。 svninfo并且svn软件包依赖于svn 关键字替换来实现这一点,但是当我尝试时出现此错误:

错误行 6!缺少插入 $。

以下是导致此问题的完整文档:

\documentclass{article}
\usepackage{svninfo}

\begin{document}
\svnInfo $Id: doc.tex 8 2013-04-11 19:37:31Z User Name $ %<= Id keyword substituted by svn  

\end{document}

针对此错误通常建议的补救措施是对 $ 进行转义,如下所示:\$ 但是,没有任何转义字符和非转义$字符的组合能够既避免此错误又产生有用的结果。

如何避免此错误表面 svn 修订编号?

答案1

用户名可能没有空格。此操作运行无错误

\documentclass{article}
\usepackage{svninfo}

\begin{document}
\svnInfo $Id: doc.tex 8 2013-04-11 19:37:31Z UserName $ %<= Id keyword substituted by svn  

\end{document}

由于 Windows 用户名允许使用空格,因此您可以让 svnInfo 也允许使用空格。这似乎有效:

在此处输入图片描述

\documentclass{article}
\usepackage{svninfo}

\makeatletter
\def\@svnInfoCrackAndEat #1 #2 #3 #4 #5 #6 $ {\@svnEndRead
  \@svnInfoCrackString #2 #3 #4 #5 {#6} $ %
}
\makeatother

\begin{document}
\svnInfo $Id: doc.tex 8 2013-04-11 19:37:31Z User Name $ %<= Id keyword substituted by svn  

[\svnInfoOwner]

\end{document}

答案2

您的用户名中有一个空格:

\svnInfo $Id: doc.tex 8 2013-04-11 19:37:31Z UserName $

应该管用

相关内容