Anonymous hat geschrieben:Könnte man das nicht auch in scrhack einbauen?
Können, könnte man vieles. Man könnte beispielsweise einfach:
\RequirePackage{scrlfile}
\ReplaceClass{article}{scrartcl}
\ReplaceClass{report}{scrreprt}
\ReplaceClass{book}{scrbook}
an den Anfang all seiner Dokumente schreiben. Dann verfügt man über alle Vorteile der KOMA-Script-Klassen auch, wenn später eine Standardklasse per \documentclass oder innerhalb einer Wrapper-Klasse per \LoadClass oder \LoadClassWithOptions angefordert wird:
\RequirePackage{scrlfile}
\ReplaceClass{article}{scrartcl}
\ReplaceClass{report}{scrreprt}
\ReplaceClass{book}{scrbook}
\documentclass[paper=a5
]{book}%
\usepackage[ngerman]{babel}%
\usepackage{scrhack}
\usepackage{listings}
% -----------------------------------------------------
%\BeforeStartingTOC[lot]{\label{tabellen}}% funktioniert
\BeforeStartingTOC[lol]{\label{codelisting}}% funktioniert nicht
\begin{document}
\chapter{Eins}
Meine Listings finden Sie auf \textbf{\pageref{codelisting}.} <---
\begin{lstlisting}[caption=Listing Eins]
Ein erstes kurzes Listing
\end{lstlisting}
\newpage
\begin{lstlisting}[caption=Listing Zwei]
Ein weiteres kurzes Listing
\end{lstlisting}
% LISTING-VERZEICHNIS
\renewcommand{\lstlistlistingname}{Listingverzeichnis}
\lstlistoflistings
\end{document}
Damit werden quasi alle Fähigkeiten der KOMA-Script-Klassen in die Standardklassen gepatcht.
Und wenn man nicht ganz alle Vorteile, sondern mehr das Aussehen der Standardklassen haben will, dann geht auch das:
\RequirePackage{scrlfile}
\PassOptionsToClass{emulatestandardclasses}{scrartcl}
\PassOptionsToClass{emulatestandardclasses}{scrreprt}
\PassOptionsToClass{emulatestandardclasses}{scrbook}
\ReplaceClass{article}{scrartcl}
\ReplaceClass{report}{scrreprt}
\ReplaceClass{book}{scrbook}
\documentclass[paper=a5
]{book}%
\usepackage[ngerman]{babel}%
\usepackage{scrhack}
\usepackage{listings}
% -----------------------------------------------------
%\BeforeStartingTOC[lot]{\label{tabellen}}% funktioniert
\BeforeStartingTOC[lol]{\label{codelisting}}% funktioniert nicht
\begin{document}
\chapter{Eins}
Meine Listings finden Sie auf \textbf{\pageref{codelisting}.} <---
\begin{lstlisting}[caption=Listing Eins]
Ein erstes kurzes Listing
\end{lstlisting}
\newpage
\begin{lstlisting}[caption=Listing Zwei]
Ein weiteres kurzes Listing
\end{lstlisting}
% LISTING-VERZEICHNIS
\renewcommand{\lstlistlistingname}{Listingverzeichnis}
\lstlistoflistings
\end{document}
Alle Features der KOMA-Script-Klassen als Paket für die Standardklassen wäre dagegen eher wenig sinnvoll, weil das letztlich auf obiges hinauslaufen würde, also nahezu sämtlichen Code der Standardklassen durch Code der KOMA-Script-Klassen zu ersetzen. Die Code-Schnittmenge ist da wirklich nur noch extrem gering. Die KOMA-Script-Klassen ersetzen inzwischen sogar einigen Code aus dem LaTeX-Kern.