我想顯示顛覆版本號以在我的文件內容中使用。 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 $
應該管用