Liste der enthaltenen Dateien im PDF auf der Titelseite

Liste der enthaltenen Dateien im PDF auf der Titelseite

Ich hätte gerne eine (aufgeschlüsselte) Liste der Dateien, die ich in das in definierte PDF aufgenommen habe \includeonly{}.

Mein Ansatz funktioniert überhaupt nicht, da für jede eingebundene Datei sehr viel manuelle Arbeit nötig ist, ein missing \itemin der itemizeUmgebung vorhanden ist und es methodisch falsch ist, da die in jeder Datei boolsimmer auf gesetzt sind true; es spielt keine Rolle, ob sie eingebunden ist oder nicht.

Hier ist mein MWE:

\documentclass{scrbook}
\usepackage{filecontents,etoolbox}
\newbool{chapter01}
\newbool{chapter02}
\newbool{chapter03}

\usepackage{blindtext}

\begin{filecontents}{chapter01.tex}
    \chapter{This is chapter 01}
    \booltrue{chapter01}
    \blindtext[3]
\end{filecontents}
\begin{filecontents}{chapter02.tex}
    \chapter{This is chapter 02}
    \booltrue{chapter02}
    \blindtext[3]
\end{filecontents}
\begin{filecontents}{chapter03.tex}
    \chapter{This is chapter 03}
    \booltrue{chapter03}
    \blindtext[3]
\end{filecontents}

\includeonly{%
 chapter01,
% chapter02,
 chapter03
}
\begin{document}
\begin{titlepage}
    This PDF contains:
    \begin{itemize}
     \ifbool{chapter01}{\item Chapter 01}{}
     \ifbool{chapter02}{\item Chapter 02}{}
     \ifbool{chapter03}{\item Chapter 03}{}
    \end{itemize}
\end{titlepage}
\include{chapter01}
\include{chapter02}
\include{chapter03}
\end{document}

Antwort1

Das \includeonlyMakro erstellt eine durch Kommas getrennte Liste der Dateien mit dem Namen \@partlist. Wir müssen also nur ein Makro erstellen, um diese Liste zu verarbeiten und sie in der gewünschten Weise auszugeben. Die Reihenfolge der Liste entspricht genau der Reihenfolge im \includeonlyBefehl. Das Sortieren der Liste würde mehr Aufwand erfordern.

Hier ist ein Beispiel (aktualisiert, um Unterstriche in Dateinamen zu berücksichtigen).

\documentclass{report}
\begin{filecontents}{\jobname_1.tex}
\chapter{First Chapter}
\end{filecontents}
\begin{filecontents}{\jobname_2.tex}
\chapter{Second Chapter}
\end{filecontents}
\begin{filecontents}{\jobname_3.tex}
\chapter{Third Chapter}
\end{filecontents}
\includeonly{\jobname_1, \jobname_2}
\usepackage{titling}
\usepackage{etoolbox}
\usepackage{url}
\DeclareUrlCommand{\filename}{\urlstyle{rm}}
\makeatletter
\newcommand{\listincluded}{%
\begin{enumerate}
\renewcommand*{\do}[1]{\item \filename{##1.tex}}
\expandafter\docsvlist\expandafter{\@partlist}
\end{enumerate}
}
\makeatother
\renewcommand{\maketitlehookd}{%
\begin{center}
\bfseries List of Included Files
\end{center}
\listincluded
}
\title{A title}
\author{An author}
\date{}

\begin{document}
\maketitle
\tableofcontents
\include{\jobname1}
\include{\jobname2}
\include{\jobname3}


\end{document}

Ausgabe des Codes

verwandte Informationen