From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/wsemclassic/wsemclassic.dtx | 895 +++++++++++++++++++++++ 1 file changed, 895 insertions(+) create mode 100644 macros/latex/contrib/wsemclassic/wsemclassic.dtx (limited to 'macros/latex/contrib/wsemclassic/wsemclassic.dtx') diff --git a/macros/latex/contrib/wsemclassic/wsemclassic.dtx b/macros/latex/contrib/wsemclassic/wsemclassic.dtx new file mode 100644 index 0000000000..614822f069 --- /dev/null +++ b/macros/latex/contrib/wsemclassic/wsemclassic.dtx @@ -0,0 +1,895 @@ +% \iffalse meta-comment +% +% Copyright (c) 2013 Johannes Rosenberger +% +% This work may be distributed and/or modified under the +% conditions of a BSD Style License (see file 'LICENSE'). +% +% This work consists of the files wsemclassic.dtx and wsemclassic.ins +% and the derived file wsemclassic.cls. +% +% \fi +% +% \iffalse +% +%<*cls> +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesClass{wsemclassic} + [2013/08/27 v1.0.1 document class for bavarian school w-seminar papers, based on report] +% +% +%\ProvidesFile{wsemclassic.drv} +% +%<*driver> +\documentclass[a4paper,11pt]{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +%\OnlyDescription + +\usepackage[noindex]{dox} +\usepackage{hypdoc,colordoc} +\usepackage{hologo} +\usepackage[left=30ex, top=3cm, bottom=3cm]{geometry} + +\usepackage{marginnote} +\let\marginpar=\marginnote + +\newcommand{\wsemclassic}{\textsf{wsemclassic}} +\newcommand{\report}{\textsf{report}} + +\doxitem{Package}{ttpackage}{Packages Used} +\doxitem{Option}{option}{Options} + +\newcommand{\describeoption}[3]{ + \noindent + \\ + \hypertarget{udoc.opt.#1}{\DescribeOption[noindex=false]{#1 \textrm{\itshape #2}}} + \marginpar{\\ \texttt{#3}} + \hspace{-1.1ex}% +} + +\newenvironment{hyperopt}[1]{ + \hypertarget{impl.opt.#1}{\option[noindex=false]{#1}} +}{ + \endoption +} + +\newenvironment{indmacro}[1]{\macro[noindex=false]{#1}}{\endmacro} + +\newenvironment{package}[1]{ + \ttpackage[noprint, noindex=false]{#1} + \marginpar{\textsf{#1}} +}{ + \endttpackage +} +\newenvironment{noindpackage}[1]{ + \ttpackage[noprint, noindex=true]{#1} + \marginpar{\textsf{#1}} +}{ + \endttpackage +} + +\begin{document} +\DocInput{wsemclassic.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{480} +%% \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}{2013/08/27}{Initial version.} +% \changes{v1.0.1}{2013/08/27}{ctan package building bugfixes.} + +% +% \GetFileInfo{wsemclassic.cls} +% +% +% \title{The \wsemclassic\ Document Class (\textsf{v1.0.1})} +% \author{Johannes Rosenberger \\ +% \href{mailto:jo.rosenberger@gmx-topmail.de}{\texttt{}}} +% \date{2013/08/27} +% \maketitle +% +% \begin{abstract} +% This package provides a \hologo{LaTeXe} document class named \wsemclassic\ +% for typesetting Bavarian school w-seminar papers. +% \end{abstract} +% +% \tableofcontents +% +% \input{user-doc} +% +% \StopEventually{\PrintChanges} +% +% \part{Implementation} +% +% \parindent0pt +% \begin{indmacro}{\report} +% is set to the name of the parent class. So it can be changed later easier. +% \begin{macrocode} +\newcommand{\report}{report} +% \end{macrocode} +% \end{indmacro} +% +% +% \section{Option processing} +% +% \begin{package}{kvoptions} +% is needed to parse key-value options: +% \begin{macrocode} +\RequirePackage{kvoptions} + +\SetupKeyvalOptions{ +prefix = ws@ +} +% \end{macrocode} +% \end{package} +% +% +% Now we parse the key-value options. +% They are specified in the format \\ +% +% |\Declare|\meta{Type}|Option|\oarg{default value}\marg{option name}. \\ +% +% \subsection{Strictness} +% \begin{hyperopt}{strict} +% First the strictness options. +% \begin{macrocode} +\DeclareBoolOption[false]{strict} +\DeclareComplementaryOption{nostrict}{strict} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{stricttitle} +% \begin{macrocode} +\DeclareBoolOption[false]{stricttitle} +\DeclareComplementaryOption{nostricttitle}{stricttitle} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{frenchspacing} +% \begin{macrocode} +\DeclareBoolOption[false]{frenchspacing} +\DeclareComplementaryOption{nofrenchspacing}{frenchspacing} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsection{Format and Language} +% +% \begin{hyperopt}{fontsize} +% \begin{macrocode} +\DeclareStringOption[12]{fontsize} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{paper} +% \begin{macrocode} +\DeclareStringOption[a4]{paper} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{lang} +% \begin{macrocode} +\DeclareStringOption[german]{lang} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{plxtex} +% \begin{macrocode} +\DeclareBoolOption[true]{plxtex} +\DeclareComplementaryOption{noplxtex}{plxtex} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsection{Bibliography} +% \begin{hyperopt}{bib} +% \begin{macrocode} +\DeclareBoolOption[true]{bib} +\DeclareComplementaryOption{nobib}{bib} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{bibfile} +% \begin{macrocode} +\DeclareStringOption[\jobname]{bibfile} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsection{Options Related to Used Packages} +% +% \subsubsection{\textsf{fontspec}} +% +% \begin{hyperopt}{fontspecargs} +% \begin{macrocode} +\DeclareStringOption[quiet]{fontspecargs} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{defaultfontfeatures} +% \begin{macrocode} +\DeclareStringOption[Ligatures={TeX, Common}, + Fractions=On]{defaultfontfeatures} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{mainfont} +% \begin{macrocode} +\DeclareStringOption[CMU Serif]{mainfont} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{sansfont} +% \begin{macrocode} +\DeclareStringOption[CMU Sans Serif]{sansfont} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{monofont} +% \begin{macrocode} +\DeclareStringOption[CMU Typewriter Text]{monofont} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsubsection{\textsf{hyperref} and \textsf{natbib}} +% +% \begin{hyperopt}{hyperref} +% \begin{macrocode} +\DeclareBoolOption[true]{hyperref} +\DeclareComplementaryOption{nohyperref}{hyperref} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{hyperrefargs} +% \begin{macrocode} +\DeclareStringOption[unicode]{hyperrefargs} +% \end{macrocode} +% \end{hyperopt} +% +% +% \begin{hyperopt}{natbib} +% \begin{macrocode} +\DeclareBoolOption[true]{natbib} +\DeclareComplementaryOption{nonatbib}{natbib} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{natbibargs} +% \begin{macrocode} +\DeclareStringOption[round]{natbibargs} +% \end{macrocode} +% \end{hyperopt} +% \begin{hyperopt}{bibstyle} +% \begin{macrocode} +\DeclareStringOption[natdin]{bibstyle} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsubsection{Other Packages which Can Get Args} +% +% \begin{hyperopt}{microtypeargs} +% Access to microtypographic features in \hologo{pdfTeX}, \hologo{XeTeX} +% and \hologo{LuaTeX}. +% \begin{macrocode} +\DeclareStringOption[babel]{microtypeargs} +% \end{macrocode} +% \end{hyperopt} +% +% \begin{hyperopt}{amsmathargs} +% Enhanced math. +% \begin{macrocode} +\DeclareStringOption{amsmathargs} +% \end{macrocode} +% \end{hyperopt} +% +% \begin{hyperopt}{titlesecargs} +% Better control over sectioning title appearance. +% \begin{macrocode} +\DeclareStringOption[small]{titlesecargs} +% \end{macrocode} +% \end{hyperopt} +% +% \begin{hyperopt}{geometryargs} +% Better page layout. +% \begin{macrocode} +\DeclareStringOption{geometryargs} +% \end{macrocode} +% \end{hyperopt} +% +% \begin{hyperopt}{fancyhdrargs} +% Easier headers and footers. +% \begin{macrocode} +\DeclareStringOption{fancyhdrargs} +% \end{macrocode} +% \end{hyperopt} +% +% \begin{hyperopt}{tocbibindargs} +% Makes a toc entry for the bibliography. +% \begin{macrocode} +\DeclareStringOption[nottoc]{tocbibindargs} +% \end{macrocode} +% \end{hyperopt} +% +% +% \subsection{Options Passed to Parent Class (\report) and Option Processing} +% +% All options not declared above are set to be passed to class \report, +% then options are processed. +% +% \begin{macrocode} +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{\report}} + +\ProcessKeyvalOptions*\relax +% \end{macrocode} +% +% +% Now the |strict|(\hyperlink{udoc.opt.strict}{doc},\hyperlink{impl.opt.strict}{impl}) +% option sets other related options. +% +% +% \subsection{Making other Options \texttt{strict}} +% +% The |strict| (\hyperlink{udoc.opt.strict}{doc},\hyperlink{impl.opt.strict}{impl}) option sets other +% options to certain values, ignoring their custom values. +% \begin{macrocode} +\ifws@strict +\renewcommand{\ws@fontsize}{12} +\renewcommand{\ws@paper}{a4} +\renewcommand{\ws@lang}{german} +\ws@frenchspacingtrue +\ws@stricttitletrue +\ws@bibtrue +\fi +% \end{macrocode} +% +% And then the fontsize (\hyperlink{udoc.opt.fontsize}{doc},\hyperlink{impl.opt.fontsize}{impl}), +% the language (\hyperlink{udoc.opt.lang}{doc},\hyperlink{impl.opt.lang}{impl}) +% and the paper size (\hyperlink{udoc.opt.paper}{doc},\hyperlink{impl.opt.paper}{impl}) are set. +% +% If the paper size is |custom| it is not passed to \report. +% +% \begin{macrocode} +\PassOptionsToClass{\ws@fontsize pt, \ws@lang}{\report} +\ifx \ws@paper custom \else +\PassOptionsToClass{\ws@paper paper}{\report} +\fi +% \end{macrocode} +% +% Now the \report class (parent class) is loaded. +% \begin{macrocode} +\LoadClass{\report} +% \end{macrocode} +% +% +% \section{Package Loading and Settings} +% +% \begin{indmacro}{\babellang} +% When using \textsf{babel}, |ngerman| should be used instead of |german|. +% So we use this macro for \textsf{babel}. +% \begin{macrocode} +\newcommand{\babellang}{ +\ifx \ws@lang german + ngerman +\else + \ws@lang +\fi +} +% \end{macrocode} +% \end{indmacro} +% +% +% \subsection{\hologo{TeX} Engine Dependent Settings} +% +% \begin{package}{iftex} +% is needed to determine which \hologo{TeX} engine we are running. +% \begin{macrocode} +\RequirePackage{iftex} +% \end{macrocode} +% \end{package} +% +% +% \begin{package}{inputenx} +% \begin{package}{fontenc} +% |\ifPDFTeX| only means `if not \hologo{XeTeX}/\hologo{LuaTeX}'. +% If this is true, we need \textsf{inputenx} for UTF-8 support +% and \textsf{fontenc} for T1 font support. +% +% \begin{package}{babel} +% \begin{package}{polyglossia} +% \textsf{babel} is used if we are not running \hologo{XeTeX} for which \textsf{polyglossia} +% is recommended. +% +% \begin{package}{fontspec} +% If we are running \hologo{XeTeX} or \hologo{LuaTeX} then we use the \textsf{fontspec} package. +% \begin{macrocode} +\ifPDFTeX + \RequirePackage[utf8x]{inputenx} + \RequirePackage[T1]{fontenc} + + \RequirePackage[\babellang]{babel} + \RequirePackage[fixlanguage]{babelbib} + +\else % if luatex or xelatex + \ifXeTeX + \RequirePackage{polyglossia} + \setdefaultlanguage[babelshorthands, spelling=new]{german} + \else + \RequirePackage[\babellang]{babel} + \RequirePackage[fixlanguage]{babelbib} + \fi + + \RequirePackage[\ws@fontspecargs]{fontspec} + \defaultfontfeatures{\ws@defaultfontfeatures} +\fi +% \end{macrocode} +% \end{package} +% \end{package} +% \end{package} +% \end{package} +% \end{package} +% +% \subsection{Loading Styling Packages} +% +% +% \begin{package}{hyperref} is used to use PDF features. +% \begin{macrocode} +\ifws@hyperref + \RequirePackage[\ws@hyperrefargs]{hyperref} +\fi +% \end{macrocode} +% \end{package} +% +% \begin{package}{microtype} is used to use microtypographic features +% of \hologo{pdfTeX}/\hologo{XeTeX}/\hologo{LuaTeX}. +% \begin{macrocode} +\ifws@plxtex + \RequirePackage[\ws@microtypeargs]{microtype} +\fi +% \end{macrocode} +% \end{package} +% +% \begin{package}{amsmath} +% \begin{package}{amsthm} +% \begin{package}{amssymb} +% Use better mathematical formatting. +% \begin{macrocode} +\RequirePackage[\ws@amsmathargs]{amsmath} +\RequirePackage{amsthm,amssymb} +% \end{macrocode} +% \end{package} +% \end{package} +% \end{package} +% +% \begin{package}{titlesec} is used to change title formatting. +% \begin{macrocode} +\RequirePackage[\ws@titlesecargs]{titlesec} +% \end{macrocode} +% \end{package} +% +% \begin{package}{natbib} is needed for DIN conform bibliographies. +% \begin{macrocode} +\ifws@natbib + \RequirePackage[\ws@natbibargs]{natbib} +\fi +% \end{macrocode} +% \end{package} +% +% \begin{package}{setspace} is needed for better setting of linespacing. +% \begin{macrocode} +\RequirePackage{setspace} +\onehalfspacing +% \end{macrocode} +% \end{package} +% +% \begin{package}{geometry} is needed for setting the page layout. +% \begin{macrocode} +\RequirePackage[\ws@geometryargs]{geometry} +\newcommand{\setgeometry}[1]{\geometry{#1}} +\ifx \ws@paper custom \else + \setgeometry{\ws@paper paper, scale=0.75, centering} +\fi +% \end{macrocode} +% \end{package} +% +% \begin{package}{fancyhdr} is used for easier setting of the header/footer. +% \begin{macrocode} +\RequirePackage{fancyhdr} +\pagestyle{fancy} +\renewcommand{\headwidth}{\textwidth} +% \end{macrocode} +% Now a pagestyle which displays chapters, sections and subsections in the header +% and the page number in the footer is constructed. +% \begin{macrocode} +\fancypagestyle{wsfancy}{ + \fancyhead{} + + \newif\iffirstsection + \firstsectiontrue + + \def\setchaptermark##1{ + \firstsectiontrue + \edef\mark@chapter{##1} + \rhead{\mark@chapter} + } + \def\setsectionmark##1{ + \edef\mark@section{##1} + \lhead{\mark@section} + } + \def\setsubsectionmark##1{ + \iffirstsection + \firstsectionfalse + \edef\mark@section{##1} + \lhead{\mark@section\\\mark@section} + \fi + } + + \renewcommand{\chaptermark}[1]{\setchaptermark{\chaptername~\thechapter.~~##1}} + \renewcommand{\sectionmark}[1]{\setsectionmark{\thesection~~##1}} + \renewcommand{\subsectionmark}[1]{\setsubsectionmark{\thesubsection~~##1}} +} +% \end{macrocode} +% \end{package} +% +% \begin{package}{tocbibind} is needed for having a toc entry for the bibliography. +% \begin{macrocode} +\RequirePackage[\ws@tocbibindargs]{tocbibind} +% \end{macrocode} +% \end{package} +% +% +% \subsection{Making the Document Strict} +% +% \begin{option}{strict} +% Now that the necessary packages are loaded we can make the document |strict|. +% \begin{macrocode} +\ifws@strict + \setgeometry{top=2cm, bottom=2cm, left=2.5cm, right=2.5cm, a4paper} + \titleformat{\chapter}{\normalfont\Large\bfseries}{\thechapter}{1em}{}{} + + \fancypagestyle{plain}{ + \fancyhf{} + \chead{\thepage} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} + } + \pagestyle{plain} + \addtocontents{toc}{\protect\thispagestyle{empty}} +\else +% \end{macrocode} +% Or we make it fancy. +% \begin{macrocode} + \pagestyle{wsfancy} +\fi +% \end{macrocode} +% \end{option} +% +% \begin{option}{frenchspacing} +% Set frenchspacing if needed. +% \begin{macrocode} +\ifws@frenchspacing + \frenchspacing +\fi +% \end{macrocode} +% \end{option} +% +% +% \section{The Titlepage} +% +% \subsection{The Caption Styles} +% +% \begin{option}{plxtex} +% If |true| use \textsf{microtype} for tracking(letter spacing), +% else use the \textsf{soulutf8} package. +% \begin{noindpackage}{microtype} +% \begin{package}{soulutf8} +% \begin{macrocode} +\ifws@plxtex + \newcommand{\spaced}[1]{% + \textls[250]{\ifPDFTeX\else\addfontfeatures{Renderer=Basic}\fi#1}} + \newcommand{\mainstyle}[1]{\Large\bfseries\textsc{\spaced{#1}}} +\else + \RequirePackage{soulutf8} + \newcommand{\spaced}[1]{\so{#1}} + \newcommand{\spaced}[1]{ + { + \def\text{#1~} + \so\text + } + } + \newcommand{\mainstyle}[1]{\Large\bfseries\textsc{\spaced{#1\,}}} +\fi +% \end{macrocode} +% \end{package} +% \end{noindpackage} +% \end{option} +% +% Now we set the other caption styles for the title page. +% \begin{macrocode} +\newcommand{\submainstyle}[1]{#1} +\newcommand{\subjectstyle}[1]{\textit{#1}} +\newcommand{\titlestyle}[1]{\large\textit{#1}} +% \end{macrocode} +% +% \begin{option}{stricttitle} +% If |true|, make the main title uppercase and the title of the paper smaller. +% \begin{macrocode} +\ifws@stricttitle + \renewcommand{\mainstyle}[1]{\large\bfseries\MakeUppercase{\spaced{#1}}} + \renewcommand{\titlestyle}[1]{\textit{#1}} +\fi +% \end{macrocode} +% \end{option} +% +% \subsection{The Meta Information} +% +% \begin{indmacro}{\onlyhypermeta} +% This macro does sets PDF meta info or, if hyperref is not used, does nothing. +% \begin{macrocode} +\ifws@hyperref + \newcommand{\onlyhypermeta}[2]{ + \hypersetup{ + pdf#1=#2 + } + } +\else + \newcommand{\onlyhypermeta}[2]{} +\fi +% \end{macrocode} +% \end{indmacro} +% +% \begin{indmacro}{\setmeta} +% This macro sets the \hologo{TeX} meta info. +% \begin{macrocode} +\newcommand{\setmeta}[2]{ + { + \def\@metaname{@#1} + \expandafter\gdef\csname\@metaname\endcsname{#2} + } +} +% \end{macrocode} +% \end{indmacro} +% +% \begin{indmacro}{\sethypermeta} +% This macro sets the PDF and \hologo{TeX} meta info via the +% |\onlyhypermeta| and |\setmeta| macros. +% \begin{macrocode} +\newcommand{\sethypermeta}[2]{ + \setmeta{#1}{#2} + \onlyhypermeta{#1}{#2} +} +% \end{macrocode} +% \end{indmacro} +% +% These macros store the +% \begin{indmacro}{\@author} author name, +% \begin{macrocode} +\renewcommand{\@author}{Author} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@title} title of the paper, +% \begin{macrocode} +\renewcommand{\@title}{Title} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@date} year of the abitur, +% \begin{macrocode} +\renewcommand{\@date}{Date} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@subject} subject of the paper, +% \begin{macrocode} +\newcommand{\@subject}{Subject} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@school} school, +% \begin{macrocode} +\newcommand{\@school}{School} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@major} major subject (`Leitfach'), +% \begin{macrocode} +\newcommand{\@major}{Major} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@teacher} teacher name, +% \begin{macrocode} +\newcommand{\@teacher}{Teacher Name} +% \end{macrocode} +% \end{indmacro} +% \begin{indmacro}{\@place} place where you write your thesis. +% \begin{macrocode} +\newcommand{\@place}{Place} +% \end{macrocode} +% \end{indmacro} +% +% The default values are only descriptions so that compiliation does not +% fail if one information is not specified. +% +% \begin{indmacro}{\author} +% \begin{indmacro}{\title} +% \begin{indmacro}{\date} +% \begin{indmacro}{\subject} +% \begin{indmacro}{\school} +% \begin{indmacro}{\major} +% \begin{indmacro}{\teacher} +% \begin{indmacro}{\place} These Macros can be used to set the meta info. +% \begin{macrocode} +\renewcommand{\author}[1]{\sethypermeta{author}{#1}} +\renewcommand{\title}[1]{\sethypermeta{title}{#1}} +\renewcommand{\date}[1]{\setmeta{date}{#1}} +\newcommand{\subject}[1]{\sethypermeta{subject}{#1}} +\newcommand{\school}[1]{\setmeta{school}{#1}} +\newcommand{\major}[1]{\setmeta{major}{#1}} +\newcommand{\teacher}[1]{\setmeta{teacher}{#1}} +\newcommand{\place}[1]{\setmeta{place}{#1}} +% \end{macrocode} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% \end{indmacro} +% +% +% \subsection{Set Captions} +% +% \begin{indmacro}{\newcaption} can be used to set a caption in a certain +% language. +% +% \emph{Only some of the captions on the title page use this yet! +% are only german!} +% +% \begin{macrocode} +\newcommand{\newcaption}[3]{ + { + \def\@capname{caption@#1@#2} + \def\@dcapname##1{caption@##1@#2} + \expandafter\gdef\csname\@capname\endcsname{#3} + \expandafter\xdef\csname#2\endcsname{\csname\@dcapname{\ws@lang}\endcsname} + } +} +% \end{macrocode} +% +% Examples used here are: +% \begin{macrocode} +\newcaption{german}{qpname}{Qualifikationsphase} +\newcaption{german}{mainname}{Seminararbeit} +\newcaption{german}{submainname}{im Wissenschaftsprop\"adeutischen Seminar} +\newcaption{german}{authorname}{Verfasser} +\newcaption{german}{majorname}{Leitfach} +\newcaption{german}{teachername}{Seminarleiter} +\newcaption{german}{closingname}{Selbstst\"andigkeitserkl\"arung} +% \end{macrocode} +% \end{indmacro} +% +% +% \subsection{Building the Title Page} +% +% \begin{indmacro}{\placeholder} is a placeholder/form field to fill in things +% after printing. +% \begin{macrocode} +\newcommand{\placeholder}{\rule[-.5ex]{5cm}{.4pt}} +% \end{macrocode} +% \end{indmacro} +% +% +% \begin{indmacro}{\maketitle} is now changed to print our title page. +% \begin{macrocode} +\renewcommand{\maketitle}{ + \begin{titlepage} + \ifws@strict \else + \newgeometry{left=2.5cm, right=2.5cm} + \fi + \setlength{\parindent}{\z@} + \setlength{\parfillskip}{\z@\@plus1fil} + %\setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative + \singlespacing + {\@school\hfill\@date\par} + {\qpname\par} + \vskip 7em + \begin{center} + {\mainstyle{\mainname}\par} + \vskip .5em + {\submainstyle{\submainname}\par} + \vskip .5em + {\subjectstyle{\@subject}\par} + \vskip .5em + {\titlestyle{\@title}\par} + \end{center} + \vskip 10em + \doublespacing + \begin{tabular}{rl} + \authorname: & \@author \\ + \majorname: & \@major \\ + \teachername: & \@teacher \\ + Abgabetermin: & \placeholder \\[1em] + Note Seminararbeit: & \placeholder \\ + Punkte Seminararbeit (einfache Wertung): & \placeholder \\ + Punkte Pr\"asentation: & \placeholder \\ + Gesamtleistung (doppelte Wertung): & \placeholder \\ + Eintrag des Ergebnisses: & \placeholder \\[1em] + Unterschrift des Seminarleiters: & \placeholder + \end{tabular} + \ifws@strict \else + \restoregeometry + \fi + \end{titlepage} + \stepcounter{page} +} +% \end{macrocode} +% \end{indmacro} +% +% +% \section{The Bibliography} +% +% \begin{indmacro}{\makebib} +% \begin{option}{bibstyle} +% \begin{option}{bibfile} +% The bibliography is made using |\nobib{*}| so all entries in the bibliography +% file are printed. +% \begin{macrocode} +\newcommand{\makebib}{ + \ifws@bib + \nocite{*} + \bibliographystyle{\ws@bibstyle} + \bibliography{\ws@bibfile} + \fi +} +% \end{macrocode} +% \end{option} +% \end{option} +% \end{indmacro} +% +% +% \section{The Closing} +% +% For Bavarian W-Seminar papers it is required that they contain a certain +% closing. +% \begin{indmacro}{\makeclosing} +% This closing is constructed here. +% \begin{macrocode} +\newcommand{\makeclosing}{ + \newpage + + \setlength{\parindent}{\z@} + \setlength{\parfillskip}{\z@\@plus1fil} + %\setparsizes{\z@}{\z@}{\z@\@plus1fil}\par@updaterelative + \chapter*{\protect\closingname} + \addcontentsline{toc}{chapter}{\protect\closingname} + {Ich erkl\"are, dass ich die Seminararbeit ohne fremde Hilfe angefertigt + und nur die im Literaturverzeichnis angef\"uhrten Quellen und Hilfsmittel + benutzt habe.\par} + \vskip 2em + {\@place, den \today\hfill\placeholder\par} +} +% \end{macrocode} +% \end{indmacro} +% +% +% \section{\ttfamily\char92{}At\emph{(Begin\textbar{}End)}Document} +% +% \begin{indmacro}{\AtBeginDocument} +% \begin{indmacro}{\AtEndDocument} +% \begin{macrocode} +\AtBeginDocument{\maketitle\tableofcontents} +\AtEndDocument{\makebib\makeclosing} +% \end{macrocode} +% \end{indmacro} +% \end{indmacro} +% +% \Finale +% \endinput +% +% vim: filetype=tex shiftwidth=2 tabstop=2 expandtab -- cgit v1.2.3