Я хотел бы вывести на экран номера ревизий 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}
Обычно для устранения этой ошибки предлагается экранировать символ $ следующим образом: \$
Однако ни одна комбинация экранированных и неэкранированных $
символов не позволяет одновременно избежать этой ошибки и дает полезные результаты.
Как избежать этой ошибки?иномера ревизий Surface 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 $
должно сработать