我想实现以下装饰:对于大学,我们必须将代码转换为 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}