将 \filelist 打印为 pdf

将 \filelist 打印为 pdf

我知道有很多包可以修改的输出\listfiles。但是,我想将此列表打印到 pdf 中,而不是日志文件中。

这对于我的模板文档来说很有意义,我想按加载顺序添加模板中使用的所有文件的列表。

答案1

只是向您指出一个包,但dateiliste可能适合:

在此处输入图片描述

该命令\printFileList有一个可选的分段参数,用于指定文件列表要出现在哪种类型的文档块中,例如\printFileList[\section]。它还有一些您可以设置的参数:

  \fileListName     - title ("List of Files")
  \fileListPreamble - preamble (typeset before the table)
  \fileNameName     - table header "file name"
  \dateName         - table header "date"
  \verName          - table header "version"
  \descriptionName  - table header "description"

最小示例(如果您不想要页码,请使用可选的 调用该包\usepackage[noshowpage]{dateiliste}):

\documentclass{article}
\usepackage{mathtools}
\usepackage{dateiliste}
% \usepackage[noshowpage]{dateiliste}
\listfiles
\begin{document}
\printFileList
\end{document}

编辑:如果该noshowpage选项不能完全解决问题,您还有其他几个选择:

(1)您可以缩短“版本”列标题,方法是\def\verName{ver.} (2)您可以编辑 的第 172-173 行dateiliste.sty。第 173 行指定了描述列的格式。您可以将其从当前

\string\raggedright\string\arraybackslash}X}

到,

\string\small\string\raggedright\string\arraybackslash}X}

以减少该列文本的大小。此外,如果您不介意将第 1 列中的长文件名拆分,您可以编辑第 172 行

\string\begin{longtable}{\@tempa>{%

其中\@tempa,包含lrlllll来指定列对齐方式(取决于您是否调用了noshowpages,以

\string\begin{longtable}{p{3cm}ll>{%

可以p{3cm}进行调整以仅分解最长的文件名。

答案2

这实际上是从latex.ltx并包裹在\printfiles

在此处输入图片描述

\listfiles
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{geometry}% http://ctan.org/pkg/geometry
\makeatletter
\def\printfilelist{%
  \begingroup
  \ttfamily%
  \par*File List* \par
  \@for\@currname:=\@filelist\do{%
    \filename@parse\@currname
    \edef\reserved@a{%
      \filename@base.%
      \ifx\filename@ext\relax tex\else\filename@ext\fi}
        \expandafter\let\expandafter\reserved@b
                              \csname ver@\reserved@a\endcsname
       \expandafter\expandafter\expandafter\@listfiles\expandafter
             \filename@area\filename@base\\\\\\\\\\\\\\\\\\\@@
       \filename@area\reserved@a
         \ifx\reserved@b\relax\else\@spaces\reserved@b\fi\par}
     ***********\par
  \endgroup%
}
\makeatother
\begin{document}
abc

\printfilelist
\end{document}

文件列表表示当前ScribTeX(在 TeX Live 2009 下)。

相关内容