我想显示 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 $
应该管用