我正在使用该包listings
并将标题定义为\lstname
,因此当我使用 listings 包的输入命令时,它会显示相对路径和文件名。
但是有时候文件名太长了。有没有什么办法可以换行或者直接显示文件名呢?
答案1
您可以使用url
包来允许中断文件路径,或者您可以使用 LaTeX 的文件名解析器来仅提取基本名称:
\documentclass{article}
\usepackage{listings,url}
\makeatletter
\protected\def\basename#1{\filename@parse{#1}\filename@base.\filename@ext}
\makeatother
\begin{document}
\lstinputlisting[caption=\expandafter\protect\expandafter\url\expandafter{\lstname}]{%
/c/tmp/../tmp/../tmp/../tmp/../tmp//../tmp/../tmp/../tmp/../tmp/../tmp/zzz.txt}
\lstinputlisting[caption=\basename{\lstname}]{%
/c/tmp/../tmp/../tmp/../tmp/../tmp//../tmp/../tmp/../tmp/../tmp/../tmp/zzz.txt}
\end{document}