"!$ 누락이 삽입되었습니다." svn $Id$ 키워드 대체를 사용할 때

"!$ 누락이 삽입되었습니다." svn $Id$ 키워드 대체를 사용할 때

내 문서의 내용에 사용할 수 있도록 Subversion 개정 번호를 표시하고 싶습니다. 패키지 svninfosvn다음 사항에 의존합니다.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 $

작동해야 한다

관련 정보