如何在用 \lstname 定义的列表标题中实现换行?

如何在用 \lstname 定义的列表标题中实现换行?

我正在使用该包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}

相关内容