从 lstinputlisting 中删除文件路径

从 lstinputlisting 中删除文件路径

我想实现以下装饰:对于大学,我们必须将代码转换为 PDF。为了简化此操作,我使用以下宏:

\newcommand{\includecode}[2][code]{\lstinputlisting[escapechar=, style=code, title=#2]{#2} \bigskip}

但是,标题显示文件的完整路径,而不仅仅是文件名本身。我该如何解决这个问题?

编辑:这是我用于包含文件的命令:

\includecode{Intelli/src/a19/a/Immobilie.java}

问候

和我

更新:我的最终代码。也许将来有人会喜欢这个解决方案。

\makeatletter
\newcommand{\captcode}[1]{\filename@parse{#1}\filename@base.\filename@ext}
\makeatother

\newcommand{\includecode}[2][code]{\lstinputlisting[escapechar=, style=code, title=\captcode{#2}]{#2} \bigskip}

答案1

LaTeX 内核有一个文件名解析器,可用于将路径拆分为多个部分:

\documentclass{article}

\makeatletter
\newcommand{\test}[1]{%
  \filename@parse{#1}%
  \begin{tabular}{ll}
    Path: & #1\\
    Area: & \filename@area\\
    Base: & \filename@base\\
    Extension:  & \filename@ext\\
    Name: & \filename@base.\filename@ext\\
  \end{tabular}%
}
\makeatother

\begin{document}
  \test{Intelli/src/a19/a/Immobilie.java}
\end{document}

结果

相关内容