"!Отсутствует вставленный символ $." при использовании подстановки ключевых слов 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}

Обычно для устранения этой ошибки предлагается экранировать символ $ следующим образом: \$ Однако ни одна комбинация экранированных и неэкранированных $символов не позволяет одновременно избежать этой ошибки и дает полезные результаты.

Как избежать этой ошибки?иномера ревизий 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 $

должно сработать

Связанный контент