末尾にバックスラッシュを付けてパスを再定義する

末尾にバックスラッシュを付けてパスを再定義する

次の MWE は正常に動作します。

\documentclass{article}
\usepackage{url}
\renewcommand{\path}[1]{hidden for privacy}
\begin{document}
\path{C:\User\John Doe}
\end{document}

末尾にバックスラッシュ(\path{C:\User\John Doe\})があるとコンパイルできません。

Runaway argument?
{C:\User \John Doe\} \end {document} 
! File ended while scanning use of \path.

\path末尾のバックスラッシュでも機能するように再定義するにはどうすればよいでしょうか?

答え1

xparseとその型引数指定子を使用することができますv。LaTeXのインストールが100%最新の場合は、xparseすでにLaTeXに組み込まれています。

\RenewDocumentCommand\path{v}{hidden for privacy}

完全なMWE:

\documentclass{article}
\usepackage{url}
%\renewcommand{\path}[1]{hidden for privacy}
\RenewDocumentCommand\path{v}{hidden for privacy}
\begin{document}
\path{C:\User\John Doe\}
\end{document}

xparse明示的にロードされたものと同様

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xparse}
\usepackage{url}
%\renewcommand{\path}[1]{hidden for privacy}
\RenewDocumentCommand\path{v}{»Path hidden for privacy«}
\begin{document}
\path{C:\User\John Doe\}
\end{document}

関連情報