diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx | 385 |
1 files changed, 385 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx new file mode 100644 index 00000000000..5577bdc3721 --- /dev/null +++ b/Master/texmf-dist/source/latex/tudscr/tudscr-misc.dtx @@ -0,0 +1,385 @@ +% \CheckSum{195} +% \iffalse meta-comment +% ====================================================================== +% +% Das Corporate Design der TU Dresden auf Basis der KOMA-Script-Klassen +% +% ====================================================================== +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% This work has the LPPL maintenance status "author-maintained". +% The current maintainer and author of this work is Falk Hanisch. +% ---------------------------------------------------------------------- +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3c, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3c ist Teil aller Verteilungen von LaTeX +% Version 2005/12/01 oder spaeter und dieses Werks. +% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" +% (allein durch den Autor verwaltet). +% Der aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. +% ====================================================================== +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse +%%% From File: tudscr-misc.dtx +%<*driver> +% \fi +\ProvidesFile{tudscr-misc.dtx}% + [2014/04/24 v2.01 TUD-KOMA-Script (miscellaneous)] +% \iffalse +\documentclass{tudscrdoc} +\KOMAoptions{parskip=half-} +\CodelineIndex +\RecordChanges +\GetFileInfo{tudscr-misc.dtx} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \section{Verschiedenes} +% +% Alles, wofür sich eine separate Datei nicht lohnt, landet hier. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \iffalse +%<*class&option> +% \fi +% +% \subsection{Sprungmarken} +% +% \begin{option}{tudbookmarks} +% \begin{macro}{\if@tud@bookmarks} +% Wird das Paket \pkg{hyperref} geladen, so kann die Option \opt{tudbookmarks} +% genutzt werden, um zu steuern, ob für Titel und Inhaltsverzeichnis +% automatisch ein Eintrag für die Sprungmarken erzeugt werden soll. +% \begin{macrocode} +\newif\if@tud@bookmarks +\TUD@ifkey{tudbookmarks}{@tud@bookmarks} +% \end{macrocode} +% \end{macro}^^A \if@tud@bookmarks +% \end{option}^^A tudbookmarks +% +% \iffalse +%</class&option> +%<*class&!option> +% \fi +% +% \begin{macro}{\tudbookmark} +% \begin{macro}{\tud@footnote@unhyper} +% \begin{macro}{\tud@footnote@rehyper} +% Die Befehle zum Eintragen der Sprungmarken. Im Dokument kann auch der Befehl +% \cs{tudbookmark} vom Anwender genutzt werden, um manuell weitere Lesezeichen +% zu erzeugen. +% +% Außerdem müssen für die Titelseite die Fußnoten auf den Originalzustand +% zurückgesetzt werden. Dafür werden die Befehle \cs{tud@footnote@unhyper} und +% \cs{tud@footnote@rehyper} definert. +% \begin{macrocode} +\newcommand*\tudbookmark[1][]{\@gobbletwo} +\newcommand*\phantomsection{} +\let\phantomsection\relax +\newcommand*\tud@footnote@unhyper{} +\newcommand*\tud@footnote@rehyper{} +\AfterPackage{hyperref}{% + \renewcommand*\tudbookmark[3][]{% + \relax% + \if@tud@bookmarks% + \phantomsection% + \ifblank{#1}{\pdfbookmark{#2}{#3}}{\pdfbookmark[#1]{#2}{#3}}% + \fi% + }% + \renewcommand*\tud@footnote@unhyper{% + \let\Hy@saved@footnotemark\@footnotemark% + \let\Hy@saved@footnotetext\@footnotetext% + \let\@footnotemark\H@@footnotemark% + \let\@footnotetext\H@@footnotetext% + }% + \renewcommand*\tud@footnote@rehyper{% + \ifx\@footnotemark\H@@footnotemark% + \let\@footnotemark\Hy@saved@footnotemark% + \fi% + \ifx\@footnotetext\H@@footnotetext% + \let\@footnotetext\Hy@saved@footnotetext% + \fi% + }% +} +\AtBeginDocument{% + \pretocmd{\makecover}{% +%<*book|report> + \tudbookmark[0]{\coverpagename}{cover} +%</book|report> +%<*article> + \tudbookmark[1]{\coverpagename}{cover} +%</article> + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{makecover}}% + \pretocmd{\maketitle}{% +%<*book|report> + \tudbookmark[0]{\titlepagename}{title} +%</book|report> +%<*article> + \tudbookmark[1]{\titlepagename}{title} +%</article> + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{maketitle}}% + \pretocmd{\tableofcontents}{% +%<*book|report> + \if@openright\cleardoublepage\else\clearpage\fi% + \tudbookmark[0]{\contentsname}{toc}% +%</book|report> +%<*article> + \tudbookmark[1]{\contentsname}{toc}% +%</article> + \ifdef{\bookmarksetup}{\bookmarksetup{startatroot}}{}% + }{}{\tud@patch@wrn{tableofcontents}}% +} +% \end{macrocode} +% \end{macro}^^A \tud@footnote@rehyper +% \end{macro}^^A \tud@footnote@unhyper +% \end{macro}^^A \tudbookmark +% +% \subsection{Parameter für Umgebungen und mehrspaltige Texte} +% +% Diese Befehle dienen dazu, bei Umgebungen die Sprache über einen Parameter +% anzugeben sowie das Paket \pkg{multicol} verwenden zu können. +% \begin{macro}{\tud@environmenthandler} +% Hiermit kann sowohl die zu verwendende Sprache als auch die Anzahl der +% gewünschten Spalten für bestimmte Umgebungen ohne die explizite Angabe eines +% Schlüssels festgelegt werden. Momentan betrifft das die beiden Umgebungen +% \env{abstract} und \env{tudpage}. +% \begin{macrocode} +\newcommand*\tud@environmenthandler[1]{% + \def\@tempa{#1}% + \@for\@tempb:=\@tempa\do{% + \ifx\@tempb\@empty\else% + \ifxnumber{\@tempb}{\let\tud@multicols\@tempb}{% + \ifstr{\@tempb}{twocolumn}{\def\tud@multicols{2}}{% + \expandafter\selectlanguage\expandafter{\@tempb}% + }}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@environmenthandler +% \begin{macro}{\tud@multicols} +% \begin{macro}{\tud@multicols@check} +% Im Makro \cs{tud@multicols} wird die Anzahl der gewünschten Spalten in einer +% Umgebung für die Verwendung des \pkg{multicol}"=Paketes gespeichert. +% \begin{macrocode} +\newcommand*\tud@multicols{1} +% \end{macrocode} +% Der Befehl \cs{tud@multicols@check} prüft, ob das Paket \pkg{multicol} geladen +% wurde. Falls dies nicht der Fall ist, wird eine Warnung ausgegeben. +% \begin{macrocode} +\newcommand*\tud@multicols@check{% + \ifdef{\multicols}{}{% + \ifnum\tud@multicols>1\relax% + \ClassWarning{\tudcls@name}{% + The option 'columns=\tud@multicols' is only supported,\MessageBreak% + when package 'multicol' is loaded% + }% + \def\tud@multicols{1}% + \fi% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@multicols@check +% \end{macro}^^A \tud@multicols +% +% \iffalse +%</class&!option> +%<*titlepage|class&!option> +% \fi +% +% \subsection{Bedingte Majuskeln für Überschriften} +% +% Überschriften sollen bloß in Großbuchstaben gesetzt werden, wenn auch +% tatsächlich die Schrift DIN~Bold verwendet wird. +% \begin{macro}{\tud@makeuppercase} +% \begin{macro}{\ifdin} +% Der Befehl führt \cs{MakeTextUppercase}\marg{Text} deshalb nur aus, wenn die +% richtige Schriftfamilie verwendet wird. +% \begin{macrocode} +\newcommand*\tud@makeuppercase[1]{% + \ifx\f@family\tud@dinbold% + \begingroup% + \MakeTextUppercase{#1}% + \endgroup% + \else% + #1% + \fi% +% \end{macrocode} +% Aufgrund eines Fehlers im \hologo{LaTeX}-Kernels liegt die Grundlinie für die +% Gliederungsebene \cs{scetion} zu hoch. Mit dem Einfügen des vertikalen +% Freiraums für die Umlaute würde diese automatisch nach unten verschoben. +% Allerdings ist das ein ziemlich übler Hack. +% \begin{macrocode} +%% \vphantom{\"A\"O\"U}% +} +% \end{macrocode} +% Der Befehl \cs{ifdin} prüft auf die Verwendung von DIN~Bold. Davon abhängig +% wird entweder das erste oder das zweite Argument ausgeführt. Dies kann für die +% die Befehle aller Gliederungsebenen genutzt werden, um zwischen der Ausgabe im +% Dokument sowie Inhaltserzeichnis und/oder Kolumnentitel zu unterscheiden. +% \begin{macrocode} +\newcommand*\ifdin{% + \ifx\f@family\tud@dinbold\relax% + \expandafter\@firstoftwo% + \else% + \expandafter\@secondoftwo% + \fi% +} +% \end{macrocode} +% \end{macro}^^A \ifdin +% \end{macro}^^A \tud@makeuppercase +% +% \iffalse +%</titlepage|class&!option> +%<*class&option> +% \fi +% +% \subsection{Erzwungene Minuskeln für Strings} +% +% Um angegebene Werte bei Schlüssel-Wert-Paaren oder Schlüsselwörter in +% bestimmten Feldern sicher erkennen zu können, werden diese zwingend in +% Kleinbuchstaben geschieben. +% \begin{macro}{\tud@lowerstring} +% Das Makro wird mit \cs{tud@lowerstring}\marg{Zielmakro}\marg{String} bennutzt. +% \begin{macrocode} +\newcommand*\tud@lowerstring[2]{% + \protected@edef#1{#2}% + \lowercase\expandafter{% + \expandafter\gdef\expandafter #1\expandafter{#1}% + }% +} +% \end{macrocode} +% \end{macro}^^A \tud@lowerstring +% +% \subsection{Standardoptionen} +% +% Durchreichen aller Klassenoptionen an die \KOMAScript-Klasse. +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\scrcls@name}} +% \end{macrocode} +% Es werden die Standardoptionen ausgeführt. Die Ausführung selbst wird durch +% den Befehl \cs{TUD@noworlater} innerhalb von \cs{TUD@key} auf das Ende der +% \KOMAScript-Klasse verzögert. +% \todo[v3.12]{Datum anpassen} +% \begin{macrocode} +\TUDExecuteOptions{\TUDDefaultOptions} +\TUDProcessOptions +\LoadClass{\scrcls@name}[2012/07/29] +% \end{macrocode} +% Nach der Abarbeitung aller Optionen innerhalb der Präambel müssen die +% folgenden Befehle einmalig ausgeführt werden. Damit dies sicher erst danach +% und am Ende der Präambel erfolgt, wird die Ausführung mit \cs{AtEndPreamble} +% verzögert. +% \begin{macrocode} +\AtEndPreamble{% + \tud@layout@process% + \recalctypearea% +} +% \end{macrocode} +% +% \subsection{Externe Pakete} +% +% \changes{v2.01}{2014/04/24}{% +% Versionsanforderungen bei benötigten Paketen ergänzt% +% } +% +% Für die Verwendung der hier erstellten \KOMAScript-Wrapper-Klassen werden +% einige wenige Pakete eingebunden. Dabei wurde versucht, die Anzahl der +% Pakete möglichst gering zu halten und nur die wirklich notwendigen zu +% verwenden. +% +% Für das Setzen der Überschriften in Majuskeln\footnote{Großbuchstaben} mit +% \cs{MakeTextUppercase}, was den internen \LaTeX-Befehl \cs{MakeUppercase} +% verbessert, wird das Paket \pkg{textcase} genutzt. +% \begin{macrocode} +\RequirePackage{textcase}[2004/10/07] +% \end{macrocode} +% Für das Setzen von Feldern werden bei einem übergebenen Argument führende und +% angehängte Leerzeichen entfernt. +% \begin{macrocode} +\RequirePackage{trimspaces}[2009/09/17] +% \end{macrocode} +% Das Paket \pkg{geometry} erlaubt eine genaue Vorgabe des Satzspiegels und +% der Seitenränder, wie es vom \CD der TU~Dresden verlangt wird. +% \begin{macrocode} +\RequirePackage{geometry}[2010/09/12] +% \end{macrocode} +% Das Paket \pkg{mweights} wird verwendet, um für die einzelnen Schriftfamilien +% unterschiedliche Sandardstärken zu nutzen. Insbesondere betrifft dies die +% \texttt{typewriter}"=Familie. +% \begin{macrocode} +\RequirePackage{mweights}[2013/07/21] +% \end{macrocode} +% Die \env{abstract}-Umgebung wird im Vergleich zu den \KOMAScript-Klassen +% stark erweitert. Dafür wird das Paket \pkg{environ} für eine erweiterte +% Umgebungsdefinition benötigt. +% \begin{macrocode} +\RequirePackage{environ}[2013/04/01] +% \end{macrocode} +% Es folgen die Pakete, welche bei Bedarf am Ende der Präambel geladen werden. +% \begin{macrocode} +\AtEndPreamble{% +% \end{macrocode} +% Mit \pkg{graphicx} werden die Logos der TU~Dresden sowie von Dresden Concept +% mit dem Befehl \cs{includegraphics} u.\,a. auf der Titelseite eingebunden. +% \todo[v3.12]{Laden von \pkg{graphics} mit Warnung verhindern.} +% \begin{macrocode} + \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}[1999/02/16]}% +% \end{macrocode} +% Mit dem Paket \pkg{tudscrcolor} werden die Befehle für die Auswahl der Farben +% des \CDs definiert, welches wiederum \pkg{xcolor} lädt. +% \begin{macrocode} + \@ifpackageloaded{tudscrcolor}{}{\RequirePackage{tudscrcolor}[\TUDVersion]}% +% \end{macrocode} +% Wenn die Farben für Titel- und Kapitelseiten umgeschaltet werden, geht die +% Information über die aktuelle Text- und Seitenfarbe verloren. Um dies zu +% verhindern, kann das Paket \pkg{pagecolor} geladen werden. Das Laden sollte +% aber solange verzögert werden, bis das Paket \pkg{tudscrcolor} geladen ist. +% \todo[v3.12]{Verzögern des Ladens von \pkg{pagecolor} aktivieren.} +% \begin{macrocode} +% \if@tud@pagecolor% +% \UnPreventPackageFromLoading*{pagecolor}% +% \RequirePackage{pagecolor}[2012/02/23]% +% \fi% +} +% \end{macrocode} +% +% \iffalse +%</class&option> +% \fi +% +% \Finale +% +\endinput
\ No newline at end of file |