Wenn das Ziel ist, eine dieser
unsäglichen Vorlagen zu erstellen, kann ich Johannes nur beipflichten. Das endet nämlich früher oder später (erfahrungsgemäß eher früher) garantiert wieder in viel Arbeit für uns und viel Frust für die Anwender.
Ansonsten sei eine Möglichkeit über die Dateiliste, die LaTeX anlegt, gezeigt:
\documentclass{article}
\makeatletter
\AtBeginDocument{%
% Wenn \listfiles nicht verwendet wird, ist \@listfiles nicht definiert und
% üblicherweise zerstört dann LaTeX die Befehle \@filelist und
% \@addtofilelist innerhalb von \begin{document}. Das kann man einfach
% verhindern, indem man \@listfiles zumindest auf \relax setzt.
\ifx\@listfiles\@undefined\let\@listfiles\relax\fi
% Besser wäre vermutlich, an dieser Stelle \listfiles aufzurufen,
% schließlich schadet die Liste in der log-Datei nicht, sondern nützt
% bei weiteren Fragen sogar.
}
\newcommand*\IfFileInList[2]{%
% Testen, ob #1 in der Liste #2 enthalten ist und dann entweder das nächste
% oder übernächste Argument verarbeiten.
\protected@edef\reserved@a{\noexpand\in@{#1}{#2}}\reserved@a
\ifin@
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi
}
\newcommand*\IfInFileList[1]{%
% \IfFileInList auf den Dateinamen aus Argument 1 und die LaTeX-Dateiliste
% anwenden.
\IfFileInList{#1}{\@filelist}%
}
\makeatother
\begin{filecontents}{\jobname-1.tex}
\section{\jobname 1}
\blindtext
\end{filecontents}
\usepackage{blindtext}
\begin{document}
\input{\jobname-1.tex}
\blinddocument
\section{Test}
\texttt{article.cls} wurde \IfInFileList{article.cls}{}{nicht }geladen.
\texttt{blindtext.sty} wurde \IfInFileList{blindtext.sty}{}{nicht }geladen.
\texttt{\jobname-1.tex} wurde \IfInFileList{\jobname-1.tex}{}{nicht }geladen.
\texttt{\jobname-2.tex} wurde \IfInFileList{\jobname-2.tex}{}{nicht }geladen.
\end{document}
Wer obigen Code nicht versteht oder keine Ahnung hat, welche Konsequenzen der Trick mit \AtBeginDocument haben könnte, sollte die Finger davon lassen!