From ec151de0f3ba705d191c5e0a80c6b1c2e8342da1 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 21 Aug 2011 23:19:38 +0000
Subject: new latex package musuos (21aug11)

git-svn-id: svn://tug.org/texlive/trunk@23629 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/latex/musuos/musuos.dtx | 841 +++++++++++++++++++++++
 1 file changed, 841 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/musuos/musuos.dtx

(limited to 'Master/texmf-dist/source/latex/musuos/musuos.dtx')

diff --git a/Master/texmf-dist/source/latex/musuos/musuos.dtx b/Master/texmf-dist/source/latex/musuos/musuos.dtx
new file mode 100644
index 00000000000..9cef98fafad
--- /dev/null
+++ b/Master/texmf-dist/source/latex/musuos/musuos.dtx
@@ -0,0 +1,841 @@
+% \iffalse meta-comment
+% 
+% Copyright (C) 2011 by Tobias Weh
+%                       www.tobias-weh.de
+% 
+% This file may be distributed and/or modified under the 
+% conditions of the LaTeX Project Public License, either 
+% version 1.2 of this license or (at your option) any later 
+% version. The latest version of this license is in: 
+%
+%	http://www.latex-project.org/lppl.txt 
+% 
+% and version 1.2 or later is part of all distributions of 
+% LaTeX version 1999/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{musuos.dtx}[2011/08/15 v1.0 Uni Osnabrueck]
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[2009/01/01]
+%<class>\ProvidesClass{musuos}
+%<class>  [2011/08/15 v1.0 a class for typesetting
+%<class>   papers. Uni Osnabrueck, music dept.]
+%
+%<*driver>
+\documentclass{ltxdoc}
+
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage[ngerman]{babel}
+\usepackage{xspace}
+\usepackage{lmodern} 
+\usepackage[hang]{footmisc}
+\usepackage{dblfnote}
+  \setlength{\footnotemargin}{1em}
+\usepackage{scrbase}
+\usepackage[hyphens]{url}
+\usepackage{hyperref}
+
+\newcommand{\musuos}{\texttt{musuos.cls}\xspace}
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\Opt}[1]{\texttt{#1}\marginpar{\raggedleft\texttt{#1} \small(Opt.)}}
+\MakeShortVerb{\|}
+\newcommand{\DM}[1]{\DescribeMacro{#1}}
+\setcounter{tocdepth}{1}
+
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\def\generalname{G}
+\IndexPrologue{
+  \section{Codeindex}
+  Kursive Zahlen beziehen sich auf die Seite,
+  auf der der Eintrag beschrieben wird, unterstrichene
+  Nummern beziehen sich auf die Codezeile mit der Definition
+  und nicht ausgezeichnete Ziffern beziehen sich auf Codzeilen,
+  in denen der Eintrag verwendet wird.
+}
+\GlossaryPrologue{
+  \section{Versionsgeschichte}
+  Mit einem G gekennzeichnete Einträge beziehen sich jeweils
+  auf die ganze Klasse.
+}
+
+\begin{document}
+  \DocInput{musuos.dtx}
+\end{document}
+%</driver>
+% \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         \~}
+%
+% \changes{v1.0}{2011/08/15}{Erste Version}
+% 
+% \GetFileInfo{musuos.dtx}
+% 
+%
+% \DoNotIndex{\?,\.,\@M,\@@input,\@Alph,\@alph,\@addtoreset,\@arabic}
+% \DoNotIndex{\@badmath,\@centercr,\@cite}
+% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
+% \DoNotIndex{\@input,\@ixpt,\@m,\@minus,\@mkboth}
+% \DoNotIndex{\@ne,\@nil,\@nomath,\@plus,\roman,\@set@topoint}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
+% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
+% \DoNotIndex{\@xxpt,\@xxvpt,\\,\,\addpenalty,\addtolength,\addvspace}
+% \DoNotIndex{\advance,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+% \DoNotIndex{\bullet}
+% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
+% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
+% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
+% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
+% \DoNotIndex{\fbox}
+% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
+% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
+% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
+% \DoNotIndex{\input}
+% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
+% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
+% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+% \DoNotIndex{\NeedsTeXFormat,\newdimen}
+% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
+% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
+% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
+% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+% \DoNotIndex{\refstepcounter,\relax,\renewcommand}
+% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily}
+% \DoNotIndex{\secdef,\selectfont,\setbox,\setcounter,\setlength}
+% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
+% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
+% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
+% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
+% \DoNotIndex{\wd,\xiipt,\year,\z@}
+% \DoNotIndex{\next}
+% \DoNotIndex{\@afterheading,\@afterindentfalse,\@ifpackageloaded,\ ,
+%   \appto,\AtBeginDocument,\AtEndPreamble,\baselineskip,\BODY,
+%   \centering,\contentspage,\CurrentOption,\dots,\endquote,\fill,\filright
+%   \footnotesize,\Huge,\ifstrempty,\ifstrequal,\itshape,\Large,\large,\LARGE
+%   \makebox,\MessageBreak,\NewEnviron,\newif,\normalfont,\normalsize,
+%   \pbox,\preto,\quote,\RequirePackage,\rule,\setstretch,
+%   \SetupKeyvalOptions,\sffamily,\singlespacing,\textbf,\textit,\textwidth,
+%   \thecontentslabel,\thecontentspage,\titlecontents,\xspace}
+%
+% \title{\musuos}
+% \author{Tobias Weh\\
+%   \normalsize\href{mailto:mail@tobias-weh.de}{\texttt{mail@tobias-weh.de}}\\
+%   \normalsize\url{www.tobias-weh.de}}
+% \date{\filedate{} --- \fileversion}
+% 
+% \maketitle
+% 
+% \begin{abstract}
+%   Die Klasse \musuos ist als Vorlage für Hausarbeiten am Institut für Musik
+%   und Musikwissenschaften der Universität Osnabrück gedacht. Sie richtet sich
+%   nach den Vorgaben von apl. Prof. Dr. phil. Stefan Hahnheide. Neben der Klasse
+%   ist auch ein \pkg{biblatex}-Stil \pkg{musuos} verfügbar.
+%   
+%   Da \musuos auf der Klasse \pkg{scrartcl} aufbaut, wird dringend empfohlen
+%   aus die relevanten Abschnitte der
+%   \href{ftp://ftp.dante.de/pub/tex/macros/latex/contrib/koma-script/scrguide.pdf}
+%   {\KOMAScript{}-Dokumentation} zu lesen.
+% \end{abstract}
+% 
+% \tableofcontents
+%
+% \section{Einleitung}
+% \subsection{Installation}
+% Um die Klassendatei (|.cls|) zu erzeugen navigiert man im Terminal in das
+% Verzeichnis, in dem die Datei |musuos.ist| liegt und ruft dann den Befehl
+% 
+% \smallskip
+% |latex musuos.ins|
+% 
+% \smallskip\noindent%
+% auf. Die so erzeugte Datei muss nun an einen Ort verschoben werden, an dem
+% \LaTeX{} sie finden kann (bspw. \texttt{\$TEXMFHOME/tex/latex/musuos/}).
+% 
+% Um die Dokumentation zu erzeugen ruft man
+% 
+% \smallskip
+% |pdflatex musuos.dtx|
+%
+% |pdflatex musuos.dtx|
+% 
+% |makeindex -s gglo.ist -o musuos.gls musuos.glo|
+%
+% |makeindex -s gind.ist  -o musuos.ind musuos.idx|
+% 
+% |pdflatex musuos.dtx|
+%
+% |pdflatex musuos.dtx|
+% 
+% \smallskip\noindent%
+% auf. Die mitgelieferte Datei |gind.ist| ist eine Anpassung für
+% deutschsprachige Dokumentationen.
+% 
+% \subsection{Verwendung}
+% Die Klasse wird ganz normal mit |\documentclass{musuos}| aufgerufen und ist
+% derzeit nur zur Verwendung mit \LaTeXe{} gedacht. Da die Klasse auf der
+% \KOMAScript{}-Klasse \pkg{scrartcl} beruht, stehen auch alle Möglichkeiten
+% aus \KOMAScript{} zu Verfügung. Daher werden in dieser Dokumentation im
+% Wesentlichen nur die zusätzlichen Funktionen von \musuos erläutert.
+% 
+% \subsubsection*{Klassenoptionen}
+% Es werden alle Klassenoptionen unterstützt, die auch den \KOMAScript{}-Klassen
+% bekannt sind. Die Klasse stellt aber noch weitere Optionen zur Verfügung:
+% \begin{itemize}
+% \item \Opt{blockquote} für Einstellung der Anführungszeichen bei abgesetzten
+%     Zitaten, siehe Abschnitt~\ref{zit}.
+% \item \Opt{manyfnotes} bei Vorkommen dreistelliger Fußnotenziffern,
+%     siehe Abschnitt~\ref{fnote}.
+% \item \Opt{poorlayout} zum Umschalten des Layouts, siehe Abschnitt~\ref{layout}.
+% \item \Opt{qmarks} zum Umschalten der Anführungszeichen, siehe Abschnitt~\ref{zit}.
+% \end{itemize} 
+%  
+% \subsubsection*{Beispiel}
+% Ein (etwas mehr als) minimales Dokument zur Verwendung der Klasse.
+% 
+% \smallskip
+% |\documentclass[ngerman]{musuos}|
+% 
+% \medskip
+% |\usepackage[latin1]{inputenc}|
+% 
+% |\usepackage[T1]{fontenc}|
+% 
+% |\usepackage{babel}|
+% 
+% \meta{ggf. weitere Pakete, Makrodefinitionen usw.}
+% 
+% \medskip
+% |\begin{document}|
+% 
+% \rule{\parindent}{0pt}\meta{Inhalt}
+% 
+% |\end{document}|
+% 
+% \section{Layout}\label{layout}%
+% Die Klasse kennt zwei verschiedene Layouts. Das Voreingestellte bietet breite
+% Ränder für Korrekturen, die außerdem für eine angenehme Zeilenlänge sorgen und
+% so ein auseinanderreißen durch eineinhalbzeiligen Satz unnötig machen.
+% \begin{itemize}
+% \item Rand links 3\,cm, rechts 5\,cm (Platz für Korrekturen), oben 3,25\,cm
+%     und unten 5,5\,cm.
+% \item Schriftart ist die freie Linux Libertine%
+%     \footnote{Siehe \url{http://www.linuxlibertine.org/} 
+%(16.8.11)}
+%     in 12\,pt für den Fließtext und die dazugehörige endstrichlose (|\textsf|,
+%     |\sffamily|) Biolinum für Überschriften u.\,ä.
+% \item Einfacher Zeilenabstand.
+% \end{itemize}
+% 
+% Mit der Option \Opt{poorlayout} kann auf das deutlich schlechtere, unitypische
+% Layout umgeschaltet werden
+% \begin{itemize}
+% \item Rand links 2\,cm und rechts 3\,cm, oben und unten je 3\,cm.
+% \item Schriftart ist die Times New Roman
+%     in 12\,pt für den Fließtext und die endstrichlose (|\textsf|, |\sffamily|)
+%     Helvetica für Überschriften u.\,ä.
+% \item Eineinhalbfacher Zeilenabstand, um die überlangen Zeilen zu kompensieren, die
+%     aufgrund der schmalen Ränder und der sehr schmal laufenden (weil eigentlich für
+%     schmale Zeitungsspalten gedachte) Times New Roman entstehen.
+% \end{itemize}
+% 
+% Blocksatz und Silbentrennung sind in \LaTeX{} bei Verwendung von \pkg{babel}
+% grundsätzlich aktiviert. Absatzanfänge werden durch einen Einzug markiert.
+% 
+% \section{Titelseite}
+% Mit |\maketitle| wird wie gewohnt die Titelseite ausgegeben, nachdem verschiedene
+% Angaben (|\author|, |\title|, etc.) dafür gemacht wurden. Die möglichen Angaben
+% werden durch \musuos wie folgt ergänzt:
+% %
+% \begin{itemize}
+% \item \DM{\city}\DM{\street}\DM{\email}\DM{\phone}|\street|\marg{Straße
+%     und Nummer} und |\city|\marg{PLZ und Ort}, um die eigene Adresse anzugeben
+%     sowie |\phone|\marg{Telefonnummer} und |\email|\marg{E-Mail} für weitere Kontaktdaten.
+% \item \DM{\lecturer}\DM{\seminar}\DM{\term}\DM{\uni} |\uni|\marg{Universität},
+%     |\term|\marg{Semester} |\seminar|\marg{Veranstaltungstitel} und
+%     |\lecturer|\marg{Dozent} für Angaben zur Veranstaltung, in der die
+%     Hausarbeit geschrieben wird.
+% \item Für Angaben zum Studiengang die Makros \DM{\study}\DM{\sterm}
+%     |\study|\marg{Studiengang} und |\sterm|\marg{Fachsemester}
+% \item \DM{\examiner}|\examiner|\marg{Bezeichnung}\marg{Prüfer} für
+%  die Angabe eines Prüfkomitees (Mehrere Prüfer einfach durch |\\|
+%  trennen).
+% \end{itemize}
+% %
+% Zusammen mit den von \KOMAScript{} bereitgestellten Variablen Autor 
+%(|\author|),
+% Titel (|\title|) ggf. mit Untertitel (|\subtitle|), Datum (|\date|) sowie eventuell
+% Art der Arbeit (Hausarbeit, Dossier, \dots; |\subject|) sind damit alle vorgesehenen
+% Angaben abgedeckt. Auf die Verwendung der weiteren Varaiblen aus \KOMAScript{} sollte
+% man verzichten, da diese eventuell mit anderen Kollidieren!
+% 
+% Darüber hinaus kann mit dem Befehl |\makeshorttitle| ein Seitenkopf
+% gesetzt werden, der nur Titel, Untertitel, Autor und Datum enthält.
+% 
+% \section{Inhaltsverzeichnis und Gliederung}
+% Das Inhaltsverzeichnis wird mit
+% \DM{\tableofcontents}|\tableofcontents| ausgegeben. Das
+% Inhaltsverzeichnis nimmt per Voreinstellung nur Einträge bis zur
+% dritten Ebene (|\subsubsection|) auf, das sollte bei einer sinnvoll
+% gegliederten Arbeit aber vollkommen ausreichend sein \dots
+% 
+% Zur Gliederung der Arbeit stehen die Befehle von \DM{\section}|\section| bis |\subparagraph| sowie
+% |\minisec| zur Verfügung. Die Gliederungspunkte werden automatisch nummeriert und
+% formatiert.
+% 
+% Ein Anhang kann bei Bedarf mit \DM{\appendix}|\appendix| eingeleitet werden.
+% Die höchste Gliederungsebene wird dann alphabetisch nummeriert.
+% 
+% \section{Fußnoten}\label{fnote}%
+% Fußnoten werden mit \DM{\footnote}|\footnote|\marg{Fußnotentext} 
+%gesetzt. Die Standardformatierungen funktioniert gut für Fußnoten bis
+% 99. Bei Fußnoten bis 999 empfiehlt sich die Verwendung der Option
+% \Opt{manyfnotes}
+% 
+% \section{Aufzählungen}
+% Es stehen drei Aufzählungsumgebungen zur Verfügung, in denen einzelne Einträge
+% jeweils mit |\item| eingeleitet werden. Die Umgebungen \DescribeEnv{enumerate}
+% |enumerate| für nummerierte und \DescribeEnv{itemize}|itemize| für nummerierte
+% Listen sowie \DescribeEnv{description} für erklärende oder beschreibende Listen,
+% dabei wird das zu erklärende Wort als optionales Argument von |\item|\oarg{Wort}
+% angegeben.
+% 
+% \section{Abbildungen und Tabellen}
+% Abbildungen und Tabellen sollten mit den Gleitumgebungen \DescribeEnv{figure}|figure|
+% und \DescribeEnv{table}|table| gesetzt werden. Eine Beschriftung kann man mit
+% \DM{\caption}|\caption|\marg{Beschreibung} hinzufügen. Für alles weitere sei auf die
+% gängige Einsteigerliteratur verwiesen.
+% 
+% \section{Zitate}\label{zit}%
+% Für Zitate im Fließtext kann der Befehl \DM{\enquote}|\enquote|\marg{Text} verwendet werden,
+% der sein Argument automatisch mit Anführungszeichen umschließt. Für längere, abgesetzte
+% Zitate kann die Umgebung \DescribeEnv{quote}|quote| verwendet werden,
+% 
+% \smallskip
+% |\begin{quote}|\oarg{Quelle}
+% 
+% \rule{\parindent}{0pt}\meta{Text}
+% 
+% |\end{quote}|
+% 
+% \smallskip\noindent%
+% wobei der Inhalt von \meta{Quelle} ohne Leerzeichen%
+% \footnote{Wer ein Leerzeichen wünscht kann dieses einfach zu beginn 
+%des Arguments mit eingeben \texttt{[\textvisiblespace Quelle]}}
+% nach dem schließenden Anführungszeichen ausgeben wird.
+% Mit der Option \Opt{blockqoute}|=marks|/|nomarks| kann festgelegt werden, ob die abgesetzten
+% Zitate mit oder ohne Anführungszeichen gesetzt werden. Beide Zitatbefehle können verschachtelt
+% werden und wählen dann automatisch einfache Anführungszeichen für die innere Zitatebene.
+% 
+% Um die Anführungszeichen zu setzten, wird das Paket \pkg{csquotes} verwendet.
+% Die Art der Anführungszeichen kann mit der Klassenoption \Opt{qmarks}|=|\meta{Sprache}
+% angegeben, dabei kann \meta{Sprache} die Werte |german|, |gfrench|,
+% |french| und |english| annehmen; Voreinstellung ist |german|. Den vollen Umfang von
+% \pkg{csquotes} kann man einfach nutzen, indem man das Paket mit entsprechenden Optionen
+% manuell lädt.
+% 
+% Auslassungszeichen und \emph{wirklich-so-Stellen} können mit den Befehlen \DM{\elp}|\elp|
+% (wird zu [\kern1.5pt\dots]) und \DM{\sic}|\sic| (wird zu [sic]) gesetzt werden.
+% 
+% Zur Erstellung eines \textbf{Literaturverzeichnis} und für Quellenangaben im Text wird die Verwendung
+% von Bib\TeX{} zusammen mit dem Paket \pkg{biblatex} und dem passenden Stil \pkg{musuos}
+% empfohlen.
+% 
+% \section{Anmerkungen}
+% \begin{description}
+% \item [Abkürzungen] sollten immer mit einem schmalen Leerzeichen |\,| zwischen den
+%     Teilen gesetzt werden, z.\,B. |z.\,B.| statt |z.B.| (z.B.) oder |z. B.| (z. B.)
+%     bei der letzten Fassung kann es sogar zu einem Umbruch zwischen z. und B. kommen.
+%     Steht die Abkürzung am Ende eines Satzes entfällt der Schlusspunkt und der letzte
+%     Punkt der Abkürzung erhält eine Doppelfunktion. Abkürzungen am Satzanfang sollte
+%     man gänzlich vermeiden.
+% \item [Auslassungspunkte] werden mit dem Befehl |\dots| gesetzt. Ersetzen sie ganze
+%     Satzteile, müssen sie mit Leerzeichen (\verb*|Wie man etwa \dots|) gesetzt werden.
+%     Am Satzende entfällt ein zusätzlicher Schlusspunkt, Frage- und Ausrufezeichen nicht.
+%     Nur wenn die Punkte die Auslassung eines Wortteils kennzeichnen (|Sch\dots|) werden
+%     sie ohne Leerzeichen geschrieben.
+% \item [Gedankenstriche, Bis-Striche, Bindestriche] muss man unterscheiden! Zum
+%     Verbinden einzelner Wörter setzt man einen Bindestrich (|Master-Arbeit|),
+%     in vielen Fällen kann aber auch eine Zusammenschreibung dem Verbinden mit Strich
+%     vorgezogen werden.%
+%     \footnote{\raggedright Siehe dazu
+%       \url{http://www.belleslettres.eu/artikel/schreibung-durchgekoppelte-wortzusammensetzungen.php}
+%       (16.8.11).}
+%     Den längeren Strich (|--|) setzt man mit Leerzeichen als Gedanken strich
+%     (\verb*|Text -- Einschub -- mehr Text|) und als Bis-Strich ohne Leerzeichen
+%     (|1967--2003|).
+% \item [Geschützte Leerzeichen] werden mit |~| erzeugt und sollten z.\,B. bei Seitenzahlen
+%     verwendet werden: |siehe S.~3| oder |vergleiche Abbildung~3.5|%
+%     \footnote{Sinvollerweise sollte man die Zahlen nicht manuell schreiben sondern
+%     \LaTeX s Verweismechanismus (in Kombination mit \pkg{varioref}) verwenden.}
+% \item [Formatierung] sollte einheitlich sein. Um das zu erleichtern ist es sinnvoll,
+%     sich eigene Befehle zu erstellen. So könnte man sich zum Beispiel einen Befehl
+%     definieren um Werktitel zu setzten:
+%     
+%     \smallskip
+%     \rule{1em}{0pt}|\newcommand{\werk}[1]{\textit{#1}}| (in der Präambel)
+%     
+%     \smallskip\noindent%
+%     Verwendet man im Text jetzt immer |\werk|\marg{Titel} werden alle Titel kursiv
+%     gesetzt können aber später einheitlich umformatiert werden indem man die
+%     Definition von |\werk| ändert.
+% \item [Unterstreichungen unterlassen!] Hervorhebungen können mit 
+%|\emph|\marg{Text}
+%     gesetzt werden. Der Befehl kann sogar verschachtelt werden.
+% \end{description}
+% 
+% \StopEventually{\PrintChanges\PrintIndex}
+% 
+% \section{Implementation}
+% 
+% \subsection{Basisklasse laden und Optionen definieren}
+% Als erstes werden ein paar Basispakete geladen und mit
+% |\SetupKeyvalOptions| die Grundlagen für Klassenoptionen
+% mit werten geschaffen.
+%    \begin{macrocode}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{
+  family=MU,
+  prefix=MU@
+}
+\RequirePackage{environ}
+\RequirePackage{etoolbox}
+%    \end{macrocode}
+%  Dann werden die Optionen definiert. Zunächst zwei Optionen,
+%  die einen Textstring verarbeiten können, dieser wird dann
+%  in |\MU@blockquote| bzw. |\MU@qmarks| gespeichert.
+%    \begin{macrocode}
+\DeclareStringOption[withqmarks]{blockquote}[withqmarks]
+\DeclareStringOption[german]{qmarks}[german]
+%    \end{macrocode}
+% Dann noch einen if-Schalter und eine einfache Option für das Layout
+%    \begin{macrocode}
+\newif\if@poorlayout
+\DeclareOption{poorlayout}{\@poorlayouttrue}
+%    \end{macrocode}
+% sowie für die Option bei vielen Fußnoten
+%    \begin{macrocode}
+\newif\if@manyfnotes
+\DeclareOption{manyfnotes}{\@manyfnotestrue}
+%    \end{macrocode}
+% Als letztes wird noch eine Dummyoption angelegt, die alle dieser
+% Klasse nicht bekannten Optionen an die Basisklasse \pkg{scrartcl}
+% weiterleitet.
+%    \begin{macrocode}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+%    \end{macrocode}
+% Außerdem legen wir noch zwei Voreinstellungen für \pkg{scrartcl}
+% fest
+%    \begin{macrocode}
+\PassOptionsToClass{fontsize=12pt,titlepage=true}{scrartcl}
+%    \end{macrocode}
+% und können dann die Optionen verarbeiten.
+%    \begin{macrocode}
+\ProcessKeyvalOptions*\relax
+\ProcessOptions\relax
+%    \end{macrocode}
+%
+% Es folgt das Laden der Basisklasse.
+%    \begin{macrocode}
+\LoadClass{scrartcl}
+%    \end{macrocode}
+%
+% Als letztes wird noch ein Schalter (|\if@bqqmakrs|) für die Wahl
+% ob Blockzitate mit oder ohne Anführungszeichen gesetzt werden definiert
+% und eine Probe auf falsche Werte eingeführt.
+%    \begin{macrocode}
+\newif\if@bqqmarks
+\expandafter\ifstrequal\expandafter{\MU@blockquote}{withqmarks}{
+  \@bqqmarkstrue
+}{
+  \expandafter\ifstrequal\expandafter{\MU@blockquote}{withoutqmarks}{
+    \@bqqmarksfalse
+  }{
+    \ClassError{musuos}{Unkown value for option 'blockquote'}
+      {This option needs either 'qwithqmarks' or 'withoutmarks'}
+  }
+}
+%    \end{macrocode}
+%
+% \subsection{Layout}
+% Nachdem weiter oben bereits der Schalter für |poorlayout| definiert
+% wurde, wird das Layout jetzt ausgewählt. Dazu laden wir das Paket
+% \pkg{geometry} und legen abhängig vom Schalter verschiedene Seitenränder
+% fest. 
+%    \begin{macrocode}
+\RequirePackage{geometry}
+\if@poorlayout
+  \geometry{left=2cm, right=3cm, top=3cm, bottom=3cm}
+%    \end{macrocode}
+% Außerdem werden die Schriftarten Times New Roman und Helvetica geladen
+%    \begin{macrocode}
+  \usepackage{txfonts}
+  \usepackage[scaled=0.9]{helvet}
+%    \end{macrocode}
+% sowie das Paket \pkg{setspace} um eineinhalbzeiligen Satz einzustellen.
+%    \begin{macrocode}
+  \usepackage{setspace}
+  	\setstretch{1.45}
+%    \end{macrocode}
+% Der Faktor 1,45 entspricht dem was Word unter 1,5 versteht besser als 1,5.
+% Es wird eine Warnung ausgegeben, ob man wirklich das schlechte Layout will.
+%    \begin{macrocode}
+  \ClassWarningNoLine{musuos}{Are you shure that you would
+    like to use the poor layout?}
+%    \end{macrocode}
+%
+% Für das schönere Layout stellen werde größere Ränder eingestellt
+%    \begin{macrocode}
+\else
+  \geometry{left=3cm, right=5cm, top=3.25cm, bottom=5.5cm}
+%    \end{macrocode}
+% und die Linux Libertine sowie die Biolinum geladen.
+%    \begin{macrocode}
+  \usepackage{libertine}
+\fi
+%    \end{macrocode}
+%
+% Abschließend werden die Parameter für den Satz noch etwas großzügiger
+% eingestellt
+%    \begin{macrocode}
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+\widowpenalty=10000
+\clubpenalty=5000
+\vfuzz
+\hfuzz
+\raggedbottom 
+%    \end{macrocode}
+%
+% \subsection{Titelseite}
+% \begin{macro}{\city}
+% \begin{macro}{\street}
+% \begin{macro}{\email}
+% \begin{macro}{\phone}
+% \begin{macro}{\lecturer}
+% \begin{macro}{\seminar}
+% \begin{macro}{\term}
+% \begin{macro}{\uni}
+% \begin{macro}{\study}
+% \begin{macro}{\sterm}
+% \begin{macro}{\examiner}
+% Als nächstes werden alle nötigen Befehle für die Titelseite
+% definiert. Dazu werden zuerst die Speicherorte für alle Angaben 
+% geschaffen
+%    \begin{macrocode}
+\newcommand{\@city}{}
+\newcommand{\@street}{}
+\newcommand{\@email}{}
+\newcommand{\@phone}{}
+\newcommand{\@lecturer}{}
+\newcommand{\@seminar}{}
+\newcommand{\@term}{}
+\newcommand{\@uni}{}
+\newcommand{\@study}{}
+\newcommand{\@sterm}{}
+\newcommand{\@examiner}{}
+\newcommand{\@examinerlabel}{}
+%    \end{macrocode}
+% um dann die Befehle zu erstellen, mit denen die Varaiblen
+% gesetzt werden.
+%    \begin{macrocode}
+\newcommand*{\city}[1]{\renewcommand{\@city}{#1}}
+\newcommand*{\street}[1]{\renewcommand{\@street}{#1}}
+\newcommand*{\email}[1]{\renewcommand{\@email}{#1}}
+\newcommand*{\phone}[1]{\renewcommand{\@phone}{#1}}
+\newcommand*{\lecturer}[1]{\renewcommand{\@lecturer}{#1}}
+\newcommand*{\seminar}[1]{\renewcommand{\@seminar}{#1}}
+\newcommand*{\term}[1]{\renewcommand{\@term}{#1}}
+\newcommand*{\uni}[1]{\renewcommand{\@uni}{#1}}
+\newcommand*{\study}[1]{\renewcommand{\@study}{#1}}
+\newcommand*{\sterm}[1]{\renewcommand{\@sterm}{#1}}
+%    \end{macrocode}
+% Die Variable für die Prüfer fordert eine spezielle Behandlung,
+% weil der Abstand zwischen Bezeichnung und Name nur ausgegeben
+% werden darf, wenn der Bezeichner nicht leer ist. Andernfalls
+% wären die Namen nicht korrekt zentriert.
+%    \begin{macrocode}
+\newcommand*{\examiner}[2]{%
+  \ifx{#1}\@empty\else
+    \renewcommand{\@examinerlabel}{#1\hspace{1em}}
+  \fi
+  \renewcommand{\@examiner}{#2}%
+}
+%    \end{macrocode}
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% \end{macro}\end{macro}\end{macro}\end{macro}\end{macro}
+% Anschließend kann der Befehl zum drucken der Titelseite definiert
+% werden. Dabei muss unter Verwendung des Schalters |\if@poorlayout| 
+% Rücksicht auf kleinere Unterschiede der Layouts genommen werden.
+% Auf der Titelseite werden nacheinander alle Variablen ausgeben.
+% Außerdem wird auf ein symmetrisches Seitenlayout umgeschaltet
+%    \begin{macrocode}
+\RequirePackage{pbox}
+%    \end{macrocode}
+% Damit das Trennzeichen zwischen Dozent und Semester auch
+% wirklich nur dann ausgegeben, wenn beide einen Wert haben, muss
+% ein zusätzlicher Test eingefügt werden, der später mit |\if@letesep|
+% ausgewertet werden kann.
+%    \begin{macrocode}
+\newif\if@letesep\@leteseptrue
+\AtBeginDocument{
+  \expandafter\ifstrempty\expandafter{\@lecturer}{\@letesepfalse}{}
+  \expandafter\ifstrempty\expandafter{\@term}{\@letesepfalse}{}
+}
+%    \end{macrocode}
+% \begin{macro}{\maketitle}
+% Jetzt kann der |\maketitle|-Befhel definiert werden.
+%    \begin{macrocode}
+\renewcommand{\maketitle}{%
+  \newgeometry{left=4cm,right=4cm,top=4cm,bottom=4cm}%
+  \begin{titlepage}
+    \if@poorlayout\singlespacing\fi
+    \centering
+    \textbf{\@uni}\par
+    \@seminar\par
+    \@lecturer\ 
+    \if@letesep -- \fi
+    \@term\par
+    \vspace{4.5cm}
+    \textit{\@subject}\par
+    \if@poorlayout\vspace{0.35cm}\else\vspace{0.5cm}\fi
+    \sffamily\Huge\textbf{\@title}\par
+    \vspace{0.5cm}
+    \large\@subtitle\par
+    \vspace{3cm}
+    \normalfont\normalsize
+    \@examinerlabel\hspace{0.75em}%
+    \pbox[t]{\textwidth}{\@examiner}\par
+    \vspace{\fill}
+    \raggedright
+    \textbf{\@author}\par
+    \@study\hfill\@street\par
+    \@sterm\hfill\@city\par
+    \@email\hfill\@phone\par
+    \vspace{1\baselineskip}
+    \@date
+  \end{titlepage}
+%    \end{macrocode}
+% Am Ende der Titelseite wird das vorgegebene Layout wieder hergestellt
+% und der Einzug des ersten Absatzes unterdrückt.
+%    \begin{macrocode}
+  \restoregeometry
+  \@afterindentfalse
+  \@afterheading%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\makeshorttitle}
+% Zusätzlich wird ein Befehl für einen kürzeren Titelkopf bereitgestellt
+%    \begin{macrocode}
+\newcommand{\makeshorttitle}{
+  \if@poorlayout\singlespacing\fi
+  \vspace*{1cm}
+  {\centering
+    \@author\par
+    \vspace{0.35cm}
+    \LARGE\sffamily\bfseries\@title\par
+    \vspace{0.2cm}
+    \normalsize\@subtitle\par
+    \vspace{0.6cm}
+    \normalfont
+    \@date\par
+  }
+  \vspace{1cm}
+  \if@poorlayout\setstretch{1.45}\fi
+  \@afterindentfalse
+  \@afterheading%
+}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{titlepage}
+% Damit die Klasse auf die |titelpage|-Option reagieren kann, wird bei
+% ausgeschalteter Titelseite der befehl |\maketitle| auf
+% |\makeshorttitle| umgelenkt.
+%    \begin{macrocode}
+\if@titlepage\else
+  \let\maketitle\makeshorttitle
+\fi
+%    \end{macrocode}
+% \end{macro}
+% 
+% \subsection{Inhaltsverzeichnis}
+% Da die Befehle zur Giederung und für das Inhaltsverzeichnis bereits
+% von der Basisklasse bereitgestellt werden, wird hier nur das Layout
+% des Inhaltsverzeichnis angepasst. Dazu wird das Paket \pkg{titletoc}
+% verwendet.
+% \begin{macro}{\tableofcontents}
+%    \begin{macrocode}
+\RequirePackage{titletoc}
+\titlecontents{section}
+  [0mm]
+  {\addvspace{5mm}}
+  {\sffamily\bfseries\large
+  \makebox[7mm][l]{\thecontentslabel}}
+  {\sffamily\bfseries}
+  {\hfill\sffamily\bfseries\large\contentspage}
+\titlecontents{subsection}
+  [7mm]
+  {\addvspace{1mm}}
+  {\makebox[7mm][l]{\thecontentslabel}}
+  {}
+  {,~\thecontentspage}
+\titlecontents*{subsubsection}
+  [14mm]
+  {\filright}
+  {\itshape}
+  {\itshape}
+  {\itshape,~\thecontentspage}
+  [~$\cdot$~]
+%    \end{macrocode}
+% Außerdem wird die Tiefe des Inhaltsverzeichnis auf drei Ebenen
+% beschränkt
+%    \begin{macrocode}
+\setcounter{tocdepth}{3}
+%    \end{macrocode}
+% und für das schlechte Layout muss das Inhaltsverzeichnis noch auf
+% einfachen Zeilenabstand zurückgeschaltet werden.
+%    \begin{macrocode}
+\if@poorlayout
+  \preto\tableofcontents{\singlespacing}
+  \appto\tableofcontents{\setstretch{1.45}}
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \subsection{Fußnoten}
+% \begin{macro}{manyfnotes}
+% Die Fußnoten werden nicht hochgestellt gesetzt, sondern als normal
+% hohe Ziffern. Außerdem muss die Option |manyfnotes| hier ausgewertet
+% werden.
+%    \begin{macrocode}
+\if@manyfnotes
+  \deffootnote[1.75em]{1.75em}{1em}{
+    \makebox[1.75em][l]{\thefootnotemark}
+  }
+\else
+  \deffootnote[1.5em]{1.5em}{1em}{\makebox[1.5em][l]{\thefootnotemark}}
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \subsection{Aufzählungen}
+% \begin{environment}{itemize}
+% \begin{environment}{enumerate}
+% Die Aufzählungsumgebungen werden bereits von \pkg{scrartcl}
+% bereitgestellt, daher werden an dieser Stelle nur die
+% Aufzählungszeichen angepasst.
+%    \begin{macrocode}
+\renewcommand{\labelitemi}{\rule[0.35ex]{0.5ex}{0.5ex}}
+\renewcommand{\labelitemii}{\rule[0.35ex]{0.5ex}{0.5ex}}
+\renewcommand{\labelitemiii}{\rule[0.35ex]{0.5ex}{0.5ex}}
+\renewcommand{\labelitemiv}{\rule[0.35ex]{0.5ex}{0.5ex}}
+\renewcommand{\labelenumi}{\theenumi)}
+\renewcommand{\labelenumii}{\theenumii)}
+\renewcommand{\labelenumiii}{\theenumiii)}
+\renewcommand{\labelenumiv}{\theenumiv)}
+%    \end{macrocode}
+% \end{environment}\end{environment}
+% \subsection{Zitate}
+% Zum Formatieren der Zitate wird das Paket \pkg{csquotes} verwendet.
+% Damit der Nutzer dennoch die Möglichkeit hat das Paket mit eigenen
+% Optionen zu laden, muss am Ende der Präambel geprüft wurden, ob er das
+% auch getan hat.
+%    \begin{macrocode}
+\AtEndPreamble{
+\@ifpackageloaded{csquotes}{
+%    \end{macrocode}
+% Wenn ja wird eine Warnung ausgegeben
+%    \begin{macrocode}
+  \ClassWarning{musuos}{csquotes.sty loaded by user.\MessageBreak
+  Option 'qmarks' will be ignored.}
+}{
+%    \end{macrocode}
+% \begin{macro}{qmarks}
+% und wenn \pkg{csquotes} noch nicht geladen ist, wird es jetzt
+% geladen und die Option |qmarks| wird ausgewertet.
+%    \begin{macrocode}
+\RequirePackage{csquotes}
+\expandafter\ifstrequal\expandafter{\MU@qmarks}{german}{
+  \ExecuteQuoteOptions{style=german,german=quotes}
+}{
+  \expandafter\ifstrequal\expandafter{\MU@qmarks}{gfrench}{
+    \ExecuteQuoteOptions{style=german,german=guillemets}
+  }{
+    \expandafter\ifstrequal\expandafter{\MU@qmarks}{english}{
+      \ExecuteQuoteOptions{style=english,english=american}
+    }{
+      \expandafter\ifstrequal\expandafter{\MU@qmarks}{french}{
+        \ExecuteQuoteOptions{style=french,french=guillemets}
+      }{
+        \ClassError{musuos}{Unkown value for option 'qmarks'}{
+          Use 'german', 'gfrench', 'french', 'english'\MessageBreak
+          or load csquotes.sty by yourself.
+        }
+      }
+    }
+  }
+}
+}}
+%    \end{macrocode}
+% \end{macro}
+% \begin{environment}{quote}
+% Danach wird die Umgebung |quote| die alte Definition (aus
+% \pkg{scrartl.cls}) gelöscht
+%    \begin{macrocode}
+\let\quote\relax
+\let\endquote\relax
+%    \end{macrocode}
+% und mit einem Befehl aus dem \pkg{environ}-Paket die neue gemacht.
+% Dabei muss wieder Rücksicht auf |poorlayout| genommen werden.
+%    \begin{macrocode}
+\NewEnviron{quote}[1][]{%
+  \par\vspace{0.5\baselineskip}%
+  \if@poorlayout\setstretch{1.1}\fi%
+  \begin{addmargin}{2em}%
+    \footnotesize%
+    \if@bqqmarks\enquote{\BODY}\else\BODY\fi%
+    #1%
+  \end{addmargin}%
+  \vspace{0.5\baselineskip}
+  \if@poorlayout\setstretch{1.45}\fi%
+}
+%    \end{macrocode}
+% \end{environment}
+% \begin{macro}{\elp}
+% \begin{macro}{\sic}
+% Abschließend werden noch die Abkürzungen |\elp| und |\sic| erstellt
+%    \begin{macrocode}
+\newcommand{\elp}{[\kern0.5pt\dots\kern-1pt]\xspace}
+\newcommand{\sic}{[sic]\xspace}
+%    \end{macrocode}
+% \end{macro}\end{macro}
+% 
+% \Finale
+\endinput
+ 
\ No newline at end of file
-- 
cgit v1.2.3

