From 0a85dca32cca799d77c78ea28f03e66694d336d1 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 23 Feb 2017 22:01:27 +0000 Subject: mucproc (22feb17) git-svn-id: svn://tug.org/texlive/trunk@43318 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/mucproc/README.md | 39 + Master/texmf-dist/doc/latex/mucproc/mucproc.pdf | Bin 0 -> 316252 bytes Master/texmf-dist/source/latex/mucproc/mucproc.dtx | 786 +++++++++++++++++++++ Master/texmf-dist/source/latex/mucproc/mucproc.ins | 70 ++ .../tex/latex/mucproc/mucfontsize10pt.clo | 110 +++ Master/texmf-dist/tex/latex/mucproc/mucproc.cls | 404 +++++++++++ 6 files changed, 1409 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/mucproc/README.md create mode 100644 Master/texmf-dist/doc/latex/mucproc/mucproc.pdf create mode 100644 Master/texmf-dist/source/latex/mucproc/mucproc.dtx create mode 100644 Master/texmf-dist/source/latex/mucproc/mucproc.ins create mode 100644 Master/texmf-dist/tex/latex/mucproc/mucfontsize10pt.clo create mode 100644 Master/texmf-dist/tex/latex/mucproc/mucproc.cls (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/mucproc/README.md b/Master/texmf-dist/doc/latex/mucproc/README.md new file mode 100644 index 00000000000..5ad5e53d4c9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mucproc/README.md @@ -0,0 +1,39 @@ +# mucproc +conference proceedings for the **Mensch und Computer** (MuC) conference using LaTeX + + Copyright (C) Marei Peischl , 2017 + + mucproc 2017/02/22 v1.0 + +*************************************************************************** + + This material is subject to the LaTeX Project Public License version 1.3c + or later. See http://www.latex-project.org/lppl.txt for details. + +*************************************************************************** + +Summary +------- +The mucproc.cls is a document class to support the formatting guidelines for submissions to the German **Mensch und Computer** conference (http://www.mensch-und-computer.de/). +This work consists of the files mucproc.dtx and mucproc.ins and the derived files mucproc.cls, mucfontsize10pt.clo. + +A compileable demonstration file using the mucproc class can be found on github (https://github.com/Blubu/mucproc/). +This example fullfils the formatting guidelines for MuC 2017. + +Files +----- +This work consists of the files + * mucproc.dtx + * mucproc.ins +and the derived files + * mucproc.cls + * mucfontsize10pt.clo + +Versions +-------- + +*v1.0** (2017/02/22) + ++ first official version mucproc + + diff --git a/Master/texmf-dist/doc/latex/mucproc/mucproc.pdf b/Master/texmf-dist/doc/latex/mucproc/mucproc.pdf new file mode 100644 index 00000000000..2239f7ba598 Binary files /dev/null and b/Master/texmf-dist/doc/latex/mucproc/mucproc.pdf differ diff --git a/Master/texmf-dist/source/latex/mucproc/mucproc.dtx b/Master/texmf-dist/source/latex/mucproc/mucproc.dtx new file mode 100644 index 00000000000..19a2dbbecda --- /dev/null +++ b/Master/texmf-dist/source/latex/mucproc/mucproc.dtx @@ -0,0 +1,786 @@ +% \iffalse meta-comment +% +% Copyright (C) 2017 by Marei Peischl +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% 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.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Marei Peischl. +% +% This work consists of the files mucproc.dtx and mucproc.ins +% and the derived files mucproc.cls and mucfontsize10pt.clo. +% +% \fi +% +% \iffalse +% +%<*!font-clo> +\def\mucprocVersion{1.0} +%<*driver> +\ProvidesFile{mucproc.dtx}[2017/02/22 v\mucprocVersion\ MuC-conference proceedings] +% + +%<*class> +\NeedsTeXFormat{LaTeX2e}[2014/05/01] +\ProvidesClass{mucproc} + [2017/02/20 v\mucprocVersion\ conference proceedings for the German MuC-conference] +% +% +%<*driver> +\RequirePackage{scrlfile} +\ReplaceClass{article}{scrartcl} +\documentclass[english]{ltxdoc} +\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} +\usepackage[T1]{fontenc} +\usepackage{babel} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\usepackage{xparse} +\begin{document} + \DocInput{mucproc.dtx} +\end{document} +% +% \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}{2017/02/20}{Initial version} +% +% \GetFileInfo{mucproc.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% +% \title{The \textsf{mucproc} class\thanks{This document +% corresponds to \textsf{mucproc}~\fileversion, dated \filedate.}} +% \author{Marei Peischl \\ \texttt{tex@mareipeischl.de}} +% \date{February 14, 2017} +% \maketitle +% +% \section{Introduction} +% +% The \textsf{mucproc} class provides a document class which allows to use the \LaTeX{} document preparation system for contributions to the German ``Mensch und Compuer 2017'' conference. +% It corresponds to the Word-template offered via the conference's homepage \url{http://muc2017.mensch-und-computer.de/} for the year 2017. +% By offering this document class and an additional usage demonstration file (\texttt{mucproc\_demo.tex}) we want to offer an easy to use possibility to prepare conference contributions in \LaTeX. +% +% The goal of this document class is to create PDF-files which look like those created with the Word-template. +% Most of the contributions are still expected to be typeset in Word, that's why the \textsf{mucproc} class uses the historically grown formatting guidelines which have been created for Word-Users. +% Therefore the settings of this document class might not always be the typographically best. +% +% \section{Usage} +% A complete example of use can be found on the github repository for this project: \url{https://github.com/Blubu/mucproc/} +% +% \textsf{mucproc} already configures all features needed for the usually required elements of a contribution to the MuC-conference. It loads a bunch of packages to simplify this process. Though the Syntax of the document using this class doesn't differ from classic \LaTeX{} documents. +% +% \subsection{Class options} +% \DescribeMacro{\documentclass} +% Start your document by loading the \textsf{mucproc} class with an option for the document's main language. +% The class will expect either \texttt{ngerman} or \texttt{english} as main language. +% Otherwise an error message will be thrown. +% +% For the language settings this class uses the \textsf{babel} package and loads \textsf{csquotes} for context sensitive quotations. The language option will also be used to configure the bibliography. +% +% The other class option which can be used by authors is \texttt{anonymous=\textit{truth value}}. It activates the anonymous-mode which shall be used for the submission to the review process before a contribution may be accepted. +% This option disables the author-field for the title and the additional author information as will be described later. +% +% The third type of class option is not meant to be used by the authors themselves. +% It rather provides a possibility to force a document to be compiled in the final mode and enables some additional features of the document class. +% The option \texttt{forcefinal=\textit{truth value}} will be used for a recompilation process for the preparation of the final version for the publication process of the proceedings. +% It can be passed to the class via command line interface and will disable a manually set anonymous-mode. +% +% \subsection{Title creation} +% +% \DescribeMacro{\title} +% The |\title| command behaves identically to most popular document classes. There may be line breaks created with |\\| or |\newline| inside the argument. +% Other formatting macros shall not be used, since this argument is also used for the metadata of the final PDF-file. +% +% \DescribeMacro{\author} +% \DescribeMacro{\and} +% The |author| macro can also be used similar to standard \LaTeX{} documents. +% If the document has more than one author, the names shall be separated with |\and|. +% \DescribeMacro{\thanks} +% The |\thanks| command shall be used to add the corresponding institution. +% It can be used similar to the standard \LaTeX{} definition, though it also can process an optional argument. +% The optional argument takes a label to reference an institution of another author. +% This prevents multiple mention of institutions. +% \DescribeMacro{\thanksref} +% This macro is used to reference the labels set with the |\thanks| command. +% The implementation of the institution reference is very different from the usual label/ref mechanism. +% That's why the reference is only defined after the label was set. If the argument of |\thanksref| isn't a known Label an error will occur. +% +% \begin{verbatim} +% \author{John Doe\thanks[inst:1]{Institution 1}\and +% Jane Doe\thanks{Institution 2}\and +% John Doe II\thanksref{inst:1} +% \end{verbatim} +% In contrast to the standard classes, \textsf{mucproc} doesn't place the footnotes created by |\thanks| on the bottom of the page, they are positioned directly below the author field of the title. +% +% Other possible entries for the title (e.\,g. |\date|)are ignored. +% +% \DescribeMacro{\maketitle} The title has to be created by calling the |\maketitle| command as usual. +% +% \subsection{Additional author information} +% For the final version the authors of contributions have the possibility to add additional information about all authors. For this the \textsf{mucproc} class provides the |authoraddendum| environment. +% +% \DescribeEnv{authoraddendum} +% This environment can take up to 2 arguments, one optional containing the path to a corresponding photograph and a mandatory one for the Authors name. +% \begin{verbatim} +% \begin{authoraddendum}[john_doe.png]{Doe, John} +% Text describing the author. +% \end{authoraddendum} +% \end{verbatim} +% If the optional picture argument ist left empty the text will be typeset over the whole |\textwidth|, otherwise there will be a 3\,cm column on the left side containing the photograph. +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementation} +% This section contains the source code to the \textsf{mucproc.cls}. It will be tried to explain how the class breaks the tasks. +% \subsubsection{Compatibility mode} +% This document class intends to be compiled on as many different distributions as possible. Basically this class compiles on releases newer than 2014/05/01 without errors. +% Nevertheless some specific fallback tests require a the \textsf{expl3} package version of 2015/09/07 or newer. +% A compatibility mode test is implemented first and deactivates all problematic features of the class. +% \begin{macrocode} +\RequirePackage{expl3} +\ExplSyntaxOn +\bool_new:N \g_MUC@compatibility_mode +\@ifpackagelater{expl3}{2015/09/07}{ + \bool_gset_false:N \g_MUC@compatibility_mode +}{ + \msg_new:nnn {mucproc}{compatibility}{ + Your~ LaTeX-Distribution~ seems~ to~ be~ outdated.\\\\ + Enabling~ compatibility~ Mode.\\\\ + Some~ features~ won't~ be~ available. + } + \msg_warning:nn {mucproc}{compatibility} + \bool_gset_true:N \g_MUC@compatibility_mode +} + +\RequirePackage{xparse} +% \end{macrocode} +% The boolean |\g_MUC@compatibility_mode| is set true, if the \textsf{expl3} is older than required. +% \subsection{Class options} +% The key-value class options are implemented using the \textsf{scrbase} package defining a Family called \texttt{MUC}. +% \begin{macrocode} +\RequirePackage{scrbase} +\DefineFamily{MUC} +\DefineFamilyMember{MUC} +\bool_new:N \g_MUC@pdfa_bool +% \end{macrocode} +% The Options |anonymous| and |forcefinal| are implemented using the basic \textsf{scrbase} mechanism for boolean options: +% \begin{macrocode} +\FamilyBoolKey{MUC}{anonymous}{MUC@anonymous} +\FamilyBoolKey{MUC}{forcefinal}{MUC@final} +\FamilyBoolKey{MUC}{headline}{MUC@headline} +\FamilyBoolKey{MUC}{copyrightinfo}{MUC@copyrightinfo} +\FamilyBoolKey{MUC}{pagestyle}{MUC@pagestyle} +% \end{macrocode} +% Set up the default boolean values before processing options. +% \begin{macrocode} +\MUC@headlinetrue +\MUC@copyrightinfotrue +\MUC@pagestyletrue + +\FamilyProcessOptions{MUC} +% \end{macrocode} +% The |pagestyle| settings can be disabled if |headline| and |copyrightinfo| are set false. +% \begin{macrocode} +\ifMUC@headline +\else + \ifMUC@copyrightinfo + \else + \MUC@pagestylefalse + \fi +\fi +% \end{macrocode} +% If the |forcefinal| option is set, all global options containing the substring ``draft'' or both of the substrings``final'' and ``false'' are removed to avoid any global draft mode. +% \begin{macrocode} +\ifMUC@final + \bool_if:NTF \g_MUC@compatibility_mode { + \msg_new:nnn {mucproc} {compatibility-final-error} { + forcefinal~ is~ not~ possible~ in~ compatibility~ mode.\\\\ + Update~ your~ TeX~ distribution~ and retry!} + \msg_error:nn {mucproc} {compatibility-final-error} + + }{ + \sys_if_engine_luatex:F { + \msg_new:nnn {mucproc} {luatex-required} { + forcefinal~ requires~ LuaLaTeX~ for~ correct~ PDF/A~ output.\\\\ + Remove~ forcefinal~ option~ or~ change~ the~ compiler. + } + \msg_error:nn {mucproc} {luatex-required} + } + \clist_new:N \l_MUC@globalopts_clist + + \msg_new:nnn {mucproc} {force-final} { + forcefinal~ option~ is~ enabled.\\\\ + Ignoring~ all~ global~ complementary~ options.} + \msg_warning:nn {mucproc} {force-final} + \msg_new:nnn {mucproc} {remove-draft}{ + forcefinal~ enabled:~ The~ global~ Option~ #1~ is~ ignored,~ + because~ it~ seems~ to~ activate draft~ mode!} + + \exp_args:Nx \clist_map_inline:nn {\@classoptionslist} { + \tl_if_in:nnTF {#1} {draft} + {\msg_warning:nnx {mucproc} {remove-draft} {#1}} + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + \tl_if_in:nnTF {#1} {final} + {\tl_if_in:nnTF {#1} {false} + {\msg_warning:nnx {mucproc} {remove-draft} {#1}} + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + } + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + } + + + \edef\@classoptionslist{\clist_use:Nn \l_MUC@globalopts_clist {,}} +% \end{macrocode} +% Additionally enable PDF/A-mode and metadata generation and disable anonymization. +% \begin{macrocode} + \bool_gset_true:N \g_MUC@pdfa_bool + \MUC@anonymousfalse + } +\fi +% \end{macrocode} +% \subsection{Basic Setup} + + + + +% The next step is loading \textsf{scrartcl} as base class. According to the formatting rules we pass some options and use the \texttt{mucfontsize10pt.clo} file for setting up the font sizes. +% \begin{macrocode} +\newcommand*{\@fontsizefilebase}{mucfontsize} +\PassOptionsToClass{abstract=true,parskip=full,fontsize=10pt, + twoside=semi}{scrartcl} +\LoadClass{scrartcl} +\setparsizes{0pt}{7pt plus 7 pt}{1em plus 1 fill} +\raggedbottom +% \end{macrocode} +% +% Now the other required packages can be loaded. +% \begin{macrocode} +\RequirePackage{graphicx} +\RequirePackage{babel} +\PassOptionsToPackage{babel}{csquotes} +\bbl@frenchspacing +\RequirePackage{csquotes} + +\RequirePackage{geometry}% setup margins +\geometry{paper=a4paper,top=4.8cm, bottom=5.7cm,left=3.8cm,right=4cm, + head=12.045pt,headsep=\dimexpr1cm-12.045pt\relax} +% \end{macrocode} + +% \subsection{Bibliography setup} +% The bibliography will be created using \textsf{biblatex} with \textsf{biber} as backend. +% \begin{macrocode} +\PassOptionsToPackage{backend=biber}{biblatex} +\PassOptionsToPackage{citestyle=authoryear-comp}{biblatex} +\PassOptionsToPackage{bibstyle=apa}{biblatex} +\RequirePackage{biblatex} +% \end{macrocode} +% The APA-style requires a Language mapping. It is set for both supported main languages. +% \begin{macrocode} +\DeclareLanguageMapping{american}{american-apa} +\DeclareLanguageMapping{ngerman}{ngerman-apa} +% \end{macrocode} +% Set up additional Settings to get an equal output, like the Word-version. +% \begin{macrocode} +\renewcaptionname{ngerman}{\refname}{Literaturverzeichnis} + +\renewcommand*{\nameyeardelim}{\addcomma\space} +% \end{macrocode} +% +% \subsection{Font Choice} +% The formatting guidelines request Times New Roman as font. Since on most operating systems it is installed as a system font. +% We check if it is present and the currently used compiler supports the \textsf{fontspec} package. +% \begin{macrocode} +\bool_new:N \g_MUC@fontspec_bool +% \end{macrocode} +% These tests basically use the \textsf{expl3} methods, but also a fallback for older distributions is implemented to support older distributions. First we implement the compatibility-version. +% \begin{macrocode} +\bool_if:NTF \g_MUC@compatibility_mode { +% \end{macrocode} +% To test if PDF\TeX{} is used, we check if |\pdfmatch| is defined. +% \begin{macrocode} + \expandafter\ifx\csname pdfmatch\endcsname\relax + \else + \PassOptionsToPackage{utf8}{inputenc} + \RequirePackage{inputenc} + \fi + \bool_gset_false:N \g_MUC@fontspec_bool +% \end{macrocode} +% Next step is the mechanism to check if the used compiler supports \textsf{fontspec}. +% \begin{macrocode} +}{ + \sys_if_engine_luatex:TF { + \bool_gset_true:N \g_MUC@fontspec_bool + }{ + \sys_if_engine_xetex:TF{ + \bool_gset_true:N \g_MUC@fontspec_bool + }{ + \sys_if_engine_pdftex:T { + \bool_gset_false:N \g_MUC@fontspec_bool + \PassOptionsToPackage{utf8}{inputenc} + \RequirePackage{inputenc} + } + } + } +} +% \end{macrocode} +% The font fallback is saved in a macro. This prevents the code to be written twice. It is executed when either \textsc{fontspec} is not supported or Times New Roman isn't installed. +% \begin{macrocode} +\cs_new:Nn \MUC@font_Fallback: { + \PassOptionsToPackage{T1}{fontenc} + \RequirePackage{fontenc} + \IfFileExists{txfonts.sty}{\RequirePackage{txfonts}}{} +} + +\if_bool:N \g_MUC@fontspec_bool + \RequirePackage{fontspec} +\fontspec_font_if_exist:nTF {Times~ New~ Roman} + {\setmainfont{Times~ New~ Roman}} + {\MUC@font_Fallback:} +\else: + \MUC@font_Fallback: +\fi: +% \end{macrocode} + +% \subsection{PDF/A-mode and metadata creation} +% The PDF archiving mode is created using the \textsf{pdfx} package. For the correct creation the PDF/A format and the \texttt{.xmpdata} file for metadata specific system settings may be required. +% Therefore this mode is only active if the |forcefinal| mode is enabled. +% \begin{macrocode} +\if_bool:N \g_MUC@pdfa_bool + \PassOptionsToPackage{a-1b}{pdfx} + \RequirePackage{pdfx} + \hypersetup{hidelinks} + \iow_new:N \MUC@xmpdata_stream + \iow_open:Nn \MUC@xmpdata_stream {\jobname.xmpdata} + \tl_new:N \g_MUC@xmp_title + \tl_new:N \g_MUC@xmp_author + + \newcommand*{\MUC@passTitleData}{ + \begingroup + \def\newline{} + \def\\{} + \xdef\MUC@author{\@author} + \xdef\MUC@title{\@title} + \cs_set:Npn \and {\exp_not:n {\exp_not:N \sep}} + \tl_gset:Nx \g_MUC@xmp_title {\@title} + \tl_gset:Nx \g_MUC@xmp_author {\@author} + \endgroup + \iow_now:Nx \MUC@xmpdata_stream + { + \exp_not:N \Title{\tl_use:N \g_MUC@xmp_title} + ^^J + \exp_not:N \Author{\tl_use:N \g_MUC@xmp_author} + ^^J + \exp_not:N \Org{Mensch~ und~ Computer~ 2017} + } + } +% \end{macrocode} +% If no PDF/A shall be created, the |\maketitle| data will only be passed to the headline. +% \begin{macrocode} +\else: + \msg_new:nnn {mucproc} {no-pdfa}{The~ mucproc~ class~ won't~ create~ PDF/A-mode.} + \msg_info:nn {mucproc} {no-pdfa} + \newcommand*{\MUC@passTitleData}{ + \begingroup + \def\newline{} + \def\\{} + \xdef\MUC@author{\@author} + \xdef\MUC@title{\@title} + \endgroup + } +\fi: +% \end{macrocode} +% +% \section{Title creation} +% The title creation process also invokes the mechanism to pass the title data to headline and metadata. +% It can be initialized calling |\maketitle|. +% \subsection{Institution footnotes} +% The MuC formatting guidelines request the institutions typeset similar to footnotes, though they shouldn't be placed at the bottom of the page. +% The standard footnote mechanism is quite complicated, though we use the \LaTeX3 clist datatype to create a special mechanism implementing these ``footnotes''. +% The mechanism is called inside |\maketitle| but created outside of that macro definition to leave the code more readable. +% +% All Arguments of the |\thanks| command will be saved in the comma list called |\l_MUC@thanks_clist|. +% \begin{macrocode} +\clist_new:N \l_MUC@thanks_clist +% \end{macrocode} +% The value of the footnote counter has to be expanded when the |\thanks| macro is called. Otherwise the footnotemarks might not match. +% To achieve this expansion order the |\MUC@thanks:nn| command takes the counter value as first argument and the institution name as second. +% \begin{macrocode} +\cs_set:Nn \MUC@thanks:nn { + \clist_gput_right:Nn \l_MUC@thanks_clist + {{#2\def\@thefnmark{#1}\@makefnmark} + }} +% \end{macrocode} +% Inside the real |\thanks| macro the first argument will be expanded directly. +% Additionally |\MUC@thanks| sets its own first (optional) argument as a label for the property list |\g_MUC@InstRef_prof|. +% This allows the footnote counter value to be accessed through the label. +% \begin{macrocode} +\bool_if:NTF \g_MUC@compatibility_mode +{\NewDocumentCommand{\MUC@thanks}{om}{ + \footnotemark% + \exp_args:Nx \MUC@thanks:nn {\thefootnote}{#2} + } +}{ +\NewDocumentCommand{\MUC@thanks}{om}{ + \footnotemark% + \IfNoValueF{#1}{ + \prop_if_exist:NF \g_MUC@InstRef_prop { + \prop_new:N \g_MUC@InstRef_prop} + \prop_put:Nnx \g_MUC@InstRef_prop {#1} {\thefootnote} + } + \exp_args:Nx \MUC@thanks:nn {\thefootnote}{#2} + } +} +% \end{macrocode} +% The mechanism seems to work like the typical \LaTeX{} label/ref though no backref is supported. +% To inform the user about this an error will be thrown when a label is accessed which does not exist. +% \begin{macrocode} +\bool_if:NTF \g_MUC@compatibility_mode { +\msg_new:nnn {mucproc} {thanksref-unavailable} { + Compatibilty~ mode~ enabled.\\\\ + The~ institution~ reference~ mechanism~ is~ not available.\\\\ + Update~ Your~ TeX~ distribution~ to~ be~ able~ + to~ use~ this~ feature. + } +\msg_warning:nn {mucproc} {thanksref-unavailable} + \newcommand\MUC@thanksref[1]{$\dagger$} +}{ +\msg_new:nnn {mucproc} {thanks-label-missing} { + No~ institute~ labeled~ '#1'.\\\\ + Add~ a~ label~ using~ the~ optional~ argument~ + of~ the~ \thanks~ command. + } + +\NewDocumentCommand\MUC@thanksref{m}{ + \prop_if_in:NnTF \g_MUC@InstRef_prop {#1} { + \def\@thefnmark{\prop_item:Nn \g_MUC@InstRef_prop {#1}}% + \@makefnmark + } + {\msg_error:nn {mucproc} {thanks-label-missing}} +} +} +% \end{macrocode} +% After the title has been set, the institutional notes shall be typeset. +% \begin{macrocode} +\newcommand*\typeset@MUC@thanks { + \clist_use:Nn \l_MUC@thanks_clist {\rule{0pt}{0pt}\\}} +% \end{macrocode} +% \subsection{Typesetting the title} +% As written before, |\maketitle| has to execute additional jobs. +% Since the title fields also can contain other macros or even line breaks, the expansion process has to be controlled carefully. +% \begin{macrocode} +\renewcommand*{\maketitle}{ +\begingroup +% \end{macrocode} +% Before passing the data to the headlines or metadata using the earlier defined |\MUC@passTitleData| we need some redefinitions for the commands, which can be used inside the title fields. +% \begin{macrocode} +\DeclareExpandableDocumentCommand{\thanks}{om}{} +\def\thanksref##1{} +\def\and{\unskip,~\ignorespaces} +\MUC@passTitleData +% \end{macrocode} +% Not the actual title creation begins redefining the user macros to those prepared for that purpose. +% \begin{macrocode} +\let\titlepage@restore\relax +\renewcommand*\thefootnote{\@arabic\c@footnote} +\let\thanks\MUC@thanks +\let\thanksref\MUC@thanksref +% \end{macrocode} +% Now only the title fields have to be typeset. +% \begin{macrocode} +\global\@topnum=\z@ +\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +\null +\vskip 41pt + {\usekomafont{title}{\Huge \@title \par}}% + {\ifx\@subtitle\@empty\else\vskip .5em\usekomafont{subtitle}% + \Large\@subtitle\par\fi}% + \vskip 7pt + {% + \usekomafont{author}{% + \lineskip .5em% + \@author + \par + }% + }% +\par +\vskip 8pt +\bool_if:NTF \g_MUC@compatibility_mode + {\thispagestyle{empty}} + {\thispagestyle{MUC@titlepagestyle}} +\typeset@MUC@thanks +\par +\vspace{8pt} +\endgroup +\setcounter{footnote}{0}% +\global\let\and\relax +\global\let\thanksref\relax +} +% \end{macrocode} + +% \subsection{Anonymization and additional author information} +% The anonymization is realized checking the setting using the corresponding if-expression. +% The |\@author| information to the language dependent meaning of |\MUCanonymousauthor|. +% \begin{macrocode} +\newcaptionname{ngerman}{\MUCanonymousauthor}{Anonymisierte Fassung} +\newcaptionname{english}{\MUCanonymousauthor}{anonymous version} +\ifMUC@anonymous + \def\@author{\MUCanonymousauthor} + \def\author#1\relax +% \end{macrocode} +% The |authoraddendum| environment shall create no output, if the anonymous mode is active. +% \begin{macrocode} + \RequirePackage{comment} + \excludecomment{authoraddendum} +\else +% \end{macrocode} +% \begin{environment}{authoraddendum} +% The Implementation works via the typical xparse mechanisms. +% \begin{macrocode} + \NewDocumentEnvironment{authoraddendum}{d<>om}{ + \par + \IfNoValueTF{#2}{ + {\usekomafont{authoraddendum}#3}\par\medskip + }{ + \begin{minipage}[t]{3cm} + \vspace{0pt} + \IfNoValueTF{#1}{ + \includegraphics[width=\linewidth]{#2} + }{ + \includegraphics[#1]{#2} + } + \end{minipage}\hspace{.5cm}% + \begin{minipage}[t]{\dimexpr\linewidth-3.5cm\relax} + \vspace{0pt} + {\usekomafont{authoraddendum}#3}\par\medskip% + } + \usekomafont{authoraddendum} + }{ + \IfNoValueF{#2}{\end{minipage}} + \par + } +\fi +% \end{macrocode} +% \end{environment} +% +% + +% \subsection{Visible adjustment of sizes and spacing} +% To match the Word template we have to adjust a bunch of spacing settings as well as font sizes. The easiest way to achieve this is using the KOMA-Script mechanisms. +% \subsection{Structure Settings} +% Word indents the section headings independent from the width of the section number. To achieve this a macro called |\MUC@sectionnumberbox| is created and all section formats are redefined. +% In compatibility mode these settings will be ignored. +% \begin{macrocode} +\reverse_if:N \if_bool:N \g_MUC@compatibility_mode +\newcommand*{\MUC@sectionnumberbox}[1]{\makebox[28bp][l]{#1\autodot}} +\renewcommand*{\sectionformat}{ + \MUC@sectionnumberbox{\thesection}} +\renewcommand*{\subsectionformat}{ + \MUC@sectionnumberbox{\thesubsection}} +\renewcommand*{\subsubsectionformat}{ + \MUC@sectionnumberbox{\thesubsubsection}} +% \end{macrocode} +% The spacing around the headings also has to be adjusted: +% \begin{macrocode} +\RedeclareSectionCommand[afterskip=1.5ex plus .2ex,% + beforeskip=-3.6ex plus -1ex minus -.2ex]{section} +\RedeclareSectionCommand[afterskip=.5ex plus .2ex,% + beforeskip=-1ex plus -1ex minus -.2ex]{subsection} +\RedeclareSectionCommand[afterskip=.5ex plus .2ex,% + beforeskip=-1ex plus -1ex minus -.2ex]{subsubsection} +\RedeclareSectionCommand[afterskip=1em,% + beforeskip=1ex plus 1ex minus .2ex]{paragraph} +\RedeclareSectionCommand[afterskip=1em,% + beforeskip=1ex plus 1ex minus .2ex]{subparagraph} +\fi: +\ExplSyntaxOff +% \end{macrocode} +% The font settings will be done together with all other font settings in the next subsection. +% +% \subsection{Font Settings} +% Adjusting the font settings to match the Word version: +% \begin{macrocode} +\setkomafont{disposition}{} +\setkomafont{title}{} +\setkomafont{author}{\large} +\setkomafont{section}{\LARGE} +\setkomafont{subsection}{\Large} +\setkomafont{caption}{\footnotesize\itshape} +\setkomafont{captionlabel}{\usekomafont{caption}} +\newkomafont{abstractcontent}{\small} +\newkomafont{abstract}{\normalsize\bfseries} +\newkomafont{authoraddendum}{\small} +% \end{macrocode} +% +% \subsection{Abstract} +% The |abstract| environment is redefined to match the Word version. +% \begin{macrocode} +\renewenvironment{abstract}{% + \setparsizes{0pt}{4pt}{0pt plus 1 fill}{% + \usekomafont{abstract}% + \abstractname}\par% + \usekomafont{abstractcontent}}{} +% \end{macrocode} + +% \subsection{Pagestyle} +% The demo document shows a headline containing author and document title. To achieve this that information was passed inside the |\maketitle| macro and saved in the |\MUC@author| and |\MUC@title| macros. +% There is also a possibility to set a copyright-information box similar to the Word template. +% \begin{macrocode} +\ifMUC@pagestyle + \PassOptionsToPackage{headsepline}{scrlayer-scrpage} + \RequirePackage{scrlayer-scrpage} + \ifMUC@copyrightinfo +% \end{macrocode} +% Nowadays it is possible to write the complete content for the scrlayers directly inside the definition. +% To support older distributions as well the content is wrapped into a box. +% The most absolute length values have been extracted from different measurements to match the Word version. +% \begin{macrocode} + \newsavebox\MUC@copyrightbox + \begin{lrbox}{\MUC@copyrightbox} + \setlength{\fboxrule}{.7bp}% + \setlength{\fboxsep}{6.5pt}% + \fbox{\hspace*{.8pt}\parbox[t][\dimexpr2cm-2\fboxsep + -2\fboxrule\relax][t]{% + \dimexpr\textwidth-2\fboxsep-2\fboxrule% + -1.6pt\relax}{% + Platzhalter für DOI und ggf. Copyright Text. + (Bitte nicht entfernen).\par + \vspace{7pt} + Name, Vorname (2017): Titel.% + Tagungsband Mensch und Computer 2017. + Gesellschaft für Informatik.% + DOI: xxxxxx}% + } + \end{lrbox} + \DeclareNewLayer[align=tl,area={\dimexpr 1in + + \hoffset + \oddsidemargin\relax}{% + \dimexpr\paperheight-3.9cm\relax}{\textwidth}{2cm}, + contents={\usebox\MUC@copyrightbox}]{copyright} + \DeclareNewPageStyleByLayers{MUC@titlepagestyle}{copyright} + \else + \DeclareNewPageStyleAlias{MUC@titlepagestyle}{empty} + \fi + \clearpairofpagestyles + \ifMUC@headline + \lohead{\MUC@title} + \rehead{\csname MUC@author\endcsname} + \fi + \setkomafont{pagehead}{\normalfont} + \setkomafont{pagefoot}{} +\fi +% \end{macrocode} +%\iffalse +% +%<*font-clo> +\ProvidesFile{mucfontsize10pt.clo}[2017/01/30 v1.0 mucproc font size class option (10pt)] + +\def\normalsize{% + \@setfontsize\normalsize{10}{12bp} + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI +} +\def\small{% + \@setfontsize\small{9bp}{12bp}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\def\footnotesize{% + \@setfontsize\footnotesize{\dimexpr18bp-10pt\relax}{\dimexpr21.6bp-12pt\relax}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\def\scriptsize{\@setfontsize\scriptsize{7}{8}} +\def\tiny{\@setfontsize\tiny{5}{6}} +\def\large{\@setfontsize\large{12bp}{14.4bp}} +\def\Large{\@setfontsize\Large{14bp}{18}} +\def\LARGE{\@setfontsize\LARGE{\dimexpr10pt + 6bp\relax}{\dimexpr12pt+7,2bp\relax}} +\def\huge{\@setfontsize\huge{20}{24}} +\def\Huge{\@setfontsize\Huge{24bp}{30}} +\normalsize +\setlength\footnotesep {6.65\p@} +\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +% +%\fi +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/mucproc/mucproc.ins b/Master/texmf-dist/source/latex/mucproc/mucproc.ins new file mode 100644 index 00000000000..e30a4c6c8ca --- /dev/null +++ b/Master/texmf-dist/source/latex/mucproc/mucproc.ins @@ -0,0 +1,70 @@ +%% Copyright (C) 2017 by Marei Peischl +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% 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.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Marei Peischl. +%% +%% This work consists of the files mucproc.dtx and mucproc.ins +%% and the derived files mucproc.cls and mucfontsize10pt.clo. +%% + +\input docstrip.tex +\keepsilent + +\preamble + +This is a generated file. + +Copyright (C) 2017 by Marei Peischl + +This file may be distributed and/or modified under the conditions of +the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version +2005/12/01 or later. + +\endpreamble +\askforoverwritefalse + +\usedir{tex/latex/mucproc} + +\generate{\file{mucproc.cls}{\from{mucproc.dtx}{class}}} + +\preamble + +This is a generated file. + +Copyright (C) 2017 by Marei Peischl + +It is based on a file generated with +scrfontsizes 2017/01/03 v3.22.2571 KOMA-Script package (font size file generator), +Copyright (c) Markus Kohm. + +This file may be distributed and/or modified under the conditions of +the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version +2005/12/01 or later. + +\endpreamble + +\generate{\file{mucfontsize10pt.clo}{\from{mucproc.dtx}{font-clo}}} + + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/mucproc/mucfontsize10pt.clo b/Master/texmf-dist/tex/latex/mucproc/mucfontsize10pt.clo new file mode 100644 index 00000000000..2c4a509234d --- /dev/null +++ b/Master/texmf-dist/tex/latex/mucproc/mucfontsize10pt.clo @@ -0,0 +1,110 @@ +%% +%% This is file `mucfontsize10pt.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mucproc.dtx (with options: `font-clo') +%% +%% This is a generated file. +%% +%% Copyright (C) 2017 by Marei Peischl +%% +%% It is based on a file generated with +%% scrfontsizes 2017/01/03 v3.22.2571 KOMA-Script package (font size file generator), +%% Copyright (c) Markus Kohm. +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version +%% 2005/12/01 or later. +%% +\ProvidesFile{mucfontsize10pt.clo}[2017/01/30 v1.0 mucproc font size class option (10pt)] + +\def\normalsize{% + \@setfontsize\normalsize{10}{12bp} + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI +} +\def\small{% + \@setfontsize\small{9bp}{12bp}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\def\footnotesize{% + \@setfontsize\footnotesize{\dimexpr18bp-10pt\relax}{\dimexpr21.6bp-12pt\relax}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\def\scriptsize{\@setfontsize\scriptsize{7}{8}} +\def\tiny{\@setfontsize\tiny{5}{6}} +\def\large{\@setfontsize\large{12bp}{14.4bp}} +\def\Large{\@setfontsize\Large{14bp}{18}} +\def\LARGE{\@setfontsize\LARGE{\dimexpr10pt + 6bp\relax}{\dimexpr12pt+7,2bp\relax}} +\def\huge{\@setfontsize\huge{20}{24}} +\def\Huge{\@setfontsize\Huge{24bp}{30}} +\normalsize +\setlength\footnotesep {6.65\p@} +\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop {0\p@ \@plus 1fil} +\setlength\@fpsep {8\p@ \@plus 2fil} +\setlength\@fpbot {0\p@ \@plus 1fil} +\setlength\@dblfptop {0\p@ \@plus 1fil} +\setlength\@dblfpsep {8\p@ \@plus 2fil} +\setlength\@dblfpbot {0\p@ \@plus 1fil} +\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `mucfontsize10pt.clo'. diff --git a/Master/texmf-dist/tex/latex/mucproc/mucproc.cls b/Master/texmf-dist/tex/latex/mucproc/mucproc.cls new file mode 100644 index 00000000000..bd2c6645170 --- /dev/null +++ b/Master/texmf-dist/tex/latex/mucproc/mucproc.cls @@ -0,0 +1,404 @@ +%% +%% This is file `mucproc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mucproc.dtx (with options: `class') +%% +%% This is a generated file. +%% +%% Copyright (C) 2017 by Marei Peischl +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3 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.3 or later is part of all distributions of LaTeX version +%% 2005/12/01 or later. +%% +\def\mucprocVersion{1.0} + +\NeedsTeXFormat{LaTeX2e}[2014/05/01] +\ProvidesClass{mucproc} + [2017/02/20 v\mucprocVersion\ conference proceedings for the German MuC-conference] +\RequirePackage{expl3} +\ExplSyntaxOn +\bool_new:N \g_MUC@compatibility_mode +\@ifpackagelater{expl3}{2015/09/07}{ +\bool_gset_false:N \g_MUC@compatibility_mode +}{ +\msg_new:nnn {mucproc}{compatibility}{ + Your~ LaTeX-Distribution~ seems~ to~ be~ outdated.\\\\ + Enabling~ compatibility~ Mode.\\\\ + Some~ features~ won't~ be~ available. + } + \msg_warning:nn {mucproc}{compatibility} +\bool_gset_true:N \g_MUC@compatibility_mode +} + +\RequirePackage{xparse} +\RequirePackage{scrbase} +\DefineFamily{MUC} +\DefineFamilyMember{MUC} +\bool_new:N \g_MUC@pdfa_bool +\FamilyBoolKey{MUC}{anonymous}{MUC@anonymous} +\FamilyBoolKey{MUC}{forcefinal}{MUC@final} +\FamilyBoolKey{MUC}{headline}{MUC@headline} +\FamilyBoolKey{MUC}{copyrightinfo}{MUC@copyrightinfo} +\FamilyBoolKey{MUC}{pagestyle}{MUC@pagestyle} +\MUC@headlinetrue +\MUC@copyrightinfotrue +\MUC@pagestyletrue + +\FamilyProcessOptions{MUC} +\ifMUC@headline +\else + \ifMUC@copyrightinfo + \else + \MUC@pagestylefalse + \fi +\fi +\ifMUC@final + \bool_if:NTF \g_MUC@compatibility_mode { + \msg_new:nnn {mucproc} {compatibility-final-error} { + forcefinal~ is~ not~ possible~ in~ compatibility~ mode.\\\\ + Update~ your~ TeX~ distribution~ and retry!} + \msg_error:nn {mucproc} {compatibility-final-error} + + }{ + \sys_if_engine_luatex:F { + \msg_new:nnn {mucproc} {luatex-required} { + forcefinal~ requires~ LuaLaTeX~ for~ correct~ PDF/A~ output.\\\\ + Remove~ forcefinal~ option~ or~ change~ the~ compiler. + } + \msg_error:nn {mucproc} {luatex-required} + } + \clist_new:N \l_MUC@globalopts_clist + + \msg_new:nnn {mucproc} {force-final} { + forcefinal~ option~ is~ enabled.\\\\ + Ignoring~ all~ global~ complementary~ options.} + \msg_warning:nn {mucproc} {force-final} + \msg_new:nnn {mucproc} {remove-draft}{ + forcefinal~ enabled:~ The~ global~ Option~ #1~ is~ ignored,~ + because~ it~ seems~ to~ activate draft~ mode!} + + \exp_args:Nx \clist_map_inline:nn {\@classoptionslist} { + \tl_if_in:nnTF {#1} {draft} + {\msg_warning:nnx {mucproc} {remove-draft} {#1}} + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + \tl_if_in:nnTF {#1} {final} + {\tl_if_in:nnTF {#1} {false} + {\msg_warning:nnx {mucproc} {remove-draft} {#1}} + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + } + {\clist_put_right:Nn \l_MUC@globalopts_clist {#1}} + } + + \edef\@classoptionslist{\clist_use:Nn \l_MUC@globalopts_clist {,}} + \bool_gset_true:N \g_MUC@pdfa_bool + \MUC@anonymousfalse + } +\fi + +\newcommand*{\@fontsizefilebase}{mucfontsize} +\PassOptionsToClass{abstract=true,parskip=full,fontsize=10pt, + twoside=semi}{scrartcl} +\LoadClass{scrartcl} +\setparsizes{0pt}{7pt plus 7 pt}{1em plus 1 fill} +\raggedbottom +\RequirePackage{graphicx} +\RequirePackage{babel} +\PassOptionsToPackage{babel}{csquotes} +\bbl@frenchspacing +\RequirePackage{csquotes} + +\RequirePackage{geometry}% setup margins +\geometry{paper=a4paper,top=4.8cm, bottom=5.7cm,left=3.8cm,right=4cm, + head=12.045pt,headsep=\dimexpr1cm-12.045pt\relax} + +\PassOptionsToPackage{backend=biber}{biblatex} +\PassOptionsToPackage{citestyle=authoryear-comp}{biblatex} +\PassOptionsToPackage{bibstyle=apa}{biblatex} +\RequirePackage{biblatex} +\DeclareLanguageMapping{american}{american-apa} +\DeclareLanguageMapping{ngerman}{ngerman-apa} +\renewcaptionname{ngerman}{\refname}{Literaturverzeichnis} + +\renewcommand*{\nameyeardelim}{\addcomma\space} +\bool_new:N \g_MUC@fontspec_bool +\bool_if:NTF \g_MUC@compatibility_mode { +\expandafter\ifx\csname pdfmatch\endcsname\relax + \else + \PassOptionsToPackage{utf8}{inputenc} + \RequirePackage{inputenc} +\fi + \bool_gset_false:N \g_MUC@fontspec_bool +}{ +\sys_if_engine_luatex:TF { + \bool_gset_true:N \g_MUC@fontspec_bool + }{ + \sys_if_engine_xetex:TF{ + \bool_gset_true:N \g_MUC@fontspec_bool + }{ + \sys_if_engine_pdftex:T { + \bool_gset_false:N \g_MUC@fontspec_bool + \PassOptionsToPackage{utf8}{inputenc} + \RequirePackage{inputenc} + } + } + } +} +\cs_new:Nn \MUC@font_Fallback: { +\PassOptionsToPackage{T1}{fontenc} +\RequirePackage{fontenc} + \IfFileExists{txfonts.sty}{\RequirePackage{txfonts}}{} +} + +\if_bool:N \g_MUC@fontspec_bool +\RequirePackage{fontspec} +\fontspec_font_if_exist:nTF {Times~ New~ Roman} + {\setmainfont{Times~ New~ Roman}} +{\MUC@font_Fallback:} +\else: +\MUC@font_Fallback: +\fi: + +\if_bool:N \g_MUC@pdfa_bool + \PassOptionsToPackage{a-1b}{pdfx} + \RequirePackage{pdfx} + \hypersetup{hidelinks} + \iow_new:N \MUC@xmpdata_stream + \iow_open:Nn \MUC@xmpdata_stream {\jobname.xmpdata} + \tl_new:N \g_MUC@xmp_title + \tl_new:N \g_MUC@xmp_author + + \newcommand*{\MUC@passTitleData}{ + \begingroup + \def\newline{} + \def\\{} + \xdef\MUC@author{\@author} + \xdef\MUC@title{\@title} + \cs_set:Npn \and {\exp_not:n {\exp_not:N \sep}} + \tl_gset:Nx \g_MUC@xmp_title {\@title} + \tl_gset:Nx \g_MUC@xmp_author {\@author} + \endgroup + \iow_now:Nx \MUC@xmpdata_stream + { + \exp_not:N \Title{\tl_use:N \g_MUC@xmp_title} + ^^J + \exp_not:N \Author{\tl_use:N \g_MUC@xmp_author} + ^^J + \exp_not:N \Org{Mensch~ und~ Computer~ 2017} + } + } +\else: + \msg_new:nnn {mucproc} {no-pdfa}{The~ mucproc~ class~ won't~ create~ PDF/A-mode.} + \msg_info:nn {mucproc} {no-pdfa} + \newcommand*{\MUC@passTitleData}{ + \begingroup + \def\newline{} + \def\\{} + \xdef\MUC@author{\@author} + \xdef\MUC@title{\@title} + \endgroup + } +\fi: +\clist_new:N \l_MUC@thanks_clist +\cs_set:Nn \MUC@thanks:nn { + \clist_gput_right:Nn \l_MUC@thanks_clist + {{#2\def\@thefnmark{#1}\@makefnmark} + }} +\bool_if:NTF \g_MUC@compatibility_mode +{\NewDocumentCommand{\MUC@thanks}{om}{ + \footnotemark% + \exp_args:Nx \MUC@thanks:nn {\thefootnote}{#2} + } +}{ +\NewDocumentCommand{\MUC@thanks}{om}{ + \footnotemark% + \IfNoValueF{#1}{ + \prop_if_exist:NF \g_MUC@InstRef_prop { + \prop_new:N \g_MUC@InstRef_prop} + \prop_put:Nnx \g_MUC@InstRef_prop {#1} {\thefootnote} + } + \exp_args:Nx \MUC@thanks:nn {\thefootnote}{#2} + } +} +\bool_if:NTF \g_MUC@compatibility_mode { +\msg_new:nnn {mucproc} {thanksref-unavailable} { + Compatibilty~ mode~ enabled.\\\\ + The~ institution~ reference~ mechanism~ is~ not available.\\\\ + Update~ Your~ TeX~ distribution~ to~ be~ able~ + to~ use~ this~ feature. + } +\msg_warning:nn {mucproc} {thanksref-unavailable} + \newcommand\MUC@thanksref[1]{$\dagger$} +}{ +\msg_new:nnn {mucproc} {thanks-label-missing} { + No~ institute~ labeled~ '#1'.\\\\ + Add~ a~ label~ using~ the~ optional~ argument~ + of~ the~ \thanks~ command. + } + +\NewDocumentCommand\MUC@thanksref{m}{ + \prop_if_in:NnTF \g_MUC@InstRef_prop {#1} { + \def\@thefnmark{\prop_item:Nn \g_MUC@InstRef_prop {#1}}% + \@makefnmark + } + {\msg_error:nn {mucproc} {thanks-label-missing}} +} +} +\newcommand*\typeset@MUC@thanks { + \clist_use:Nn \l_MUC@thanks_clist {\rule{0pt}{0pt}\\}} +\renewcommand*{\maketitle}{ +\begingroup +\DeclareExpandableDocumentCommand{\thanks}{om}{} +\def\thanksref##1{} +\def\and{\unskip,~\ignorespaces} +\MUC@passTitleData +\let\titlepage@restore\relax +\renewcommand*\thefootnote{\@arabic\c@footnote} +\let\thanks\MUC@thanks +\let\thanksref\MUC@thanksref +\global\@topnum=\z@ +\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative +\null +\vskip 41pt +{\usekomafont{title}{\Huge \@title \par}}% + {\ifx\@subtitle\@empty\else\vskip .5em\usekomafont{subtitle}% + \Large\@subtitle\par\fi}% + \vskip 7pt +{% +\usekomafont{author}{% +\lineskip .5em% +\@author +\par +}% +}% +\par +\vskip 8pt +\bool_if:NTF \g_MUC@compatibility_mode + {\thispagestyle{empty}} + {\thispagestyle{MUC@titlepagestyle}} +\typeset@MUC@thanks +\par +\vspace{8pt} +\endgroup +\setcounter{footnote}{0}% +\global\let\and\relax +\global\let\thanksref\relax +} + +\newcaptionname{ngerman}{\MUCanonymousauthor}{Anonymisierte Fassung} +\newcaptionname{english}{\MUCanonymousauthor}{anonymous version} +\ifMUC@anonymous + \def\@author{\MUCanonymousauthor} + \def\author#1\relax + \RequirePackage{comment} + \excludecomment{authoraddendum} +\else + \NewDocumentEnvironment{authoraddendum}{d<>om}{ + \par + \IfNoValueTF{#2}{ + {\usekomafont{authoraddendum}#3}\par\medskip + }{ + \begin{minipage}[t]{3cm} + \vspace{0pt} + \IfNoValueTF{#1}{ + \includegraphics[width=\linewidth]{#2} + }{ + \includegraphics[#1]{#2} + } + \end{minipage}\hspace{.5cm}% + \begin{minipage}[t]{\dimexpr\linewidth-3.5cm\relax} + \vspace{0pt} + {\usekomafont{authoraddendum}#3}\par\medskip% + } + \usekomafont{authoraddendum} + }{ + \IfNoValueF{#2}{\end{minipage}} + \par + } +\fi + +\reverse_if:N \if_bool:N \g_MUC@compatibility_mode +\newcommand*{\MUC@sectionnumberbox}[1]{\makebox[28bp][l]{#1\autodot}} +\renewcommand*{\sectionformat}{ + \MUC@sectionnumberbox{\thesection}} +\renewcommand*{\subsectionformat}{ + \MUC@sectionnumberbox{\thesubsection}} +\renewcommand*{\subsubsectionformat}{ + \MUC@sectionnumberbox{\thesubsubsection}} +\RedeclareSectionCommand[afterskip=1.5ex plus .2ex,% + beforeskip=-3.6ex plus -1ex minus -.2ex]{section} +\RedeclareSectionCommand[afterskip=.5ex plus .2ex,% + beforeskip=-1ex plus -1ex minus -.2ex]{subsection} +\RedeclareSectionCommand[afterskip=.5ex plus .2ex,% + beforeskip=-1ex plus -1ex minus -.2ex]{subsubsection} +\RedeclareSectionCommand[afterskip=1em,% + beforeskip=1ex plus 1ex minus .2ex]{paragraph} +\RedeclareSectionCommand[afterskip=1em,% + beforeskip=1ex plus 1ex minus .2ex]{subparagraph} +\fi: +\ExplSyntaxOff +\setkomafont{disposition}{} +\setkomafont{title}{} +\setkomafont{author}{\large} +\setkomafont{section}{\LARGE} +\setkomafont{subsection}{\Large} +\setkomafont{caption}{\footnotesize\itshape} +\setkomafont{captionlabel}{\usekomafont{caption}} +\newkomafont{abstractcontent}{\small} +\newkomafont{abstract}{\normalsize\bfseries} +\newkomafont{authoraddendum}{\small} +\renewenvironment{abstract}{% + \setparsizes{0pt}{4pt}{0pt plus 1 fill}{% + \usekomafont{abstract}% + \abstractname}\par% + \usekomafont{abstractcontent}}{} + +\ifMUC@pagestyle +\PassOptionsToPackage{headsepline}{scrlayer-scrpage} + \RequirePackage{scrlayer-scrpage} + \ifMUC@copyrightinfo + \newsavebox\MUC@copyrightbox + \begin{lrbox}{\MUC@copyrightbox} + \setlength{\fboxrule}{.7bp}% + \setlength{\fboxsep}{6.5pt}% + \fbox{\hspace*{.8pt}\parbox[t][\dimexpr2cm-2\fboxsep + -2\fboxrule\relax][t]{% + \dimexpr\textwidth-2\fboxsep-2\fboxrule% + -1.6pt\relax}{% + Platzhalter für DOI und ggf. Copyright Text. + (Bitte nicht entfernen).\par + \vspace{7pt} + Name, Vorname (2017): Titel.% + Tagungsband Mensch und Computer 2017. + Gesellschaft für Informatik.% + DOI: xxxxxx}% + } + \end{lrbox} + \DeclareNewLayer[align=tl,area={\dimexpr 1in + + \hoffset + \oddsidemargin\relax}{% + \dimexpr\paperheight-3.9cm\relax}{\textwidth}{2cm}, + contents={\usebox\MUC@copyrightbox}]{copyright} + \DeclareNewPageStyleByLayers{MUC@titlepagestyle}{copyright} + \else + \DeclareNewPageStyleAlias{MUC@titlepagestyle}{empty} + \fi + \clearpairofpagestyles + \ifMUC@headline + \lohead{\MUC@title} + \rehead{\csname MUC@author\endcsname} + \fi + \setkomafont{pagehead}{\normalfont} + \setkomafont{pagefoot}{} +\fi +\endinput +%% +%% End of file `mucproc.cls'. -- cgit v1.2.3