
Кажется, я не могу написать тильду в \lstinline в сноске. Если вы раскомментируете единственную закомментированную строку в моем минимальном рабочем примере, вы поймете, что я имею в виду:
\documentclass{article}
\usepackage{listings}
\begin{document}
This works:
\begin{lstlisting}
~/path/to/file
\end{lstlisting}
And this works: \lstinline{~/path/to/file}
And this works:\footnote{\lstinline{/path/to/file}}
%But this does \emph{not} work:\footnote{\lstinline{~/path/to/file}}
\end{document}
правка: Я не уверен, что ответ на этот вопрос был достаточно полно раскрыт в связанной статье (списки в сносках), потому что этот вопрос относился к listings
окружающей среде, а не lstinline
к макросу.
решение1
Когда \lstinline
находится в аргументе другой команды, она работает ограниченно, поскольку не может выполнять определенные действия. Вы можете попробовать с \scantokens
, что работает, по крайней мере с ~
.
\documentclass{article}
\usepackage{listings}
\begin{document}
This works:
\begin{lstlisting}
~/path/to/file
\end{lstlisting}
And this works: \lstinline{~/path/to/file}
And this works:\footnote{A path: \lstinline{/path/to/file}}
But this does \emph{not} work:\footnote{A path: \scantokens{\lstinline{~/path/to/file}\relax}}
\end{document}