summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/wsemclassic
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/wsemclassic
Initial commit
Diffstat (limited to 'macros/latex/contrib/wsemclassic')
-rw-r--r--macros/latex/contrib/wsemclassic/LICENSE26
-rw-r--r--macros/latex/contrib/wsemclassic/Makefile92
-rw-r--r--macros/latex/contrib/wsemclassic/README67
-rw-r--r--macros/latex/contrib/wsemclassic/test.bib21
-rw-r--r--macros/latex/contrib/wsemclassic/user-doc.tex157
-rw-r--r--macros/latex/contrib/wsemclassic/wsemclassic-test.pdfbin0 -> 172942 bytes
-rw-r--r--macros/latex/contrib/wsemclassic/wsemclassic-test.tex136
-rw-r--r--macros/latex/contrib/wsemclassic/wsemclassic.dtx895
-rw-r--r--macros/latex/contrib/wsemclassic/wsemclassic.ins73
-rw-r--r--macros/latex/contrib/wsemclassic/wsemclassic.pdfbin0 -> 224308 bytes
10 files changed, 1467 insertions, 0 deletions
diff --git a/macros/latex/contrib/wsemclassic/LICENSE b/macros/latex/contrib/wsemclassic/LICENSE
new file mode 100644
index 0000000000..8b1a03f0a9
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/LICENSE
@@ -0,0 +1,26 @@
+Copyright (c) 2013 Johannes Rosenberger <jo.rosenberger at gmx-topmail.de>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ 3. The names of its contributors may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/macros/latex/contrib/wsemclassic/Makefile b/macros/latex/contrib/wsemclassic/Makefile
new file mode 100644
index 0000000000..ee7e16839e
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/Makefile
@@ -0,0 +1,92 @@
+NAME := wsemclassic
+NAME_EXT := dtx
+TEST_NAME := $(NAME)-test
+TEST_NAME_EXT := tex
+
+work_dir := $(shell pwd)
+tmp_dir := tmp
+pkg_dir := pkg
+PDF_LIST := $(tmp_dir)/pdflist
+
+LATEX := pdflatex -output-directory=$(tmp_dir)
+D_LATEX = $(LATEX) -draftmode $(FILE).$(FILE_EXT)
+BIBTEX = bibtex $(tmp_dir)/$(FILE)
+
+RUN_LATEX = $(LATEX) $(FILE).$(FILE_EXT)
+
+.PHONY: all cls doc test package-stable package ctan-stable ctan clean-pdf clean mrpropper
+
+
+ifeq "$(VERSION)" "stable"
+ COMMIT := $(shell git tag | tail -n 1 | grep . || echo 'n') #; else echo "No stable version available!"; exit 1; fi)
+ ifeq "$(COMMIT)" "n "
+ $(error "No stable version available!")
+ endif
+ VERSION := $(COMMIT)
+else
+ COMMIT := $(shell git log | sed -e 's/commit\ //g' -e q)
+ VERSION := $(shell git tag --contains $(COMMIT) | tail -n 1 | grep . || echo $(COMMIT)git)
+endif
+
+all: cls doc test
+
+cls: $(NAME).cls
+
+%.cls: %.dtx %.ins
+ tex $*.ins
+
+doc: FILE_EXT := $(NAME_EXT)
+doc: clean-pdf $(NAME).pdf
+
+test: FILE_EXT := $(TEST_NAME_EXT)
+test: clean-pdf $(NAME).cls $(TEST_NAME).pdf
+
+tmp-dir:
+ test -d $(tmp_dir) || mkdir $(tmp_dir)
+
+%.pdf: FILE = $*
+%.pdf: PDF = $@
+%.pdf: tmp-dir $(FILE).$(FILE_EXT) test.bib
+ $(info pdf: $(PDF))
+ $(D_LATEX)
+ if [ '$(FILE)' = '$(TEST_NAME)' ]; then \
+ grep nobib $(FILE).tex || $(BIBTEX); \
+ else \
+ makeindex -s gglo.ist -o $(tmp_dir)/$(FILE).gls $(tmp_dir)/$(FILE).glo; \
+ makeindex -s gind.ist -o $(tmp_dir)/$(FILE).ind $(tmp_dir)/$(FILE).idx; \
+ fi
+ $(D_LATEX)
+ $(RUN_LATEX)
+ grep $(PDF) $(PDF_LIST) || echo $(FILE).pdf >> $(PDF_LIST)
+ mv $(tmp_dir)/$(PDF) .
+
+
+package-%: ctan-%
+
+package: ctan
+
+ctan-stable:
+ $(MAKE) VERSION=stable ctan
+
+ctan: PKG_NAME := $(NAME)-$(VERSION)
+ctan: pkg_pdf_dir := $(tmp_dir)/$(PKG_NAME)
+ctan: TAR := $(work_dir)/$(pkg_dir)/$(PKG_NAME).tar
+ctan: all
+ test -d $(pkg_pdf_dir) || mkdir $(pkg_pdf_dir)
+ test -d $(pkg_dir) || mkdir $(pkg_dir)
+ cp $$(< $(PDF_LIST)) $(pkg_pdf_dir)
+ git archive --prefix=$(PKG_NAME)/ -o $(TAR) $(COMMIT)
+ -for file in $$(grep -v '^#' .ctanignore); do \
+ tar -f $(TAR) --delete $(PKG_NAME)/$$file; \
+ done
+ cd $(tmp_dir) && tar -rf $(TAR) $(PKG_NAME)/*.pdf
+
+clean-pdf:
+ -rm -f $(TEST_NAME).pdf $(NAME).pdf
+
+clean: clean-pdf
+ -rm -rf $(tmp_dir)
+ -rm $(NAME).cls
+
+mrpropper: clean
+ -rm -rf $(pkg_dir)
diff --git a/macros/latex/contrib/wsemclassic/README b/macros/latex/contrib/wsemclassic/README
new file mode 100644
index 0000000000..1a85e6ffe9
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/README
@@ -0,0 +1,67 @@
+wsemclassic
+===========
+
+A LaTeX document class for bavarian school w-seminar papers, based on report.
+
+
+Usage
+-----------
+
+to use [wsemclassic][ws@github]
+for your w-seminar paper,
+
+* download it (e.g. `git clone git://github.com/jorsn/wsemclassic.git`)
+* put `wsemclassic.cls` into your working dir or a `texmf` dir
+* if you put it into a `texmf` dir, index it (texlive: run `texhash`)
+* insert the following into your LaTeX preamble (before `\begin{document}`):
+
+```latex
+\documentclass[bibfile=<bibtex database name>]{wsemclassic}
+
+\author{<Your Name>}
+\title{<Paper Title>}
+\date{Abiturjahrgang~<year>}
+\subject{<Seminar Title/Subject>}
+\school{<School Name>}
+\major{major}{<Seminar Major Subject (Leitfach)>}
+\teacher{<Your Teacher>}
+\place{<The place where you live/write your paper>}
+```
+
+For maximum conformity with the
+[Bavarian Kultusministerium's recommendations][recomm]
+use `strict` class option.
+To see all options take a look at the first few lines of `wsemclassic.cls`.
+
+[ws@github]: https://github.com/jorsn/wsemclassic "GitHub: wsemclassic"
+[recomm]: http://www.jack-steinberger-gymnasium.de/joomla/images/Dokumente/Oberstufe/Material/Merkblatt_Seminararbeit.pdf
+
+
+### Example
+
+To see an example please have a look at wsemclassic-test.tex.
+You can build the PDF by running `make` or building it manually using `pdflatex`/`lualatex` and `bibtex`.
+
+
+
+Copyright
+-----------
+
+Copyright (c) 2013 Johannes Rosenberger <jo.rosenberger at gmx-topmail.de>
+
+This code is released under a BSD Style License.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+For more details please read the '[LICENSE]' file.
+
+[LICENSE]: https://github.com/jorsn/wsemclassic/blob/master/LICENSE
diff --git a/macros/latex/contrib/wsemclassic/test.bib b/macros/latex/contrib/wsemclassic/test.bib
new file mode 100644
index 0000000000..d67ae7eef3
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/test.bib
@@ -0,0 +1,21 @@
+@Article{journals/aim/Sloman99,
+ title = {Review of Affective Computing},
+ author = "Aaron " # {Sloman},
+ journal = "AI Magazine",
+ year = "1999",
+ number = "1",
+ volume = "20",
+ url = "http://dblp.uni-trier.de/db/journals/aim/aim20.html#Sloman99",
+ pages = "127--133",
+}
+
+@Article{journals/aim/Sloman99-2,
+ title = {Review of Affective Computing / 2},
+ author = "Aaron " # {Sloman},
+ journal = "AI Magazine",
+ year = "1999",
+ number = "2",
+ volume = "21",
+ url = "http://dblp.uni-trier.de/db/journals/aim/aim20.html#Sloman99",
+ pages = "127--133",
+}
diff --git a/macros/latex/contrib/wsemclassic/user-doc.tex b/macros/latex/contrib/wsemclassic/user-doc.tex
new file mode 100644
index 0000000000..5781684624
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/user-doc.tex
@@ -0,0 +1,157 @@
+\part{User Documentation}
+
+
+\section{Introduction}
+
+The \wsemclassic\ document class is designed to either conform with the
+recommendations of the Bavarian Kultusministerium for typesetting
+w-seminar papers (\hyperlink{udoc.opt.strict}{|strict|} mode) or to use another
+style which should look better. It is based on the \report\ class which
+comes with the standard \hologo{LaTeX} distribution.
+
+If you have any wishes or find bugs, please send an email to the author or
+\href{https://github.com/jorsn/wsemclassic/issues}{create an issue at GitHub}.
+
+
+\section{Usage}
+
+To use \wsemclassic\ for your W-Seminar paper, simply insert the following into your
+\hologo{LaTeX} preamble (before |\begin{document}|):
+
+\begin{verbatim}
+\documentclass[bibfile=<bibtex database name>]{wsemclassic}
+
+\author{<Your Name>}
+\title{<Paper Title>}
+\date{Abiturjahrgang~<year>}
+\subject{<Seminar Title/Subject>}
+\school{<School Name>}
+\major{major}{<Seminar Major Subject (Leitfach)>}
+\teacher{<Your Teacher>}
+\place{<The place where you live/write your paper>}
+\end{verbatim}
+
+
+\section{License}
+
+\wsemclassic\ is distributed under a BSD License
+
+\hypertarget{sec.options}{\section{Options}}
+
+Like many other \hologo{LaTeX} document classes, \wsemclassic\ accepts options in
+the well known |key=value| syntax. In the following, you will find a
+description of all |keys| and their possible |values|
+(`|true|' may be omitted; `|nofoo|' may be used instead of `|foo=false|' multiple
+values, where allowed, must be enclosed in braces).
+
+\noindent\\ Option descriptions are in the following format:\\
+
+\describeoption{\meta{option}}{\meta{opt type}}{\meta{default value}}
+\meta{describing paragraph: This is an option description.
+ This option does this and that and you can
+change many things by specifying it.} \\
+
+
+\noindent
+Since \wsemclassic\ is based on \report\ it accepts all of its options, but
+\hyperlink{subsubsec.unrecomm}{some of them should not be used}.\\
+
+\noindent
+All Options not specified in \wsemclassic\ are passed to \report.
+
+\hypertarget{subsubsec.unrecomm}{\subsection{Unrecommended \report\ options}}
+
+\DescribeOption{\meta{foo}paper} Use \hyperlink{udoc.opt.paper}{|paper|=\meta{foo}} instead. \\
+\DescribeOption{\meta{foo}pt} Use \hyperlink{udoc.opt.fontsize}{|fontsize|=\meta{foo}} instead. \\
+\DescribeOption{\meta{language}} Use \hyperlink{udoc.opt.lang}{|lang|=\meta{foo}} instead.
+
+
+\subsection{Strictness}
+
+\describeoption{strict}{boolean}{false}
+Use exactly the format recommended by the Bavarian Kultusministerium. \\
+This option sets \hyperlink{udoc.opt.stricttitle}{|stricttitle|} and
+\hyperlink{udoc.opt.frenchspacing}{|frenchspacing|} to \textit{true}. \\
+It also sets the \hyperlink{udoc.opt.fontsize}{|fontsize|} to |12|, the
+\hyperlink{udoc.opt.paper}{|paper|} to |a4| and the
+\hyperlink{udoc.opt.lang}{|lang|} to |german|.
+
+\describeoption{stricttitle}{boolean}{false}
+Typeset "Seminararbeit" uppercase and not in small capitals as recommended
+by the Bavarian Kultusministerium.
+
+\describeoption{frenchspacing}{boolean}{false}
+Make the spaces after words and sentences equal.
+
+
+
+\subsection{Format and Language}
+
+\describeoption{fontsize}{number}{12}
+Fontsize in pt. \\
+
+\describeoption{paper}{text}{a4}
+Paper format as used as \report\ option |\meta{format}paper|. \\
+
+\describeoption{lang}{text}{german}
+Language. \\ If |lang|=|german|, the babel language is |ngerman|.
+
+\describeoption{plxtex}{boolean}{true}
+Specifies whether one of \hologo{pdfTeX}, \hologo{LuaTeX} or \hologo{XeTeX} is used. \\
+\emph{Set to false if you don't use one of these engines!}
+
+
+
+\subsection{Bibliography}
+
+\describeoption{bib}{boolean}{true}
+Specifies whether to use a bibliography (requires \hologo{BibTeX}) or not. \\
+
+\describeoption{bibstyle}{text}{natdin}
+Specifies the bibliographystlye for \hologo{BibTeX}. \\
+
+\describeoption{bibfile}{text}{\char92{}jobname}
+Specifies the filename of the main \hologo{BibTeX} database (|*.bib|). \\
+\emph{|.bib| can be omitted.} \\
+All etries are included in the document.
+
+
+
+\subsection{Options Related to Used Packages}
+
+\DescribeOption[noindex=true]{\meta{package name}args \rmfamily\itshape option list}
+For most of the packages used by \wsemclassic, options can be specified in
+the format \meta{package name}|args|=\marg{option list}.
+
+These packages are \textsf{fontspec (|*quiet|), hyperref (|*unicode|),
+ microtype (|*babel|), amsmath, titlesec (|*small|), geometry, fancyhdr,
+tocbibind (|*nottoc|)} and \textsf{natbib (|*round|)}. \\
+
+\noindent
+For some packages there are additional or other options available:
+
+\subsubsection{\textsf{fontspec}}
+
+\describeoption{defaultfontfeatures}{\\ \texttt{type:} key value}{\\ Ligatures=\{TeX,\\ Common\}, Fractions=On}
+Specifies the \textsf{fontspec} |\defaultfontfeatures|. \\~\\~\\
+
+\describeoption{mainfont}{text}{CMU Serif}
+These options specifie the fonts used as main (normally serif),
+
+\describeoption{sansfont}{text}{CMU Sans Serif}
+sans serif
+
+\describeoption{monofont}{text}{CMU Typewriter Text}
+and monospaced font. \\ \vskip 0.4em ~\\
+
+
+\subsubsection{\textsf{hyperref} and \textsf{natbib}}
+
+\describeoption{hyperref}{boolean}{true}
+Turn \textsf{hyperref} or
+
+\describeoption{natbib}{boolean}{true}
+\textsf{natbib} on/off. \\~ \vskip 0.7em ~\\
+
+%\iffalse vim: ft=tex
+%\fi
diff --git a/macros/latex/contrib/wsemclassic/wsemclassic-test.pdf b/macros/latex/contrib/wsemclassic/wsemclassic-test.pdf
new file mode 100644
index 0000000000..2647c01091
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/wsemclassic-test.pdf
Binary files differ
diff --git a/macros/latex/contrib/wsemclassic/wsemclassic-test.tex b/macros/latex/contrib/wsemclassic/wsemclassic-test.tex
new file mode 100644
index 0000000000..bf2f325ed1
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/wsemclassic-test.tex
@@ -0,0 +1,136 @@
+\documentclass[bibfile=test.bib]{wsemclassic}
+
+\title{Lorem Ipsum}
+\author{Auto Autorius}
+\date{Abiturjahrgang~2014}
+\subject{Pseudo Latin Languages}
+\school{Lorem-Ipsum-Test-Gymnasium}
+\major{Latin}
+\teacher{Test Teacher}
+\place{Rom}
+
+
+\begin{document}
+
+
+\chapter{Lorem Ipsum}
+
+
+\section{Opera sine nomine scripta}
+
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor
+incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
+Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat
+nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa
+qui officia deserunt mollit anim id est laborum.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
+consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
+et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis
+dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer
+adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore
+magna aliquam erat volutpat.
+
+Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
+lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure
+dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
+eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim
+qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
+nulla facilisi.
+
+Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming
+id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
+laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea
+commodo consequat.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
+consequat, vel illum dolore eu feugiat nulla facilisis.
+
+\subsection{sub}
+At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
+gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum
+dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
+ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
+et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
+sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos
+erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren,
+kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum
+dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
+
+\subsection{Consetetur}
+Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
+et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et
+justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
+sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
+dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
+Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing
+elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
+erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+\section{secondo}
+
+Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor
+incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
+nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
+Quis aute iure reprehenderit in voluptate velit esse cillum dolore eu fugiat
+nulla pariatur. Excepteur sint obcaecat cupiditat non proident, sunt in culpa
+qui officia deserunt mollit anim id est laborum.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
+consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan
+et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis
+dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer
+adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore
+magna aliquam erat volutpat.
+
+Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
+lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure
+dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore
+eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim
+qui blandit praesent luptatum zzril delenit augue duis dolore te feugait
+nulla facilisi.
+
+Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming
+id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet,
+consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut
+laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
+nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea
+commodo consequat.
+
+Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie
+consequat, vel illum dolore eu feugiat nulla facilisis.
+
+At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
+gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum
+dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
+ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam
+et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
+sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos
+erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren,
+kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum
+dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
+diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat.
+
+Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore
+et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et
+justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
+sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
+sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
+magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
+dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est
+Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing
+elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
+erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
+rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+
+
+\end{document}
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]
+%</cls>
+%
+%<driver>\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}
+%</driver>
+%
+% \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{<jo.rosenberger@gmx-topmail.de>}}}
+% \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
diff --git a/macros/latex/contrib/wsemclassic/wsemclassic.ins b/macros/latex/contrib/wsemclassic/wsemclassic.ins
new file mode 100644
index 0000000000..63d041283d
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/wsemclassic.ins
@@ -0,0 +1,73 @@
+%% wsemclassic.dtx
+%% 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.
+%%
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+
+\def\filedate{2013/06/09}
+\def\batchfile{wsemclassic.ins}
+\input docstrip
+
+\ifx\generate\undefined
+ \Msg{**********************************************}
+ \Msg{*}
+ \Msg{* This installation requires docstrip}
+ \Msg{* version 2.4 or later.}
+ \Msg{*}
+ \Msg{* An older version of docstrip has been input}
+ \Msg{*}
+ \Msg{**********************************************}
+ \errhelp{Move or rename old docstrip.tex and get a newer one.}
+ \errmessage{Old docstrip in input path}
+ \batchmode
+ \csname @@end\endcsname\end
+\fi
+
+\keepsilent
+\askforoverwritefalse
+%\askonceonly
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\usedir{tex/latex/wsemclassic}
+
+\preamble
+
+This is a generated file.
+
+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.
+
+\endpreamble
+
+
+\generate{\file{wsemclassic.cls}{\from{wsemclassic.dtx}{cls}}}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space wsemclassic.cls}
+\Msg{*}
+\Msg{* To produce the documentation run the file wsemclassic.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endbatchfile
+
+% vim: ts=2 sw=2 expandtab ft=tex
diff --git a/macros/latex/contrib/wsemclassic/wsemclassic.pdf b/macros/latex/contrib/wsemclassic/wsemclassic.pdf
new file mode 100644
index 0000000000..84826ba7f9
--- /dev/null
+++ b/macros/latex/contrib/wsemclassic/wsemclassic.pdf
Binary files differ