svn $Id$ キーワード置換を使用する場合、「!挿入された $ がありません。」

svn $Id$ キーワード置換を使用する場合、「!挿入された $ がありません。」

ドキュメントの内容で使用するために、Subversionのリビジョン番号を表示したいのですが。 svninfoパッケージsvnsvn キーワード置換これを実現したいのですが、試してみると次のエラーが発生します:

エラー行 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 $

動作するはずです

関連情報