summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/cid/CHANGELOG.md13
-rw-r--r--macros/latex/contrib/cid/CONTRIBUTING.md32
-rw-r--r--macros/latex/contrib/cid/README.md2
-rw-r--r--macros/latex/contrib/cid/cid.dtx1743
-rw-r--r--macros/latex/contrib/cid/cid.ins95
-rw-r--r--macros/latex/contrib/cid/cid.pdfbin0 -> 444739 bytes
-rw-r--r--macros/latex/contrib/kantlipsum/README.md11
-rw-r--r--macros/latex/contrib/kantlipsum/kantlipsum.dtx38
-rw-r--r--macros/latex/contrib/kantlipsum/kantlipsum.pdfbin585715 -> 677247 bytes
-rw-r--r--macros/latex/contrib/q-and-a/Q-and-A.cls247
-rw-r--r--macros/latex/contrib/q-and-a/README.md38
-rw-r--r--macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple-content.tex48
-rw-r--r--macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple.pdfbin29542 -> 33140 bytes
-rw-r--r--macros/latex/contrib/q-and-a/doc/Q-and-A-doc.pdfbin110412 -> 116495 bytes
-rw-r--r--macros/latex/contrib/q-and-a/doc/Q-and-A-doc.tex24
-rw-r--r--macros/latex/contrib/xfakebold/Changes2
-rw-r--r--macros/latex/contrib/xfakebold/doc/xfakebold-doc.pdfbin98642 -> 98454 bytes
-rw-r--r--macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex6
-rw-r--r--macros/latex/contrib/xfakebold/latex/xfakebold.sty11
-rw-r--r--macros/latex/required/tools/README.md2
-rw-r--r--macros/latex/required/tools/afterpage.pdfbin198100 -> 198100 bytes
-rw-r--r--macros/latex/required/tools/array.pdfbin517410 -> 517410 bytes
-rw-r--r--macros/latex/required/tools/bm.pdfbin323929 -> 323929 bytes
-rw-r--r--macros/latex/required/tools/calc.pdfbin370660 -> 370660 bytes
-rw-r--r--macros/latex/required/tools/changes.txt13
-rw-r--r--macros/latex/required/tools/dcolumn.pdfbin221038 -> 221038 bytes
-rw-r--r--macros/latex/required/tools/delarray.pdfbin191058 -> 191058 bytes
-rw-r--r--macros/latex/required/tools/enumerate.pdfbin215077 -> 215077 bytes
-rw-r--r--macros/latex/required/tools/fileerr.pdfbin188281 -> 188278 bytes
-rw-r--r--macros/latex/required/tools/fontsmpl.pdfbin146438 -> 146438 bytes
-rw-r--r--macros/latex/required/tools/ftnright.pdfbin387794 -> 387784 bytes
-rw-r--r--macros/latex/required/tools/hhline.pdfbin189678 -> 189678 bytes
-rw-r--r--macros/latex/required/tools/indentfirst.pdfbin157352 -> 157352 bytes
-rw-r--r--macros/latex/required/tools/layout.pdfbin260278 -> 260278 bytes
-rw-r--r--macros/latex/required/tools/longtable.pdfbin391258 -> 391258 bytes
-rw-r--r--macros/latex/required/tools/multicol.pdfbin523618 -> 523613 bytes
-rw-r--r--macros/latex/required/tools/rawfonts.pdfbin138956 -> 138956 bytes
-rw-r--r--macros/latex/required/tools/shellesc.pdfbin176171 -> 176171 bytes
-rw-r--r--macros/latex/required/tools/showkeys.pdfbin252975 -> 252975 bytes
-rw-r--r--macros/latex/required/tools/somedefs.pdfbin167583 -> 167583 bytes
-rw-r--r--macros/latex/required/tools/tabularx.pdfbin287013 -> 287013 bytes
-rw-r--r--macros/latex/required/tools/theorem.pdfbin352315 -> 352312 bytes
-rw-r--r--macros/latex/required/tools/tools-overview.pdfbin73673 -> 73673 bytes
-rw-r--r--macros/latex/required/tools/trace.pdfbin222074 -> 222074 bytes
-rw-r--r--macros/latex/required/tools/varioref.pdfbin393134 -> 393134 bytes
-rw-r--r--macros/latex/required/tools/verbatim.dtx18
-rw-r--r--macros/latex/required/tools/verbatim.pdfbin331003 -> 331326 bytes
-rw-r--r--macros/latex/required/tools/xr.pdfbin170451 -> 170451 bytes
-rw-r--r--macros/latex/required/tools/xspace.pdfbin257027 -> 257027 bytes
49 files changed, 2161 insertions, 182 deletions
diff --git a/macros/latex/contrib/cid/CHANGELOG.md b/macros/latex/contrib/cid/CHANGELOG.md
new file mode 100644
index 0000000000..afcad4af80
--- /dev/null
+++ b/macros/latex/contrib/cid/CHANGELOG.md
@@ -0,0 +1,13 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/).
+
+## [Unreleased]
+
+## [1.0] - 2023-11-21
+
+First official release
+
+[Unreleased]: https://github.com/sieversMartin/CID/compare/v1.0...HEAD
+[1.0]: https://github.com/sieversMartin/CID/releases/tag/v1.0
diff --git a/macros/latex/contrib/cid/CONTRIBUTING.md b/macros/latex/contrib/cid/CONTRIBUTING.md
new file mode 100644
index 0000000000..b5cd6c56b1
--- /dev/null
+++ b/macros/latex/contrib/cid/CONTRIBUTING.md
@@ -0,0 +1,32 @@
+# Contributing
+
+You can report bugs and request features using the [issues page](https://github.com/sieversMartin/cid/issues).
+
+We love code contributions.
+You can easily work on the code if you have a GitHub account ([get one](https://github.com/join)).
+For that, please [fork the repository](https://help.github.com/articles/fork-a-repo/), work on the code, and submit a [pull request](https://help.github.com/articles/about-pull-requests/).
+
+## Hints on GitHub usage
+
+Take a look at GitHub's excellent overview on the [GitHub flow](https://guides.github.com/introduction/flow/index.html).
+The [Feature Branch Workflow](https://de.atlassian.com/git/tutorials/comparing-workflows#feature-branch-workflow) forms the basis of this kind of development.
+
+In other words:
+
+1. Fork the project
+2. Clone the repo:
+
+ git clone git@github.com:your-username/cid.git
+
+3. Create a new branch `patch` (or another speaking name)
+
+ git checkout -b patch
+
+4. Make your changes.
+5. Commit your changes.
+ Thereby, try to write a [good commit message](https://github.com/joelparkerhenderson/git_commit_message).
+6. Push your changes (to your repository)
+7. [submit a pull request](https://github.com/sieversMartin/cid/compare/)
+8. At this point you're waiting on us.
+ We like to at least comment on pull requests as soon as possible.
+ We may suggest some changes or improvements or alternatives.
diff --git a/macros/latex/contrib/cid/README.md b/macros/latex/contrib/cid/README.md
new file mode 100644
index 0000000000..d894dd515b
--- /dev/null
+++ b/macros/latex/contrib/cid/README.md
@@ -0,0 +1,2 @@
+# CID
+Official LaTeX class for submissions to the “Commentarii informaticae didacticae”
diff --git a/macros/latex/contrib/cid/cid.dtx b/macros/latex/contrib/cid/cid.dtx
new file mode 100644
index 0000000000..7e5d691874
--- /dev/null
+++ b/macros/latex/contrib/cid/cid.dtx
@@ -0,0 +1,1743 @@
+% \iffalse meta-comment
+%<*internal>
+\iffalse
+%</internal>
+%<*internal>
+\fi
+\def\nameofplainTeX{plain}
+\ifx\fmtname\nameofplainTeX\else
+ \expandafter\begingroup
+\fi
+%</internal>
+%<*install>
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\declarepreamble\classpre
+--------| -----------------------------------------------------------------
+ cid:| A class for submissions to the ``Commentarii informaticae didacticae (CID)''
+ Author:| Martin Sievers
+ Email:| martin.sievers@schoenerpublizieren.de
+License:| Released under the LaTeX Project Public License v1.3c or later
+ See:| http://www.latex-project.org/lppl.txt
+--------| -----------------------------------------------------------------
+\endpreamble
+
+\def\templatepre{%
+\perCent\space !TeX encoding = UTF-8^^J%
+\perCent\space !TeX program = pdflatex^^J%
+\perCent\space !BIB program = biber^^J%
+\perCent\space !TeX spellcheck = en_US^^J%
+}
+
+\def\templatepreger{%
+\perCent\space !TeX encoding = UTF-8^^J%
+\perCent\space !TeX program = pdflatex^^J%
+\perCent\space !BIB program = biber^^J%
+\perCent\space !TeX spellcheck = de_DE^^J%
+}
+
+\postamble
+
+Copyright (C) 2023 by Universitätsverlag Potsdam
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Martin Sievers.
+
+This work consists of the file cid.dtx
+ cid.ins
+ README.md
+ CHANGELOG.md
+ and the derived files cid.pdf
+ cid.cls
+ cid-author-template.tex
+ cid-example.bib
+\endpostamble
+
+\usedir{tex/latex/cid}
+\AddGenerationDate
+\generate{
+ \usepreamble\classpre
+ \file{\jobname.cls}{\from{\jobname.dtx}{class}}
+}
+%</install>
+%<install>\endbatchfile
+%<*internal>
+\usedir{source/latex/cid}
+\generate{
+ \usepreamble\classpre
+ \file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/cid}
+\generate{
+ \usepreamble\templatepreger
+ \file{cid-author-template.tex}{\from{\jobname.dtx}{template}}
+}
+\generate{
+ \file{cid-example.bib}{\from{\jobname.dtx}{examplebib}}
+}
+\ifx\fmtname\nameofplainTeX
+ \expandafter\endbatchfile
+\else
+ \expandafter\endgroup
+\fi
+%</internal>
+% \fi
+%
+% \iffalse
+%<*driver>
+\ProvidesFile{cid.dtx}
+%</driver>
+%<class>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<class>\ProvidesClass{cid}
+%<*class>
+ [2023/11/21 v1.0 Official class for submissions to the ``Commentarii informaticae didacticae (CID)'']
+%</class>
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+\usepackage[ngerman,english]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{libertinus}
+\usepackage[scaled=0.8]{beramono}
+\usepackage[%
+ final,%
+ tracking=smallcaps,%
+ expansion=alltext,%
+ protrusion=alltext-nott]{microtype}%
+\SetTracking{encoding=*,shape=sc}{50}%
+\usepackage{textcomp}
+\usepackage{upquote}
+\usepackage[final]{listings}
+\usepackage{csquotes}
+\usepackage[dvipsnames]{xcolor}
+%\usepackage{hologo}
+\usepackage{dtxdescribe}
+\usepackage[%
+ pdftitle={cid: Official LaTeX class for submissions to the ``Commentarii informaticae didacticae (CID)''},
+ pdfauthor={Martin Sievers},
+ urlcolor=blue,%
+ linktoc=both,%
+ colorlinks=true]{hyperref}
+\usepackage[nameinlink,capitalise]{cleveref}
+
+\DeclareFontFamily{U}{MnSymbolC}{}
+\DeclareSymbolFont{MnSyC}{U}{MnSymbolC}{m}{n}
+\DeclareFontShape{U}{MnSymbolC}{m}{n}{
+ <-6> MnSymbolC5
+ <6-7> MnSymbolC6
+ <7-8> MnSymbolC7
+ <8-9> MnSymbolC8
+ <9-10> MnSymbolC9
+ <10-12> MnSymbolC10
+ <12-> MnSymbolC12%
+}{}
+\DeclareMathSymbol{\powerset}{\mathord}{MnSyC}{180}
+
+\newcommand{\cid}{\texttt{cid}}
+\newcommand{\CID}{\emph{Commentarii informaticae didacticae}}
+\lstset{
+ basicstyle = \small\ttfamily,
+ gobble = 2,
+ keywordstyle = \color{blue}\bfseries,
+ breaklines,
+ prebreak = {\mbox{\quad$\hookleftarrow$}},
+ language = [LaTeX]{TeX},
+ moretexcs = {,
+ addbibresource,authorrunning,%
+ doi,affil,
+ ExecuteBibliographyOptions,includegraphics,printbibliography,
+ }
+ frame = single,
+ backgroundcolor = \color{yellow!60},
+ framesep = 5pt,
+ literate={Ö}{{\"O}}1 {Ä}{{\"A}}1 {Ü}{{\"U}}1 {ß}{{\ss}}1 {ü}{{\"u}}1 {ä}{{\"a}}1 {ö}{{\"o}}1
+}%
+\lstnewenvironment{examplecode}[1][]
+{\lstset{#1}}
+{}
+\providecommand*\env[1]{\texttt{#1}}
+\providecommand*\file[1]{\texttt{#1}}
+\providecommand*\opt[1]{\texttt{#1}}
+\providecommand*\pkg[1]{\textsf{#1}}
+\OnlyDescription %nur Anleitung (ohne Index und History)
+\CodelineIndex %kein Index wenn auskommentiert
+\EnableCrossrefs %kein Index wenn auskommentiert
+\RecordChanges %keine History wenn auskommentiert
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{0}
+% \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}{2023/10/27}{Official release of first version used for CID 13}
+%
+% \GetFileInfo{\jobname.dtx}
+% \DoNotIndex{\newcommand,\newenvironment}
+%
+% \title{\textsf{cid} -- Official class for submissions to the\\%
+% ``Commentarii informaticae didacticae''\thanks{This file describes version
+% \fileversion, last revised \filedate.}}
+% \author{Martin Sievers\setcounter{footnote}{6}\thanks{Email:
+% martin.sievers@schoenerpublizieren.de}}
+% \date{Released \filedate}
+%
+% \maketitle
+%
+% \begin{abstract}
+% \noindent The \cid{} bundle is used for writing articles to be published in
+% the ``Commentarii informaticae didacticae (CID)''.
+% The \LaTeX\ class file is based on the class used for the ``Lecture
+% Notes in Informatics (LNI)'' (\href{https://github.com/gi-ev/LNI}{GitHub}).
+% \end{abstract}
+%
+% \section{Introduction}
+% The \LaTeX\ class for the ``Commentarii informaticae didacticae (CID)''
+% is based on the established work for the ``Lecture Notes in Informatics'',
+% maintained mainly by Oliver Kopp and Martin Sievers (cf. \url{https://github.com/gi-ev/LNI)}
+%
+% This is the first public release. I would like to thank
+% the ``Universitätsverlag Potsdam'' (especially Felix Will and Marco Winkler)
+% and the editors of CID 13 (especially Simone Opel)
+% for their suggestions and testing.
+%
+% \section{Installation}
+% This version of the \cid{} bundle is distributed via
+% GitHub and (preferably) CTAN.
+%
+% The later is the basis for all updates of the two main \TeX{} distributions
+% \MiKTeX{} and \TeX{}~Live. Thus the easiest way to get all files needed to
+% typeset an article for the \CID{} is to use the package manager of your
+% distribution.
+%
+%
+% There is also a template on Overleaf.
+%
+% For a manual installation please call \texttt{pdflatex lni.dtx} at least
+% twice and
+% copy all resulting files (cls, tex, pdf) to your local TEXMF tree.
+% Don't forget to update your file name database.
+% %\newpage
+% \section{Usage}
+% To use the predefined layout for a (German) submission to the \CID{} just
+% load the class file as usual with \cs{documentclass\{cid\}}.
+%
+% The class file loads a bunch of packages which are all part of modern \TeX{}
+% distributions. Therefore, if you are confronted
+% with a missing package, please try to download and install it using your
+% distribution's package manager. Alternatively go to
+% \href{http://www.ctan.org}{CTAN} to download missing packages.
+%
+% The \cid{} class can be used with \pdfLaTeX{} as well as with
+% \XeLaTeX{} and \LuaLaTeX{}.
+%
+% \subsection{Options}\label{sec:options}
+% Although the class file includes all layout information for a submission to
+% the \CID{}, there are options to adapt the output one way or another.
+%
+% \DescribeOption{english}A document loading the \CID{} class file uses German
+% language adoptions by default. To switch to English, just load the class with
+% option \opt{english}. The language influences the hyphenation patterns and
+% terms used in the text.
+%
+% \DescribeOption{crop}%
+% Option \opt{crop} gives you some crop marks (using the package \pkg{crop}) to
+% better illustrate the final
+% result of your article.
+%
+% \DescribeOption{nocleveref}When referencing figures, one has to type
+% \texttt{Figure\textasciitilde}\cs{ref\marg{label}}. The package \pkg{cleveref}
+% reduces the effort by offering the command \cs{cref\marg{label}}. This can be
+% used with all floating objects. The package is loaded by default. In case it
+% causes issues, one can disable it using with the \opt{nocleveref} option.
+%
+% \DescribeOption{nohyperref}\pkg{hyperref} is used for colored hyperlinks
+% within the articles. If you consider problems or just do not want that
+% feature, you can disable it by using the option \opt{nohyperref}.
+%
+% \DescribeOption{norunningheads}To easily remove all running
+% headers from your document, you can use the option \opt{norunningheads}.
+%
+% \section{Setting up a document}
+% You can use the file \texttt{cid-author-template.tex} as a starting point
+% for setting up a document for submission. The \cid{} class uses the standard
+% ways to build an article.
+%
+% \subsection{Special meta comments}\label{sec:metadata}
+% There is not just one \enquote{\TeX} and one \enquote{bibliography tool}, but
+% many different ways to transform a .tex file into a PDF.
+% Some \TeX{} editors like \texttt{TeXstudio}, \texttt{TeXmaker} and
+% \texttt{TeXshop} support a special set of meta comments to give some
+% information, how to deal with a concrete document.
+%
+% A typical example looks like:
+% \begin{examplecode}
+% % !TeX program = pdflatex
+% % !BIB program = biber
+% % !TeX encoding = UTF-8
+% % !TeX spellcheck = en_US
+% \documentclass[english]{cid}
+% \end{examplecode}
+%
+% \subsection{Title page}\label{sec:titlepage}
+% \DescribeMacro{\title}%
+% \DescribeMacro{\subtitle}%
+% The title of your work is given using the \cs{title} macro. In addition to
+% the title itself, you can add a short title to be used
+% in the header of a page:
+% \begin{examplecode}[label={lst:title}]
+% \title[Short title]{Title}
+% \end{examplecode}
+%
+% You can also add a subtitle by \cs{subtitle\marg{subtitle}}.
+%
+% \DescribeMacro{\author}\DescribeMacro{\affil}%
+% The authors of an article are
+% given using an extended \cs{author} macro, which holds not only the name, but also
+% email adress and ORCID iD. Moreover the affiliation marker (number) is given as an optional
+% argument. Affiliations are added with
+% \cs{affiliations\oarg{number}\marg{information}} where you can use
+% \texttt{\textbackslash\textbackslash} to split the address.
+% \begin{examplecode}[label={lst:author}]
+% \author[1]{Vorname1 Nachname1}{vorname.name@affiliation1.de}{0000-0000-0000-0000}
+% \author[2]{Firstname2 Lastname2}{vorname.name@affiliation2.de}{0000-0000-0000-0000}
+% \author[1]{Firstname3 Lastname 3}{vorname.name@affiliation1.de}{0000-0000-0000-0000}
+% \author[1]{Firstname4 Lastname 4}{vorname.name@affiliation1.de}{0000-0000-0000-0000}%
+% \affil[1]{Universität\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
+% \affil[2]{University\\Department\\Address\\Country}
+% \end{examplecode}
+%
+% Leave the third and/or fourth argument empty if there is no email address and/or ORCID iD.
+% Finally \cs{maketitle} will output the formatted title page.
+%
+% \subsection{Abstract and keywords}
+% \DescribeEnv{abstract}\DescribeEnv{keywords}%
+% \DescribeMacro{\and}%
+% Each article should start with a short (70 to 150 words) abstract and some
+% keywords. Please use the environments \env{abstract} and \env{keywords} for
+% that purpose:
+% \begin{examplecode}
+% \begin{abstract}
+% Tell the reader what your article is about
+% \end{abstract}
+% \begin{keywords}
+% Give some keywords to categorize your article. You can use \and between two
+% keywords to get the correct delimiter (semicolon plus space) automatically.
+% \end{keywords}
+% \end{examplecode}
+%
+% \subsection{Page header}\label{sec:pageheader}
+% The template automatically sets the page headers according to the
+% requirements of \CID. From page~2 onwards, the title and the authors are
+% printed. These information have to stay in one line. In case the title is too
+% long, use the optional argument for \cs{title}:
+% \begin{examplecode}
+% \title[short title]{title}
+% \end{examplecode}
+%
+% \subsection{Main text}
+% \subsubsection{Headings}
+% \DescribeMacro{\section}\DescribeMacro{\subsection}%
+% \DescribeMacro{\subsubsection}\DescribeMacro{\paragraph}
+% You can use the standard macros \cs{section}, \cs{subsection}, \dots{} for
+% sectioning your text.
+%
+% \subsubsection{Footnotes}
+% \DescribeMacro{\footnote}%
+% For adding a footnote, just use \cs{footnote\marg{footnote text}} where
+% needed. Please note, that the footnote counter is automatically set to the
+% correct value at the beginning of your text, i.\,e. it respects the number
+% of affiliations given on the title page.
+%
+% \subsubsection{Lists}
+% \DescribeEnv{itemize}\DescribeEnv{enumerate}%
+% The \cid{} class redefines the standard lists environments \env{itemize} and
+% \env{enumerate} to meet the requirements of the \CID{}.
+%
+% Lists can be filled as usual by adding \cs{item} macros.
+%
+% \subsubsection{Floating objects}
+% \DescribeEnv{figure}\DescribeEnv{table}%
+% The environments \env{figure} and \env{table} can be used the standard way to
+% include graphics or tables resp.
+%
+% However, please note, that the default placement parameters are changed to
+% \opt{htbp} by the class \cid{}. If you need some local adjustment, please use
+% the optional argument of both environments (cf.~Listing~\ref{lst:figure}).
+%
+% \DescribeMacro{\caption}\DescribeMacro{\label}
+% A caption should be added by \cs{caption\marg{caption text}}, followed
+% immediately by a \cs{label\marg{unique label}} entry. For figures the caption
+% should be added below the graphic, for tables place it above \env{tabular}:
+% \begin{examplecode}[label={lst:figure}]
+% \begin{figure}[tb]
+% \includegraphics{...}
+% \caption{...}
+% \label{...}
+% \end{figure}
+% \end{examplecode}
+%
+% If you want to center floats, please \emph{do not} use the \env{center}
+% environment, but the macro \cs{centering}, which does not add extra white
+% space (cf.~Listing~\ref{lst:table}).
+% \begin{examplecode}[label={lst:table}]
+% \begin{table}
+% \centering
+% \caption{...}
+% \label{...}
+% \begin{tabular}{lll}
+% ...
+% \end{tabular}
+% \end{table}
+% \end{examplecode}
+%
+% \subsubsection{\texorpdfstring{Listings\,/\,Source code}%
+% {Listings/Source code}}
+% The \cid{} bundle loads the \pkg{verbatim} and \pkg{listings} package. While
+% the former is there for compatability, the later is the standard way of
+% integrating source code listings into a \LaTeX{} document.
+%
+% However, there are currently no config files shipped with the \cid{} bundle.
+% Please consult the documentation for help on setting up \pkg{listings} for a
+% specific programming language.
+%
+% \subsubsection{Math}
+% For using math the \pkg{amsmath} package is loaded by default. You can load
+% package \pkg{mathtools} for additional features.
+%
+% \subsubsection{Abbreviations and initialisms}
+% \DescribeMacro{\eg}\DescribeMacro{\ie}\DescribeMacro{\cf}%
+% \DescribeMacro{\etal}%
+% To achieve consistent typesetting of common abbreviations, macros are
+% predefined by the class. These macros should \emph{consistently} being used
+% instead of writing the plain version. For example use \verb|\eg| rather than
+% {\verb|e.g.,|}. The macros take care of spacing within and after the
+% abbreviations.
+% \begin{itemize}
+% \item \cs{eg} for e.\,g.
+% \item \cs{ie} for i.\,e.
+% \item \cs{cf} for cf.
+% \item \cs{etal} for et~al.
+% \end{itemize}
+%
+% \DescribeMacro{\cidinitialism} You can add your own initialisms by stating
+% \cs{cidinitialism\marg{\textbackslash initialism\_macro}\marg{text}} in the
+% preamble. Then use the new macros within your text wherever needed.
+%
+% \subsection{Bibliography}\label{sec:bibliography}
+% The \cid{} class uses \pkg{biblatex} by default together with the
+% \pkg{biblatex} style \enquote{lni} provided by
+% \href{https://github.com/gi-ev/biblatex-lni}{\pkg{biblatex-lni}}.
+% However, you have to add information on the bib
+% file(s) in your document using \cs{addbibresource\marg{Bib file(s)}} and call
+% \cs{printbibliography} at the end of your document.
+%
+% Please note, that the \cid{} class sets
+% \texttt{biber} as the default bibliography tool. \texttt{biber} is part of
+% both major \TeX{} distributions and can easily be used within most \TeX{}
+% editors, e.\,g. by using special meta data as described in
+% \cref{sec:metadata}.
+%
+% \begin{examplecode}
+% % !TeX program = pdflatex
+% % !BIB program = biber
+% \documentclass[]{cid}
+% ...
+% \addbibresource{FILENAME.bib}
+% ...
+% \begin{document}
+% ...
+% \printbibliography
+% ...
+% \end{document}
+% \end{examplecode}
+%
+% \section{Trouble shooting}
+% If you have any problems using the class file please head to
+% \href{https://github.com/egeerardyn/awesome-LaTeX/blob/master/README.md}%
+% {the awesome \LaTeX{} list}.
+%
+% \section{Bugs and feature request}
+% If you find a bug or have a feature request, please contact me.
+% You can open an ``issue'' at the GitHub website.
+%
+% \StopEventually{^^A
+% \PrintChanges
+% \PrintIndex
+% }
+%
+% \section{Implementation}
+%
+% \begin{macrocode}
+%<*class>
+% \end{macrocode}
+% \begin{macrocode}
+\def\@clearglobaloption#1{%
+ \def\@tempa{#1}%
+ \def\@tempb{\@gobble}%
+ \@for\next:=\@classoptionslist\do
+ {\ifx\next\@tempa
+ \message{Cleared option \next\space from global list}%
+ \else
+ \edef\@tempb{\@tempb,\next}%
+ \fi}%
+ \let\@classoptionslist\@tempb
+ \expandafter\ifx\@tempb\@gobble
+ \let\@classoptionslist\@empty
+ \fi}
+%
+\DeclareOption{latin1}{\PassOptionsToPackage{latin1}{inputenc}}
+\DeclareOption{utf8}{\PassOptionsToPackage{utf8}{inputenc}}
+\DeclareOption{ansinew}{\PassOptionsToPackage{ansinew}{inputenc}}
+\newif\ifcidenglish
+\cidenglishfalse
+\DeclareOption{english}{\cidenglishtrue\@clearglobaloption{english}}
+\newif\ifusehyperref
+\usehyperreftrue
+\DeclareOption{nohyperref}{\usehyperreffalse}
+\newif\ifusecleveref
+\useclevereftrue
+\DeclareOption{nocleveref}{\useclevereffalse}
+\newif\ifusebiblatex
+\usebiblatextrue
+\DeclareOption{biblatex}{\usebiblatextrue}
+\DeclareOption{nobiblatex}{\usebiblatexfalse}
+\newif\ifcrop
+\cropfalse
+\DeclareOption{crop}{\croptrue}
+\newif\ifnorunningheads
+\DeclareOption{norunningheads}{\norunningheadstrue}
+\ExecuteOptions{utf8}
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
+\ProcessOptions\relax
+%
+\RequirePackage{iftex}
+\PassOptionsToPackage{dvipsnames}{xcolor}
+\PassOptionsToPackage{fleqn}{amsmath}
+\LoadClass[10pt,a4paper,twoside]{article}
+\ifPDFTeX
+ \RequirePackage{cmap}
+ \RequirePackage{inputenc}
+ \RequirePackage[T1]{fontenc}
+ \RequirePackage[full]{textcomp}
+\else
+ \RequirePackage{fontspec}
+\fi%
+%
+\ifcidenglish
+ \RequirePackage[ngerman,UKenglish,USenglish,english]{babel}
+\else
+ \RequirePackage[english,UKenglish,USenglish,ngerman]{babel}
+ \babelprovide[hyphenrules=ngerman-x-latest]{ngerman}
+ \ClassInfo{cid}{Using latest German hyphenation patterns}%
+\fi%
+% Hint by http://tex.stackexchange.com/a/321067/9075 -> enable "= as dashes
+\useshorthands*{"}
+\addto\extrasenglish{\languageshorthands{ngerman}}
+\addto\extrasUKenglish{\languageshorthands{ngerman}}
+\addto\extrasUSenglish{\languageshorthands{ngerman}}
+% \end{macrocode}
+% Load old Times variant (explictly wanted by publisher)
+% \begin{macrocode}
+\ifPDFTeX
+ \RequirePackage{mathptmx}
+ \RequirePackage[%
+ final,%
+ tracking=smallcaps,%
+ expansion=alltext,%
+ protrusion=alltext-nott]{microtype}%
+\else
+ \setmainfont{NimbusRomNo9L}[%
+ Extension = .otf,%
+ UprightFont = *-Reg,%
+ BoldFont = *-Med,%
+ ItalicFont = *-RegIta,%
+ BoldItalicFont = *-MedIta,%
+ Ligatures = {Common},%
+ ]%
+ \RequirePackage[%
+ final,%
+ protrusion=alltext-nott]{microtype}%
+% \end{macrocode}
+% When using \hologo{LuaLaTeX} we can activate \pkg{selnolig}
+% \begin{macrocode}
+ \ifluatex
+ \ifcidenglish
+ \RequirePackage[english]{selnolig}%
+ \else
+ \RequirePackage[ngerman]{selnolig}%
+ \fi%
+ \fi%
+\fi%
+\SetTracking{encoding=*,shape=sc}{50}%
+% \end{macrocode}
+% Introduce \cs{powerset} - hint by \url{http://matheplanet.com/matheplanet/nuke/html/viewtopic.php?topic=136492&post_id=997377}
+% \begin{macrocode}
+\DeclareFontFamily{U}{MnSymbolC}{}
+\DeclareSymbolFont{MnSyC}{U}{MnSymbolC}{m}{n}
+\DeclareFontShape{U}{MnSymbolC}{m}{n}{
+ <-6> MnSymbolC5
+ <6-7> MnSymbolC6
+ <7-8> MnSymbolC7
+ <8-9> MnSymbolC8
+ <9-10> MnSymbolC9
+ <10-12> MnSymbolC10
+ <12-> MnSymbolC12%
+}{}
+\DeclareMathSymbol{\powerset}{\mathord}{MnSyC}{180}
+% \end{macrocode}
+% \begin{macrocode}
+% Support for CC icons
+%\RequirePackage{ccicons}
+% Support for \cs{ifdefempty}
+\RequirePackage{etoolbox}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage[oldcommands]{ragged2e}
+% \end{macrocode}
+% \begin{macrocode}
+\newlength{\doihoffset}
+\newlength{\doivoffset}
+\ifcrop
+ \RequirePackage[
+ paperheight=220truemm,paperwidth=155truemm,
+ text={110truemm,176truemm},
+ inner=25truemm,
+ outer=20truemm,
+ top=24.6truemm,
+ bottom=19truemm,
+ nomarginpar,
+ headsep=7truemm,
+ headheight=13.5bp,
+ driver=none]
+ {geometry}
+ \RequirePackage[a4,center,frame,info]{crop}
+ \renewcommand*\CROP@@info{{%
+ \global\advance\CROP@index\@ne
+ \def\x{\discretionary{}{}{\hbox{\kern.5em---\kern.5em}}}%
+ \advance\paperwidth-20\p@
+ \dimen@4pt
+ \ifx\CROP@pagecolor\@empty
+ \else
+ \advance\dimen@\CROP@overlap
+ \fi
+ \hb@xt@\z@{%
+ \hss
+ \vbox to\z@{%
+ \centering
+ \hsize\paperwidth
+ \vss
+ \normalfont
+ \normalsize
+ \expandafter\csname\CROP@font\endcsname{%
+ ``\jobname''\x
+ \the\year/\the\month/\the\day\x
+ \CROP@time\x
+ page\kern.5em\thepage\x
+ \#\the\CROP@index
+ \strut
+ }%
+ \vskip\dimen@
+ }%
+ \hss
+ }%
+ }}%
+ \setlength{\doihoffset}{1.45cm}
+ \setlength{\doivoffset}{1.2cm}
+\else
+ \RequirePackage[%
+ paperheight=220truemm,paperwidth=155truemm,%
+ text={110truemm,176truemm},%
+ inner=25truemm,%
+ outer=20truemm,%
+ top=24.6truemm,%
+ bottom=19truemm,%
+ nomarginpar,%
+ headsep=7truemm,%
+ headheight=13.5bp,%
+ driver=none]%
+ {geometry}
+ %\setlength{\doihoffset}{4.2cm}
+ %\setlength{\doivoffset}{4.3cm}
+\fi%
+% \end{macrocode}
+% We change font sizes to get the correct baseline skips
+% \begin{macrocode}
+\renewcommand\normalsize{%
+ \@setfontsize\normalsize{10bp}{13.5bp}%
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI}
+\normalsize
+\ifx\MakeRobust\@undefined \else
+\MakeRobust\normalsize
+\fi
+\DeclareRobustCommand\small{%
+ \@setfontsize\small{9bp}{13.5bp}%
+ \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
+}
+\DeclareRobustCommand\footnotesize{%
+ \@setfontsize\footnotesize{8bp}{9.6bp}%
+ \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
+}
+\DeclareRobustCommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\DeclareRobustCommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
+\DeclareRobustCommand\large{\@setfontsize\large{12bp}{14.4bp}}
+\DeclareRobustCommand\Large{\@setfontsize\Large{13bp}{15.6bp}}
+\DeclareRobustCommand\LARGE{\@setfontsize\LARGE{14bp}{16.8bp}}
+\DeclareRobustCommand\huge{\@setfontsize\LARGE{16bp}{19.2bp}}
+\DeclareRobustCommand\Huge{\@setfontsize\LARGE{20bp}{24bp}}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage[autostyle]{csquotes}
+\ifusebiblatex
+ \RequirePackage[%
+ backend=biber,% UTF-8 support
+ style=LNI, % The GI style - see https://www.ctan.org/pkg/biblatex-lni
+ natbib=true, % Required for \Citet
+ autolang=other%
+ ]{biblatex}
+ \renewcommand{\bibfont}{\normalfont\small}
+ \defbibheading{bibliography}[\iflanguage{english}{Bibliography}{Literaturverzeichnis}]{%
+ \section*{#1}\markboth{#1}{#1}\pdfbookmark[1]{\iflanguage{english}{Bibliography}{Literaturverzeichnis}}{bibliography\thecidarticle}}
+ \patchcmd{\biburlsetup}%
+ {\def\UrlBigBreaks{\do\:\do\-}}%
+ {\def\UrlBigBreaks{\do\:\do\-\do\/}}%
+ {}%
+ {}%
+% \end{macrocode}
+% \begin{macro}{\citeauthor}
+% \begin{macrocode}
+ % Enable hyperlinked authors when using \citeauthor
+ % Source: http://tex.stackexchange.com/a/75916/9075
+ \DeclareCiteCommand{\citeauthor}%
+ {\boolfalse{citetracker}%
+ \boolfalse{pagetracker}%
+ \usebibmacro{prenote}}%
+ {\ifciteindex%
+ {\indexnames{labelname}}%
+ {}%
+ \printtext[bibhyperref]{\printnames{labelname}}}%
+ {\multicitedelim}%
+ {\usebibmacro{postnote}}%
+% \end{macro}
+% \begin{macrocode}
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{amsmath}
+\RequirePackage{graphicx}
+\RequirePackage{eso-pic}
+\RequirePackage{grffile}
+\RequirePackage{fancyhdr}
+\RequirePackage{listings}
+\RequirePackage{booktabs}
+\RequirePackage{tabularx}
+% \end{macrocode}
+% We fix the basewidth for lstlistings:
+% The default setting of listings with ``fixed columns'' has a space 0.6em
+% wide, while the characters in TX Typewriter (as in Computer Modern
+% Typewriter) are 0.5em wide.
+% Source: https://tex.stackexchange.com/a/179072/9075
+% \begin{macrocode}
+\lstset{%
+ basicstyle=\ttfamily,%
+ columns=fixed,%
+ basewidth=.5em,%
+ xleftmargin=0.5cm,%
+ captionpos=b,%
+ upquote}%
+% \end{macrocode}
+% Ragged bottom -- verhindert die Ausdehnung der Seite = Veränderung der
+% Abstände
+% \begin{macrocode}
+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
+\global\let\@textbottom\relax}}
+% \end{macrocode}
+% Seitenzahlen -- Größe der Box
+% \begin{macrocode}
+\renewcommand\@pnumwidth{2.5em}
+\renewcommand\@tocrmarg{2.55em}
+\renewcommand\@dotsep{2.5}
+\def\@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+ \par}%
+ \fi}
+% \end{macrocode}
+% \begin{macro}{\title}
+% \begin{macrocode}
+%\newcommand{\@shorttitle}{}%
+\newcommand{\@toctitle}{}%
+\newcommand*{\@titlerunning}{}%
+\renewcommand{\title}{\@dblarg\@@title}
+\def\@@title[#1]#2{%
+ \gdef\@title{#2}%
+ \renewcommand{\@toctitle}{#2}%
+ \renewcommand*{\@titlerunning}{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\subtitle}
+% \begin{macrocode}
+\newcommand{\subtitle}[1]{\gdef\@subtitle{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\author}
+% \begin{macrocode}
+\gdef\and{\texorpdfstring{\unskip,\ }{, }}
+\renewcommand{\author}{\@dblarg\@@author}
+\newcommand{\@tocauthor}{}%
+\newcommand{\@authorrunning}{}%
+\def\@@author[#1]#2{%
+ \DeclareRobustCommand{\@author}{%
+ #2%
+ }%
+ \renewcommand{\@tocauthor}{#1}%
+ %\protected@edef\@tocauthor{%
+ % #1%
+ %}%
+ \renewcommand{\@authorrunning}{#1}%
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\authorrunning}
+% \begin{macrocode}
+\newcommand*{\authorrunning}[1]{%
+ \renewcommand*{\@authorrunning}{#1}}
+% \end{macrocode}
+% \begin{macro}{\titlerunning}
+% \begin{macrocode}
+\newcommand*{\titlerunning}[1]{%
+ \renewcommand*{\@titlerunning}{#1}}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\email}
+% \begin{macrocode}
+\newcommand*{\email}[1]{\ifusehyperref\href{mailto:#1}{\protect\nolinkurl{#1}}\else\protect\nolinkurl{#1}\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\orcid}
+% \begin{macrocode}
+\newcommand*{\orcid}[1]{%
+ \ifusehyperref\unskip~\orcidlink{#1}\,\href{https://orcid.org/#1}{https://orcid.org/#1}%
+ \else\orcidlink{}\,https://orcid.org/#1\fi}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\doi}
+% \begin{macrocode}
+\newcommand{\@doi}{}
+\newcommand{\doi}{%
+ \begingroup\catcode`\_12 \doi@i}
+\newcommand{\doi@i}[1]{%
+ \gdef\@doi{#1}\endgroup}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newcounter{cidarticle}
+\@addtoreset{section}{cidarticle}%
+\@addtoreset{footnote}{cidarticle}%
+\@addtoreset{figure}{cidarticle}%
+\@addtoreset{table}{cidarticle}%
+% \end{macrocode}
+% Title: Kopie aus article.cls mit anderem \thispagestyle
+% \begin{macrocode}
+\renewcommand\maketitle{\par%
+ \begingroup
+ \renewcommand\thefootnote{\@arabic\c@footnote}%
+% \def\@makefnmark% keine Einrückung der Fußnoten eingestellt
+% {\@textsuperscript{\normalfont\@thefnmark}}%
+% \long\def\@makefntext##1{%
+% \@setpar{\@@par
+% \@tempdima = \hsize
+% \advance\@tempdima -1em
+% \parshape \@ne 0.15cm \@tempdima}%
+% \par\parindent 5mm \noindent
+% \hb@xt@\z@{\hss{\normalfont\@thefnmark}}\hspace{5mm}##1}
+ \if@twocolumn
+ \ifnum \col@number=\@ne
+ \@maketitle
+ \else
+ \twocolumn[\@maketitle]%
+ \fi%
+ \else
+ \newpage
+ \global\@topnum\z@% Prevents figures from going at top of page.
+ \@maketitle
+ \fi%
+ \ifnorunningheads
+ \thispagestyle{empty}
+ \else
+ \thispagestyle{plain}
+ \fi%
+ \@thanks
+ \endgroup
+ \ifusehyperref
+ \HyXeTeX@CheckUnicode
+ \HyPsd@PrerenderUnicode{\@tocauthor}%
+ \pdfstringdef\@pdfauthor{\@tocauthor}%
+ \HyXeTeX@CheckUnicode
+ \HyPsd@PrerenderUnicode{\@title}%
+ \pdfstringdef\@pdftitle{\@title}%
+ \fi%
+ %\global\let\thanks\relax
+ %\global\let\maketitle\relax
+ %\global\let\@maketitle\relax
+ \global\let\@thanks\@empty
+ \global\let\@author\@empty
+ %\global\let\@date\@empty
+ \global\let\@title\@empty
+ \global\let\@subtitle\@empty
+ %\global\let\title\relax
+ %\global\let\author\relax
+ %\global\let\date\relax
+ %\global\let\and\relax
+}
+% \end{macrocode}
+% \begin{macrocode}
+\def\@maketitle{%
+ \clearpage\begingroup\pagestyle{empty}\cleardoublepage\endgroup%
+ \markboth{\@authorrunning}{\@titlerunning}%
+ \addtocontents{toc}{\protect\setcounter{tocdepth}{2}}%
+ \phantomsection%
+ \addcontentsline{toc}{chapter}{\protect\numberline{}{\@toctitle}}%
+ \addtocontents{toc}{\protect\contentsline{subsection}{\@tocauthor}{}{}}%
+ \addtocontents{toc}{\protect\setcounter{tocdepth}{0}}%
+ \refstepcounter{cidarticle}%
+ \null%
+ \vskip-16.8bp%\spacebeforesection%
+ \vskip 11mm%
+ \raggedright% Linksbündig
+ \let\footnote\thanks
+ {\LARGE\bfseries\@title\par}%
+ \ifx\@subtitle\empty\else
+ \ifx\@subtitle\undefined\else
+ \vskip \baselineskip%
+ {\normalsize\bfseries\@subtitle\par}%
+ \fi%
+ \fi%
+ \vskip\baselineskip% Abstand nach dem Titel
+ {\normalsize%
+ \lineskip .5em%
+ \@author
+ \par}%
+ \vskip 2\baselineskip% Abstand vor dem Abstract
+}%
+% \end{macrocode}
+% \begin{environment}{abstract}
+% \begin{macrocode}
+\newcommand*{\@addmargin}[2][\@tempa]{%
+ \list{}{%
+ \if@tempswa
+ \def\@tempa{\leftmargin}%
+ \setlength{\leftmargin}{#2}%
+ \setlength{\rightmargin}{#1}%
+ \else
+ \def\@tempa{\rightmargin}%
+ \setlength{\rightmargin}{#2}%
+ \setlength{\leftmargin}{#1}%
+ \fi
+ \setlength{\listparindent}{\parindent}%
+ \setlength{\itemsep}{\parskip}%
+ \setlength{\itemindent}{\z@}%
+ \setlength{\@tempskipa}{\topsep}%
+ \setlength{\topsep}{\z@}%
+ \setlength{\parsep}{\parskip}%
+ \setlength{\@tempskipb}{\partopsep}%
+ \setlength{\partopsep}{\z@}%
+ \let\makelabel\@gobble
+ \setlength{\labelwidth}{\z@}%
+ \advance\@listdepth\m@ne
+ }%
+ \item\nobreak\ignorespaces
+}
+
+\renewenvironment*{abstract}{%
+ \renewcommand{\abstractname}{Abstract}%
+ \@addmargin{\parindent}\small\noindent\ignorespaces{\bfseries\abstractname:\ }%
+}{\advance\@listdepth\@ne
+ \endlist
+ \par\vspace{\baselineskip}}
+% \end{macrocode}
+% \end{environment}
+% \begin{environment}{keywords}
+% \begin{macrocode}
+\newif\ifkeywords
+\newenvironment{keywords}%
+ {\global\keywordstrue\normalsize%
+ \def\and{\unskip;\space}%
+ \noindent\ignorespaces{\bfseries Keywords:\ }}%
+ {\par\global\keywordsfalse}
+\let\@RIGsection\section
+\pretocmd\@startsection{%
+ \ifkeywords\ClassError{cid}%
+ {keywords is an environment, not a macro}%
+ {Please change \string\keywords\space to an environment}%
+ \keywordsfalse%
+ \fi%
+}{}{}%
+% \end{macrocode}
+% \end{environment}
+% Section headings
+% \begin{macrocode}
+\renewcommand{\section}{\@startsection{section}{1}{\z@}%
+ {-2\baselineskip}{\baselineskip}{\normalfont\large\bfseries}}
+\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
+ {-2\baselineskip}{\baselineskip}{\normalfont\normalsize\bfseries}}
+\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
+ {-2\baselineskip}{\baselineskip}{\normalfont\normalsize\bfseries}}
+\renewcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}%
+ {1\baselineskip}{-1em}{\normalfont\normalsize\bfseries}}
+\newlength{\spacebeforesection}
+\setlength{\spacebeforesection}{\dimexpr\topsep+11mm\relax}
+\newcommand{\CIDsection}[1]{%
+ \section*{\rule{0pt}{\spacebeforesection}#1}%
+ \markboth{#1}{#1}%
+ \pdfbookmark[1]{\iflanguage{english}{Bibliography}{Literaturverzeichnis}}{bibliography\thecidarticle}%
+}
+\newcommand{\CIDVorwort}[1]{\section*{\rule{0pt}{\spacebeforesection}#1}\markboth{#1}{#1}}
+% \end{macrocode}
+% Bildunterschriften
+% \begin{macrocode}
+\RequirePackage{caption}
+\captionsetup[figure]{style=base,font=footnotesize,position=below}
+\captionsetup[table]{style=base,font=small,position=above}
+\captionsetup[lstlisting]{style=base,font=footnotesize,position=below}
+\newcommand{\ifwithinfigure}[2]{%
+ \ifx\@currenvir\empty
+ \PackageWarningNoLine{ifwithinfigure}{Environment name not available}%
+ \else
+ \ifx\@currenvir\figure
+ #1%
+ \else
+ #2%
+ \fi
+ \fi
+}
+\setlength{\intextsep}{\baselineskip}%Abstand nach der Grafik
+\setlength{\abovecaptionskip}{.5\baselineskip}
+\setlength{\belowcaptionskip}{%
+ \ifwithinfigure{2\baselineskip}{0pt}%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\renewcommand\tableofcontents{%
+ \clearpage\thispagestyle{plain}
+ \pdfbookmark[0]{\contentsname}{toc}%
+ \CIDVorwort{\contentsname}%
+ \@starttoc{toc}%
+}
+
+\def\@part[#1]#2{%
+ \clearpage\begingroup\pagestyle{empty}\cleardoublepage\endgroup
+ \thispagestyle{empty}
+ \pdfbookmark[-1]{#2}{part\thepage}%
+ \addtocontents{toc}{\protect\contentsline{part}{#1}{}{}}
+ \null\vfil
+ {\centering
+ \interlinepenalty \@M
+ \normalfont
+ \fontsize{20bp}{20bp}\selectfont\bfseries #2%
+ \markboth{}{}\par}%
+ \vfil\null\newpage
+ \null
+ \thispagestyle{empty}%
+ \newpage}
+
+\renewcommand*\l@part[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \addpenalty\@secpenalty
+ \vspace*{2\baselineskip}%
+ \setlength\@tempdima{3em}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ {\leavevmode
+ \fontsize{13bp}{13.5bp}\selectfont #1\hfil
+ \hb@xt@\@pnumwidth{\hss #2%
+ \kern-\p@\kern\p@}}\par
+ \nobreak
+ \if@compatibility
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \fi
+ \endgroup
+ \vspace*{2\baselineskip}%
+ \fi}
+\renewcommand*\l@section[2]{%
+ \ifnum \c@tocdepth >\z@
+ \addpenalty\@secpenalty
+ \setlength\@tempdima{0pt}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ #1\nobreak\mdseries
+ \leaders\hbox{$\m@th
+ \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+ mu$}\hfill
+ \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
+ \endgroup
+ \fi}
+\let\l@chapter\l@section%
+\renewcommand*\l@subsection[2]{%
+ \ifnum \c@tocdepth >\z@
+ \addpenalty\@secpenalty
+ \setlength\@tempdima{0pt}%
+ \begingroup
+ \parindent \z@ \rightskip \@pnumwidth
+ \parfillskip -\@pnumwidth
+ \leavevmode
+ \advance\leftskip\@tempdima
+ \hskip -\leftskip
+ \itshape #1\nobreak\hfil
+ \nobreak\hb@xt@\@pnumwidth{\hss #2%
+ \kern-\p@\kern\p@}\par
+ \endgroup
+ \fi}
+
+% \end{macrocode}
+% Take care of floats
+% \begin{macrocode}
+\def\fps@figure{htbp}
+\def\fnum@figure{\figurename~\thefigure}
+\def\@floatboxreset{%
+ \reset@font
+ \small
+ \@setnobreak
+ \@setminipage
+}%
+\setcounter{topnumber}{10}% maximale Anzahl gleitender Objekte am Seitenanfang
+\setcounter{bottomnumber}{10}% maximale Anzahl gleitender Objekte am Seitenende
+\renewcommand{\topfraction}{1.0}% Anteil den gleitende Objekte am Seitenanfang einnehmen dürfen
+\renewcommand{\bottomfraction}{1.0}% Anteil den gleitende Objekte am Seitenende einnehmen dürfen
+% \end{macrocode}
+% Tables
+% \begin{macrocode}
+\def\fps@table{htbp}
+\def\fnum@table{\tablename~\thetable}
+\renewcommand{\arraystretch}{1.1}
+% \end{macrocode}
+% Indention for equations with fleqn option
+% \begin{macrocode}
+\setlength{\mathindent}{0.5cm}
+% \end{macrocode}
+% Indention for verbatim listings
+% \begin{macrocode}
+\RequirePackage{verbatim}
+\def\verbatim@processline{\hskip0.5cm\the\verbatim@line\par}
+% \end{macrocode}
+% Set rule width und correct size
+% \begin{macrocode}
+\renewcommand\footnoterule{%
+ \kern-3\p@
+ \hrule\@width 2.6cm
+ \kern5.6\p@}
+\RequirePackage[hang,stable,bottom,belowfloats]{footmisc}
+\setlength{\footnotemargin}{5mm} % Abstand Fußnotenzähler/Fußnotentext
+\def\@cidmakefnmark{\rlap{\normalfont\@thefnmark}}%
+\long\def\@makefntext#1{%
+ \ifFN@hangfoot
+ \bgroup
+ \setbox\@tempboxa\hbox{%
+ \ifdim\footnotemargin>0pt
+ \hb@xt@\footnotemargin{\@cidmakefnmark\hss}%
+ \else
+ \@cidmakefnmark
+ \fi%
+ }%
+ \leftmargin\wd\@tempboxa
+ \rightmargin\z@
+ \linewidth \columnwidth
+ \advance \linewidth -\leftmargin
+ \parshape \@ne \leftmargin \linewidth
+ \@totalleftmargin \leftmargin
+ \footnotesize
+ \@setpar{{\@@par}}%
+ \leavevmode
+ \llap{\box\@tempboxa}%
+ \parskip\hangfootparskip\relax
+ \parindent\hangfootparindent\relax
+ \footnotelayout#1%
+ \ifFN@hangfoot
+ \par\egroup
+ \fi%
+\fi%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\setlength{\parindent}{5mm}
+% \end{macrocode}
+% Set symbols for itemize
+% \begin{macrocode}
+\renewcommand{\labelitemi}{\textbullet}
+\renewcommand*\itemize{%
+ \ifnum \@itemdepth >\thr@@\@toodeep\else
+ \setlength{\labelsep}{0.70cm}%
+ \advance\@itemdepth\@ne
+ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
+ \expandafter
+ \list
+ \csname\@itemitem\endcsname
+ {\def\makelabel##1{\hss\llap{##1}}%
+ %\setlength{\itemsep}{8pt}%
+ \setlength{\parsep}{-2pt}}%
+ \fi}
+% \end{macrocode}
+% and numbered lists
+% \begin{macrocode}
+ \renewcommand{\labelenumii}{\alph{enumii})}
+ \renewcommand*\enumerate{%
+ \ifnum \@enumdepth >\thr@@
+ \@toodeep
+ \else
+ \setlength{\labelsep}{0.70cm}%Abstand zur Aufzählungsnummer
+ \advance\@enumdepth \@ne
+ \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
+ \fi
+ \@ifnextchar[{\@enumlabel@{\@enumerate@}[}{\@enumerate@}}
+ \def\@enumerate@{%
+ \expandafter\list\csname label\@enumctr\endcsname{%
+ \usecounter{\@enumctr}%
+ \def\makelabel##1{\hss\llap{##1}}
+ \setlength{\labelsep}{0.6cm} %Einrückung des Aufzählungszeichens
+ %\setlength{\itemsep}{8pt}%
+ \setlength{\parsep}{-2pt}}
+ }%
+\usepackage{enumitem}
+\setlist{noitemsep}
+% \end{macrocode}
+% \begin{macro}{\andname}
+% \begin{macrocode}
+\newcommand{\andname}{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\addto\captionsngerman{%
+ \def\andname{und}%
+ \def\figurename{Abb.}%
+ \def\tablename{Tab.}%
+ \def\lstlistingname{List.}%
+ \def\bibname{Literaturverzeichnis}%
+ \def\refname{Literaturverzeichnis}%
+}%
+% \end{macrocode}
+% \begin{macrocode}
+\addto\captionsenglish{%
+ \def\andname{and}%
+ \def\figurename{Fig.}%
+ \def\tablename{Tab.}%
+ \def\lstlistingname{List.}%
+ \def\bibname{Bibliography}%
+ \def\refname{Bibliography}%
+}%
+\addto\captionsUKenglish{%
+ \def\andname{and}%
+ \def\figurename{Fig.}%
+ \def\tablename{Tab.}%
+ \def\lstlistingname{List.}%
+ \def\bibname{Bibliography}%
+ \def\refname{Bibliography}%
+}%
+\addto\captionsUSenglish{%
+ \def\andname{and}%
+ \def\figurename{Fig.}%
+ \def\tablename{Tab.}%
+ \def\lstlistingname{List.}%
+ \def\bibname{Bibliography}%
+ \def\refname{Bibliography}%
+}%
+% \end{macrocode}
+% \begin{macro}{\startpage}
+% \begin{macrocode}
+\newcommand*{\startpage}[1]{\setcounter{page}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\booktitle}
+% \begin{macrocode}
+\def\@bookshorttitle{}
+\newcommand{\booktitle}{\@dblarg\@@booktitle}
+\def\@@booktitle[#1]#2{\gdef\@bookshorttitle{#1}\gdef\@booktitle{#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\booksubtitle}
+\newcommand{\booksubtitle}[1]{\gdef\@booksubtitle{#1}}
+% \end{macro}
+% \begin{macro}{\editor}
+% \begin{macrocode}
+\newcommand*{\@editor}{}
+\newcommand*{\editor}[1]{\renewcommand{\@editor}{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\newcommand*{\@yearofpublication}{\the\year}
+\newcommand*{\yearofpublication}[1]{\renewcommand*{\@yearofpublication}{#1}}
+% \end{macrocode}
+% set-up for header and footer
+% \begin{macrocode}
+\renewcommand{\sectionmark}[1]{}%
+\renewcommand{\subsectionmark}[1]{}%
+\fancypagestyle{plain}{%
+ \fancyhead{}% Löscht alle Kopfzeileneinstellungen
+ \renewcommand{\headrulewidth}{0.0pt}% Linie unter Kopfzeile
+ }%
+\ifnorunningheads
+ \pagestyle{empty}%
+\else%
+ \pagestyle{fancy}%
+ \fancyhead[RE]{\footnotesize\leftmark{}}%
+ \fancyhead[LO]{\footnotesize\rightmark{}}%
+ \fancyhead[LE,RO]{\thepage}%
+ \fancyfoot{}% Löscht alle Fußzeileneinstellungen
+ \renewcommand{\headrulewidth}{0.4pt}%Linie unter Kopfzeile
+ \fancyheadoffset[ol]{0.8mm}%
+ \fancyheadoffset[el]{0.8mm}%
+ \fancyheadoffset[or]{-0.8mm}%
+ \fancyheadoffset[er]{-0.8mm}%
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{url}
+\urlstyle{same}
+% \end{macrocode}
+% improve wrapping of URLs - hint by http://tex.stackexchange.com/a/10419/9075
+% \begin{macrocode}
+\g@addto@macro{\UrlBreaks}{\UrlOrds}
+% \end{macrocode}
+% \begin{macrocode}
+ \def\UrlBigBreaks{\do\:\do\-}%
+ \def\UrlBigBreaks{\do\:\do\-\do\/}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{xspace}
+% \end{macrocode}
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+\RequirePackage{authblk}
+\newcommand{\@authlisthead}{}
+\newtoks\@temptokenb
+\newtoks\@temptokenc
+\renewcommand\Authsep{, }
+\renewcommand\Authands{\iflanguage{ngerman}{ und }{, and }}
+\renewcommand\Authand{\iflanguage{ngerman}{ und }{ and }}
+
+\renewcommand\author[4][]%
+{\ifnewaffil\addtocounter{affil}{1}%
+ \edef\AB@thenote{\arabic{affil}}\fi
+ \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}%
+ \ifcsundef{@emailsandorcids\AB@note}{\csgdef{@emailsandorcids\AB@note}{}}{}%
+ \setcounter{Maxaffil}{0}\fi
+ \ifnum\value{authors}=0\def\@firstauthor{#2}\fi
+ \ifnum\value{authors}>1\relax
+ \@namedef{@sep\number\c@authors}{\Authsep}\fi
+ \addtocounter{authors}{1}%
+ \begingroup
+ \let\protect\@unexpandable@protect \let\and\AB@pand
+ \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}%
+ \@temptokena=\expandafter{\AB@authors}%
+ \@temptokenb=\expandafter{\AB@authors}%
+ {\def\\{\protect\\[\@affilsep]\protect\Affilfont
+ \protect\AB@resetsep}%
+ \xdef\AB@author{\AB@blk@and#2}%
+ \ifnewaffil\gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}%
+ \xdef\AB@authors{\the\@temptokena\AB@blk@and}%
+ \else
+ \xdef\AB@authors{\the\@temptokena\AB@as\AB@au@str}%
+ \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}%
+ \gdef\AB@as{\Authsep}%
+ \fi
+ \gdef\AB@au@str{#2}}%
+ \@temptokena=\expandafter{\AB@authlist}%
+ \@temptokenb=\expandafter{\@authlisthead}%
+ \let\\=\authorcr
+ \xdef\AB@authlist{\the\@temptokena
+ \protect\@nameuse{@sep\number\c@authors}%
+ \protect\Authfont#2\AB@authnote{\AB@note}}%
+ \xdef\@authlisthead{\the\@temptokenb
+ \protect\@nameuse{@sep\number\c@authors}%
+ \protect\Authfont#2}%
+ \endgroup
+ \ifnum\value{authors}>2\relax
+ \@namedef{@sep\number\c@authors}{\Authands}\fi
+ \ifcsempty{@emailsandorcids\AB@note}%
+ {\csgappto{@emailsandorcids\AB@note}{%
+ \if\relax#3\relax\else\email{#3}\fi\if\relax#4\relax\else\ \orcid{#4}\fi}%
+ }%
+ {\csgappto{@emailsandorcids\AB@note}{%
+ \if\relax#3\relax\else\ |\ \email{#3}\fi\if\relax#4\relax\else\ \orcid{#4}\fi}}%
+
+ \newaffilfalse
+}
+
+\renewcommand\@author{\ifx\AB@affillist\AB@empty\AB@author\else
+ \ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}%
+ \AB@authlist\AB@affillist
+ \else\AB@authors\fi\fi}
+
+\renewcommand\affil[2][]%
+{\newaffiltrue\let\AB@blk@and\AB@pand
+ \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}%
+ \setcounter{Maxaffil}{0}\fi
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \def\thanks{\protect\thanks}\def\footnotetext{\protect\footnotetext}%
+ \@temptokena=\expandafter{\AB@authors}%
+ {\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}%
+ \xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str
+ \protect\\[\affilsep]\protect\Affilfont\AB@temp}%
+ \gdef\AB@las{}\gdef\AB@au@str{}%
+ {\def\\{, \ignorespaces}\xdef\AB@temp{#2}}%
+ \@temptokena=\expandafter{\AB@affillist}%
+ \xdef\AB@affillist{\the\@temptokena \AB@affilsep
+ \footnotetext[\AB@note]{%
+ \raggedright\AB@temp\ifcsempty{@emailsandorcids\AB@note}{}{, \csuse{@emailsandorcids\AB@note}}}%
+ }
+ \endgroup
+ \let\AB@affilsep\AB@affilsepx
+}
+\def\maketitle{%
+ \ifnum\value{authors}>2
+ \authorrunning{\@firstauthor\ et\ al.}%
+ \else
+ \authorrunning{\@authlisthead}
+ \fi%
+ \AB@maketitle%
+}
+% \end{macrocode}
+% \begin{macrocode}
+\ifusehyperref
+ \AddToHook{env/document/begin}[cid/loadhyp]{%
+ \RequirePackage{hyperref}
+ \RequirePackage[startatroot]{bookmark}
+ \RequirePackage{colorprofiles}
+ \RequirePackage[a-2b,mathxmp]{pdfx}[2018/12/22]
+ \hypersetup{%
+ colorlinks=false,%
+ %allcolors=black,%
+ linkcolor=BrickRed,
+ citecolor=Green,
+ filecolor=Mulberry,
+ urlcolor=NavyBlue,
+ menucolor=BrickRed,
+ runcolor=Mulberry,
+ linkbordercolor=BrickRed,
+ citebordercolor=Green,
+ filebordercolor=Mulberry,
+ urlbordercolor=NavyBlue,
+ menubordercolor=BrickRed,
+ runbordercolor=Mulberry,
+ bookmarks=true,
+ bookmarksnumbered = true,
+ bookmarksopen=true,
+ bookmarksdepth=5,
+ %pdfsubject = {Technical Report},
+ %pdfkeywords = {},
+ %pdfcreator = {HPI},
+ %pdfmetalang = {en-US},
+ %pdfproducer = {CID},
+ %pdflang = {en-US},
+ pdfdisplaydoctitle = true,
+ pdfpagemode = UseOutlines,
+ pdfpagelayout = SinglePage,
+ pdfview = Fit,
+ linktoc=all%
+ }
+ \renewcommand{\theHsection}{\thecidarticle-\arabic{section}}%
+ \RequirePackage{orcidlink}%
+% \end{macrocode}
+% enables correct jumping to figures when referencing
+% \begin{macrocode}
+ \RequirePackage[all]{hypcap}%
+ }%
+ \DeclareHookRule{env/document/begin}{cid/loadhyp}{before}{biblatex}
+\else
+ \RequirePackage{tikz}
+ \usetikzlibrary{svg.path}
+ \definecolor{orcidlogocol}{HTML}{A6CE39}
+ \tikzset{
+ orcidlogo/.pic={
+ \fill[orcidlogocol] svg{M256,128c0,70.7-57.3,128-128,128C57.3,256,0,198.7,0,128C0,57.3,57.3,0,128,0C198.7,0,256,57.3,256,128z};
+ \fill[white] svg{M86.3,186.2H70.9V79.1h15.4v48.4V186.2z}
+ svg{M108.9,79.1h41.6c39.6,0,57,28.3,57,53.6c0,27.5-21.5,53.6-56.8,53.6h-41.8V79.1z M124.3,172.4h24.5c34.9,0,42.9-26.5,42.9-39.7c0-21.5-13.7-39.7-43.7-39.7h-23.7V172.4z}
+ svg{M88.7,56.8c0,5.5-4.5,10.1-10.1,10.1c-5.6,0-10.1-4.6-10.1-10.1c0-5.6,4.5-10.1,10.1-10.1C84.2,46.7,88.7,51.3,88.7,56.8z};
+ }
+ }
+
+ %% Reciprocal of the height of the svg whose source is above. The
+ %% original generates a 256pt high graphic; this macro holds 1/256.
+ \newcommand{\@OrigHeightRecip}{0.00390625}
+
+ %% We will compute the current X height to make the logo the right height
+ \newlength{\@curXheight}
+
+ \DeclareRobustCommand\orcidlink[1]{%
+ \setlength{\@curXheight}{\fontcharht\font`X}%
+ \mbox{%
+ \begin{tikzpicture}[yscale=-\@OrigHeightRecip*\@curXheight,
+ xscale=\@OrigHeightRecip*\@curXheight,transform shape]
+ \pic{orcidlogo};
+ \end{tikzpicture}%
+ }{}}
+
+ \providecommand{\texorpdfstring}[2]{#2}%
+ \providecommand{\pdfbookmark}[3][]{\relax}%
+ \providecommand{\phantomsection}{\relax}
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+\ifusecleveref%
+ \AtEndPreamble{%
+ \ifcidenglish
+ \RequirePackage[capitalise,nameinlink]{cleveref}
+ \crefname{section}{Sect.}{Sect.}
+ \Crefname{section}{Sect.}{Sect.}
+ \else
+ \RequirePackage[ngerman,nameinlink]{cleveref}
+ \fi%
+ \crefname{figure}{\figurename}{\figurename}
+ \Crefname{figure}{\figurename}{\figurename}
+ \crefname{listing}{\lstlistingname}{\lstlistingname}
+ \Crefname{listing}{\lstlistingname}{\lstlistingname}
+ \crefname{table}{\tablename}{\tablename}
+ \Crefname{table}{\tablename}{\tablename}
+ }%
+\fi%
+% \end{macrocode}
+% \begin{macrocode}
+%\def\and{\texorpdfstring{\unskip\hspace{-0.42em},\hspace{.6em}}{, }}%
+%\def\and{\texorpdfstring{\,,\ }{, }}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*{\cid@abbrv}[1]{#1\@\xspace}
+\newcommand*{\cidabbrv}[2]{\gdef#1{\cid@abbrv{#2}}}
+\newcommand*{\cid@initialism}[1]{\textsc{#1}\xspace}
+\newcommand*{\cidinitialism}[2]{\gdef#1{\cid@initialism{#2}}}
+\newcommand*{\ie}{\cid@abbrv{i.\,e.}}
+\newcommand*{\eg}{\cid@abbrv{e.\,g.}}
+\newcommand*{\cf}{\cid@abbrv{cf.}}
+\newcommand*{\etal}{\cid@abbrv{et~al.}}
+\newcommand*{\OMG}{\cid@initialism{omg}}
+\newcommand*{\BPM}{\cid@initialism{bpm}}
+\newcommand*{\BPMN}{\cid@initialism{bpmn}}
+\newcommand*{\BPEL}{\cid@initialism{bpel}}
+\newcommand*{\UML}{\cid@initialism{uml}}
+% \end{macrocode}
+% bibliography
+% \begin{macrocode}
+%\renewenvironment{thebibliography}[1]
+%{\iflnienglish\selectlanguage{english}\else\selectlanguage{ngerman}\fi
+% \section*{\refname}%
+% \bgroup\small%
+% \list{\@biblabel{\@arabic\c@enumiv}}%
+% {\settowidth\labelwidth{\@biblabel{#1}}%
+% \leftmargin\labelwidth
+% \advance\leftmargin\labelsep
+% \@openbib@code
+% \usecounter{enumiv}%
+% \let\p@enumiv\@empty
+% \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+% \sloppy
+% \clubpenalty4000
+% \@clubpenalty \clubpenalty
+% \widowpenalty4000%
+% \sfcode`\.\@m}
+%{\def\@noitemerr
+% {\@latex@warning{Empty `thebibliography' environment}}%
+% \endlist\egroup}
+% \end{macrocode}
+% \begin{macrocode}
+\frenchspacing
+\tolerance 1414
+\hbadness 1414
+\emergencystretch 1.5em
+\hfuzz 0.3pt
+\widowpenalty=10000
+\displaywidowpenalty=10000
+\clubpenalty=9999
+\interfootnotelinepenalty=9999
+\brokenpenalty=2000
+\vfuzz \hfuzz
+\raggedbottom
+% \end{macrocode}
+% \begin{macrocode}
+%</class>
+% \end{macrocode}
+%\Finale
+%
+%\iffalse
+%
+%<*template>
+%%% Um einen Artikel auf deutsch zu schreiben, genügt es die Klasse ohne
+%%% Parameter zu laden.
+\documentclass[]{cid}
+%%% To write an article in English, please use the option ``english'' in order
+%%% to get the correct hyphenation patterns and terms.
+%%% \documentclass[english]{cid}
+%%%
+%%% Die CID-Klasse nutzt biblatex, so dass man die .bib-Datei angeben muss:
+\addbibresource{cid-example.bib} %Beispiel-Bibliography
+
+\usepackage{blindtext} %nur zu Testzwecken
+%%
+\begin{document}
+%%% Mehrere Autoren werden durch \and voneinander getrennt.
+%%% Die Fußnote enthält die Adresse sowie eine E-Mail-Adresse.
+%%% Das optionale Argument (sofern angegeben) wird jeweils für das
+%%% Inhaltsverzeichnis *und* den Kolumnentitel im Kopf der Seite verwendet.
+%%% Die Angaben für den Kolumnentitel können mittels optionalen Arguments
+%%% für \title bzw. \author gesetzt werden.
+\title[Ein Kurztitel wenn der Titel z.B. Fußnoten enthält]{Ein sehr langer Titel über mehrere Zeilen mit sehr vielen
+Worten und noch mehr Buchstaben}
+%%%\subtitle{Untertitel / Subtitle} % if needed
+\author[1]{Vorname1 Nachname1}{vorname.name@affiliation1.de}{0000-0000-0000-0000}
+\author[2]{Firstname2 Lastname2}{vorname.name@affiliation2.de}{0000-0000-0000-0000}
+\author[1]{Firstname3 Lastname 3}{vorname.name@affiliation1.de}{0000-0000-0000-0000}
+\author[1]{Firstname4 Lastname 4}{vorname.name@affiliation1.de}{0000-0000-0000-0000}
+\affil[1]{Universität\\Abteilung\\Straße\\Postleitzahl Ort\\Land}
+\affil[2]{University\\Department\\Address\\Country}
+
+\maketitle
+
+\begin{abstract}
+Die Zusammenfassung sollte etwa 70 bis 150 Worte umfassen und besteht in der Regel aus einem Absatz.
+\end{abstract}
+\begin{keywords}
+Schlagwort1 \and Schlagwort2 %Keyword1 \and Keyword2
+\end{keywords}
+%%% Beginn des Artikeltexts
+\section{Überschrift der Ebene 1}
+\blindtext[2]
+
+\subsection{Referenzen auf Einträge in der Bibliografie}
+Jetzt ein paar Referenzen auf \cite{Bernhard2017} oder auch \cite{ANKOM2014} sowie auf eine Liste \cites[17]{Anderson2012}{Berges2013}{Anderson2001}.
+
+\subsection{Grafiken}
+Hier kommt eine Grafik:
+\begin{figure}
+ \includegraphics[width=\textwidth]{example-image-a}
+ \caption{Eine Beschriftung}
+ \label{fig:Beispielgrafik}
+\end{figure}
+
+Auf die Grafik kann man dann verweisen: \cref{fig:Beispielgrafik}.
+
+\subsection{Mehr Text}
+\blindtext[18]
+
+\subsection{Überschrift der Ebene 2}
+\blindtext[5]
+
+%%% Ausgabe der Bibliographie (biber vorher aufrufen)
+\printbibliography
+\end{document}
+%</template>
+%<*examplebib>
+@collection{Anderson2001,
+ address = {New York and others},
+ title = {A taxonomy for learning, teaching, and assessing},
+ subtitle = {A revision of Bloom's taxonomy of educational objectives (gekürzte Version)},
+ isbn = {978-0-321-08405-7},
+ publisher = {Longman},
+ editor = {Anderson, Lorin W. and Krathwohl, David R.},
+ year = {2001},
+}
+
+@article{Anderson2012,
+ title = {Design-based research},
+ subtitle = {A decade of progress in education research?},
+ author = {Anderson, Terry and Shattuck, Julie},
+ journal = {Educational researcher},
+ volume = {41},
+ number = {1},
+ pages = {16-25},
+ year = {2012},
+ publisher= {Sage Publications Sage CA},
+ location = {Los Angeles, CA}
+}
+
+@inproceedings{Berges2013,
+ author = {Berges, Marc and Hubwieser, Peter and Magenheim, Johannes and Bender, Elena and Bröker, Kathrin and Margaritis-Kopecki, Melanie and Neugebauer, Jonas and Schaper, Niclas and Schubert, Sigrid and Ohrndorf, Laura},
+ title = {Developing a Competency Model for Teaching Computer Science in Schools},
+ year = {2013},
+ isbn = {9781450320788},
+ publisher= {Association for Computing Machinery},
+ location = {New York, NY, USA},
+ doi = {10.1145/2462476.2465607},
+ booktitle= {Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education},
+ pages = {327},
+ location = {Canterbury, England, UK},
+ eventtitle = {ITiCSE '13}
+}
+
+@book{Bernhard2017,
+ title = {Durch Europäisierung zu mehr Durchlässigkeit?: Veränderungsdynamiken des Verhältnisses von beruflicher Bildung zur Hochschulbildung in Deutschland und Frankreich},
+ author = {Bernhard, Nadine},
+ year = {2017},
+ publisher= {Verlag Barbara Budrich}
+}
+
+@online{ANKOM2014,
+ title = {ANKOM -- Übergänge von der beruflichen in die hochschulische Bildung},
+ url = {http://ankom.dzhw.eu/},
+ urldate = {2021-09-20},
+ author = {{Deutsches Zentrum für Hochschul- und Wissenschaftsforschung (GmbH)}},
+ year = {2014}
+}
+%</examplebib>
+% \end{macrocode}
+%\fi
diff --git a/macros/latex/contrib/cid/cid.ins b/macros/latex/contrib/cid/cid.ins
new file mode 100644
index 0000000000..126dd3e94b
--- /dev/null
+++ b/macros/latex/contrib/cid/cid.ins
@@ -0,0 +1,95 @@
+%%
+%% This is file `cid.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% cid.dtx (with options: `install')
+%% --------| -----------------------------------------------------------------
+%% cid:| A class for submissions to the ``Commentarii informaticae didacticae (CID)''
+%% Author:| Martin Sievers
+%% Email:| martin.sievers@schoenerpublizieren.de
+%% License:| Released under the LaTeX Project Public License v1.3c or later
+%% See:| http://www.latex-project.org/lppl.txt
+%% --------| -----------------------------------------------------------------
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\declarepreamble\classpre
+--------| -----------------------------------------------------------------
+ cid:| A class for submissions to the ``Commentarii informaticae didacticae (CID)''
+ Author:| Martin Sievers
+ Email:| martin.sievers@schoenerpublizieren.de
+License:| Released under the LaTeX Project Public License v1.3c or later
+ See:| http://www.latex-project.org/lppl.txt
+--------| -----------------------------------------------------------------
+\endpreamble
+
+\def\templatepre{%
+\perCent\space !TeX encoding = UTF-8^^J%
+\perCent\space !TeX program = pdflatex^^J%
+\perCent\space !BIB program = biber^^J%
+\perCent\space !TeX spellcheck = en_US^^J%
+}
+
+\def\templatepreger{%
+\perCent\space !TeX encoding = UTF-8^^J%
+\perCent\space !TeX program = pdflatex^^J%
+\perCent\space !BIB program = biber^^J%
+\perCent\space !TeX spellcheck = de_DE^^J%
+}
+
+\postamble
+
+Copyright (C) 2023 by Universitätsverlag Potsdam
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License (LPPL), either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in the file:
+
+http://www.latex-project.org/lppl.txt
+
+This work is "maintained" (as per LPPL maintenance status) by
+Martin Sievers.
+
+This work consists of the file cid.dtx
+ cid.ins
+ README.md
+ CHANGELOG.md
+ and the derived files cid.pdf
+ cid.cls
+ cid-author-template.tex
+ cid-example.bib
+\endpostamble
+
+\usedir{tex/latex/cid}
+\AddGenerationDate
+\generate{
+ \usepreamble\classpre
+ \file{\jobname.cls}{\from{\jobname.dtx}{class}}
+}
+\endbatchfile
+%%
+%% Copyright (C) 2023 by Universitätsverlag Potsdam
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Martin Sievers.
+%%
+%% This work consists of the file cid.dtx
+%% cid.ins
+%% README.md
+%% CHANGELOG.md
+%% and the derived files cid.pdf
+%% cid.cls
+%% cid-author-template.tex
+%% cid-example.bib
+%%
+%% End of file `cid.ins'.
diff --git a/macros/latex/contrib/cid/cid.pdf b/macros/latex/contrib/cid/cid.pdf
new file mode 100644
index 0000000000..a7033364c9
--- /dev/null
+++ b/macros/latex/contrib/cid/cid.pdf
Binary files differ
diff --git a/macros/latex/contrib/kantlipsum/README.md b/macros/latex/contrib/kantlipsum/README.md
index 6bfce609d0..3061cf96d1 100644
--- a/macros/latex/contrib/kantlipsum/README.md
+++ b/macros/latex/contrib/kantlipsum/README.md
@@ -2,16 +2,11 @@ The kantlipsum package spits out sentences in Kantian style provided
by the "Kant generator for Python" by Mark Pilgrim, described in the
book "Dive into Python".
-This is version 0.8a of the package
+This is version 0.8b of the package
-Changes from earlier version:
+Version 0.8b is a maintenance release.
-Support for printing only a few sentences from one paragraph has been added;
-the code has been polished.
-
-Version 0.8a fixes a small glitch.
-
- Copyright 2011-2019 Enrico Gregorio
+ Copyright 2011-2023 Enrico Gregorio
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
diff --git a/macros/latex/contrib/kantlipsum/kantlipsum.dtx b/macros/latex/contrib/kantlipsum/kantlipsum.dtx
index 744a8c7f53..9d3faf6bee 100644
--- a/macros/latex/contrib/kantlipsum/kantlipsum.dtx
+++ b/macros/latex/contrib/kantlipsum/kantlipsum.dtx
@@ -7,16 +7,13 @@ The kantlipsum package spits out sentences in Kantian style provided
by the "Kant generator for Python" by Mark Pilgrim, described in the
book "Dive into Python".
-This is version 0.8a of the package
+This is version 0.8b of the package
Changes from earlier version:
-Support for printing only a few sentences from one paragraph has been added;
-the code has been polished.
+Version 0.8b is a maintenance release.
-Version 0.8a fixes a small glitch.
-
- Copyright 2011-2019 Enrico Gregorio
+ Copyright 2011-2023 Enrico Gregorio
It may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -65,7 +62,7 @@ See http://www.latex-project.org/lppl.txt
---------------------------------------------------------------
\endpreamble
\postamble
-Copyright (C) 2011-2019 by
+Copyright (C) 2011-2023 by
Enrico Gregorio
enrico DOT gregorio AT univr DOT it
@@ -101,10 +98,6 @@ This work consists of the file kantlipsum.dtx
\expandafter\endgroup
\fi
%</internal>
-%<*driver|package>
-\RequirePackage{expl3}[2019/07/01]
-\RequirePackage{xparse}
-%</driver|package>
%<*driver>
\documentclass[a4paper,full]{l3doc}
\usepackage{bookmark}
@@ -141,6 +134,7 @@ This work consists of the file kantlipsum.dtx
%\changes{v0.7}{2017/11/16}{Use new kernel function}
%\changes{v0.8}{2017/07/23}{Print only a few sentences of a paragraph}
%\changes{v0.8a}{2017/07/24}{Respect options and *-version}
+%\changes{v0.8b}{2023/11/21}{Maintenance release}
%
% \begin{documentation}
%
@@ -275,16 +269,16 @@ This work consists of the file kantlipsum.dtx
% \begin{macrocode}
\ProvidesExplPackage
{kantlipsum}
- {2019/07/23}
- {0.8}
+ {2023/11/21}
+ {0.8b}
{Generate text in Kantian style}
% \end{macrocode}
%
% A check to make sure that \pkg{expl3} is not too old
% \begin{macrocode}
-\@ifpackagelater { expl3 } { 2019/07/01 }
- { }
- {
+\@ifl@t@r\ExplLoaderFileDate{2022-11-09}
+ {}
+ {%
\PackageError { kantlipsum } { Support~package~expl3~too~old }
{
You~need~to~update~your~installation~of~the~bundles~
@@ -425,7 +419,7 @@ This work consists of the file kantlipsum.dtx
}
\cs_new_protected:Nn \@@_process:nnnn
{
- \tl_set:Nx \l_tmpa_tl { \seq_item:Nn \g_@@_pars_seq {#1} }
+ \tl_set:Ne \l_tmpa_tl { \seq_item:Nn \g_@@_pars_seq {#1} }
\tl_if_novalue:nTF {#4}
{ \@@_extract:nnV {#3} {#3} \l_tmpa_tl }
{ \@@_extract:nnV {#3} {#4} \l_tmpa_tl }
@@ -494,11 +488,11 @@ This work consists of the file kantlipsum.dtx
\msg_error:nnn {kantlipsum} {already-defined} {#1}
}
{
- \tl_set:Nx \l_tmpa_tl { \seq_item:Nn \g_@@_pars_seq {#2} }
+ \tl_set:Ne \l_tmpa_tl { \seq_item:Nn \g_@@_pars_seq {#2} }
\tl_if_novalue:nTF {#4}
{ \@@_extract:nnV {#3} {#3} \l_tmpa_tl }
{ \@@_extract:nnV {#3} {#4} \l_tmpa_tl }
- \cs_new:Npx #1 { \l_tmpa_tl }
+ \cs_new:Npe #1 { \l_tmpa_tl }
}
}
% \end{macrocode}
@@ -512,12 +506,12 @@ This work consists of the file kantlipsum.dtx
{
\seq_set_split:Nnn \l_@@_sentences_seq { . } {#3}
\seq_clear:N \l_tmpa_seq
- \seq_indexed_map_inline:Nn \l_@@_sentences_seq
+ \seq_map_indexed_inline:Nn \l_@@_sentences_seq
{
\int_compare:nT { #1 <= ##1 <= #2 }
{\seq_put_right:Nn \l_tmpa_seq { ##2 } }
}
- \tl_set:Nx \l_tmpa_tl { \seq_use:Nn \l_tmpa_seq { .~ }. }
+ \tl_set:Ne \l_tmpa_tl { \seq_use:Nn \l_tmpa_seq { .~ }. }
}
\cs_generate_variant:Nn \@@_extract:nnn { nnV }
% \end{macrocode}
@@ -3616,7 +3610,7 @@ whole content of philosophy.}
% stating how many sentences are available.
% \begin{macrocode}
\group_end:
-\msg_info:nnx {kantlipsum} {how-many}
+\msg_info:nne {kantlipsum} {how-many}
{ \int_eval:n {\seq_count:N \g_@@_pars_seq} }
% \end{macrocode}
%
diff --git a/macros/latex/contrib/kantlipsum/kantlipsum.pdf b/macros/latex/contrib/kantlipsum/kantlipsum.pdf
index 297d1eb941..d58f559606 100644
--- a/macros/latex/contrib/kantlipsum/kantlipsum.pdf
+++ b/macros/latex/contrib/kantlipsum/kantlipsum.pdf
Binary files differ
diff --git a/macros/latex/contrib/q-and-a/Q-and-A.cls b/macros/latex/contrib/q-and-a/Q-and-A.cls
index ee0edba93b..5bc8c0d1fa 100644
--- a/macros/latex/contrib/q-and-a/Q-and-A.cls
+++ b/macros/latex/contrib/q-and-a/Q-and-A.cls
@@ -9,10 +9,10 @@
%%
%% http://www.latex-project.org/lppl.txt
%%
-\NeedsTeXFormat{LaTeX2e}[2022-06-01]
+\NeedsTeXFormat{LaTeX2e}[2023/11/01]
\ProvidesExplClass
{Q-and-A}
- {2023/11/19} {}
+ {2023/11/21} {}
{Document class for typesetting Q&A conversation}
\keys_define:nn { Q-and-A }
@@ -231,7 +231,7 @@
}
\newlist { QA-entry } { description } { 1 }
-\setlist [ QA-entry ] { font = \normalfont\sffamily, leftmargin = \l_QA_list_indentation_dim, labelsep = \l_QA_list_labelsep_dim, labelwidth=4em, itemindent=0pt, parsep=\parskip }
+\setlist [ QA-entry ] { font = \normalfont\sffamily, leftmargin = \l_QA_list_indentation_dim, labelsep = \l_QA_list_labelsep_dim, labelwidth=10em, itemindent=0pt, parsep=\parskip }
\renewcommand{\descriptionlabel}[1]{#1}
\bool_new:N \l__QA_inside_list_bool
@@ -440,6 +440,7 @@
EnableMultipleAnswer,
DisableMultipleQuestion,
DisableMultipleAnswer,
+ QALabel, QARef,
}
{% LaTeX3 commands
}
@@ -582,6 +583,47 @@
\dim_gset:Nn \labelsep { \l_tmpa_dim }
}
+\property_new:nnnn { Q-and-A/type } { now } { void } { \l__QA_current_type_tl }
+\NewDocumentCommand \QALabel { m }
+ {
+ \group_begin:
+ \exp_args:No \addtocounter { QA_ \l__QA_current_type_tl } { -1 }
+ \exp_args:No \refstepcounter { QA_ \l__QA_current_type_tl }
+ \property_record:nn { #1 } { label, target, Q-and-A/type }
+ \group_end:
+ }
+
+\tl_new:N \l_QA_Q_ref_style_tl
+\tl_new:N \l_QA_A_ref_style_tl
+\NewDocumentCommand \QASetRefStyle { O{void} m }
+ {
+ \tl_set:cn { l_QA_ #1 _ref_style_tl } { #2 }
+ }
+\NewCommandCopy \SetRefStyle \QASetRefStyle
+
+\QASetRefStyle[Q]
+ {
+ \sffamily\bfseries
+ \color{QA-Q-text!33!QA-Q-back}
+ }
+\QASetRefStyle[A]
+ {
+ \sffamily\bfseries
+ \color{QA-A-text!33!QA-A-back}
+ }
+
+\NewDocumentCommand \QARef { m }
+ {
+ \group_begin:
+ \hyperlink { \property_ref:nn { #1 } { target } }
+ {
+ \cs_if_exist_use:c { l_QA_ \property_ref:nn { #1 } { Q-and-A/type } _ref_style_tl }
+ \cs_if_exist_use:c { l_QA_ \property_ref:nn { #1 } { Q-and-A/type } _label_text_tl }
+ \QA_show_subcounter_with_style:n { \property_ref:nn { #1 } { label } }
+ }
+ \group_end:
+ }
+
\NewDocumentCommand \QASection { m }
{
\par\medskip\smallskip
@@ -613,12 +655,20 @@
\newenvironment{QARight}
{\parskip=0pt\par\medskip\nopagebreak\raggedleft}
{\par\noindent\ignorespacesafterend}
-\NewDocumentCommand \QACompactCenterText { m }
+
+\NewDocumentCommand \QACaption { m } { }
+\NewDocumentCommand \QASetCaptionStyle { m }
{
- \begin{QACompactCenter}
- #1
- \end{QACompactCenter}
+ \RenewDocumentCommand \QACaption { m }
+ {
+ \begin{QACompactCenter}
+ #1
+ \end{QACompactCenter}
+ }
}
+\NewCommandCopy \SetCaptionStyle \QASetCaptionStyle
+\QASetCaptionStyle { #1 }
+
\NewDocumentCommand \QAShowImageCenter { D<>{*} m D<>{*} }
{
\str_if_eq:nnTF { #1 } { * }
@@ -724,6 +774,7 @@
\str_new:N \g__QA_Q_name_str
\NewDocumentEnvironment { QA_Q } { D<>{} }
{
+ \tl_set:Nn \l__QA_current_type_tl { Q }
\str_if_empty:nF { #1 }
{
\str_gset:Nn \g__QA_Q_name_str { #1 }
@@ -746,7 +797,7 @@
\begin{QA-entry}
\str_if_in:NnT \l__QA_theme_str { ChatGPT }
{ \parskip=2\parskip }
- \item[\hfill\color{QA-Q-text!33!QA-Q-back}\l_QA_logo_code_Q_tl]
+ \item[\hfill\color{QA-Q-text!33!QA-Q-back}\l_QA_Q_logo_code_tl]
\str_case:NnT \l__QA_theme_str
{
{ ChatGPT-dark } {}
@@ -767,6 +818,7 @@
\str_new:N \g__QA_A_name_str
\NewDocumentEnvironment { QA_A } { D<>{} }
{
+ \tl_set:Nn \l__QA_current_type_tl { A }
\str_if_empty:nF { #1 }
{
\str_gset:Nn \g__QA_A_name_str { #1 }
@@ -789,7 +841,7 @@
\begin{QA-entry}
\str_if_in:NnT \l__QA_theme_str { ChatGPT }
{ \parskip=2\parskip }
- \item[\hfill\color{QA-A-text!33!QA-A-back}\l_QA_logo_code_A_tl]
+ \item[\hfill\color{QA-A-text!33!QA-A-back}\l_QA_A_logo_code_tl]
\str_case:NnT \l__QA_theme_str
{
{ ChatGPT-dark } {}
@@ -808,6 +860,7 @@
}
\NewDocumentEnvironment { QA_N } { D<>{} }
{
+ \tl_set:Nn \l__QA_current_type_tl { N }
\colorlet{paper}{QA-N-back}
\colorlet{main-text}{QA-N-text}
\colorlet{emph-text}{QA-N-emph}
@@ -844,12 +897,13 @@
\RenewDocumentEnvironment { QA_A } { D<>{} }
{
+ \tl_set:Nn \l__QA_current_type_tl { A }
\str_if_empty:nF { #1 }
{
\str_gset:Nn \g__QA_A_name_str { #1 }
}
\color{QA-A-text}
- \vspace{1em}
+ \vspace*{1em}
\str_if_in:NnT \l__QA_theme_str { ChatGPT }
{ \vspace{.5em} }
\str_if_in:NnT \l__QA_theme_str { ChatGPT-classical }
@@ -864,7 +918,7 @@
\begin{QA-entry}[leftmargin=.5mm, itemindent=0pt, labelsep=\l_QA_list_labelsep_dim, labelwidth=3em]
\str_if_in:NnT \l__QA_theme_str { ChatGPT }
{ \parskip=2\parskip }
- \item[\hfill\color{QA-A-text!33!QA-A-back}\l_QA_logo_code_A_tl]
+ \item[\hfill\color{QA-A-text!33!QA-A-back}\l_QA_A_logo_code_tl]
\str_case:NnT \l__QA_theme_str
{
{ ChatGPT-dark } {}
@@ -889,13 +943,13 @@
\NewDocumentCommand \QASetLogoCode { O{void} m }
{
- \tl_set:cn { l_QA_logo_code_ #1 _tl } { #2 }
+ \tl_set:cn { l_QA_ #1 _logo_code_tl } { #2 }
}
\NewCommandCopy \SetLogoCode \QASetLogoCode
% Set default logo code
-\SetLogoCode[Q]{\textbf{\l_QA_label_Q_tl}}
-\SetLogoCode[A]{\textbf{\l_QA_label_R_tl}}
+\SetLogoCode[Q]{\textbf{\l_QA_Q_label_tl}}
+\SetLogoCode[A]{\textbf{\l_QA_A_label_tl}}
\newcounter{QA_Q}
\newcounter{QA_A}
@@ -928,8 +982,8 @@
}
\NewDocumentCommand \QAShowCounter { m }
{
- \stepcounter{QA_#1}
- \QA_show_subcounter_with_style:n { \tl_use:c {theQA_#1} }
+ \refstepcounter{QA_#1}
+ \QA_show_subcounter_with_style:n { \cs_if_exist_use:c {theQA_#1} }
}
\newcounter{QA_Q_aux}
@@ -1032,70 +1086,98 @@
\bool_if:NT \l__QA_multiple_question_bool { \EnableMultipleQuestion }
\bool_if:NT \l__QA_multiple_answer_bool { \EnableMultipleAnswer }
+\projlib_langauge_define_multilingual_text:Nn \l_QA_Q_label_text_tl
+ {
+ , EN = { Q }
+ , FR = { Q }
+ , DE = { F }
+ , IT = { D }
+ , PT = { P }
+ , BR = { P }
+ , ES = { P }
+ , CN = { 问 }
+ , TC = { 問 }
+ , JP = { Q }
+ , RU = { B }
+ }
\bool_if:NTF \l__QA_numbered_question_bool
{
- \projlib_langauge_define_multilingual_text:Nn \l_QA_label_Q_tl
+ \projlib_langauge_define_multilingual_text:Nn \l_QA_Q_label_tl
{
- , EN = { Q \QAShowCounter{Q} \,: }
- , FR = { Q \QAShowCounter{Q} : }
- , DE = { F \QAShowCounter{Q} \,: }
- , IT = { D \QAShowCounter{Q} \,: }
- , PT = { P \QAShowCounter{Q} \,: }
- , BR = { P \QAShowCounter{Q} \,: }
- , ES = { P \QAShowCounter{Q} \,: }
- , CN = { 问 \QAShowCounter{Q} \,:\hspace{-.5em} }
- , TC = { 問 \QAShowCounter{Q} \,:\hspace{-.5em} }
- , JP = { Q \QAShowCounter{Q} \,: }
- , RU = { B \QAShowCounter{Q} \,: }
+ , EN = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , FR = { \l_QA_Q_label_text_tl \QAShowCounter{Q} : }
+ , DE = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , IT = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , PT = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , BR = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , ES = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , CN = { \l_QA_Q_label_text_tl \, \QAShowCounter{Q} \,:\hspace{-.5em} }
+ , TC = { \l_QA_Q_label_text_tl \, \QAShowCounter{Q} \,:\hspace{-.5em} }
+ , JP = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
+ , RU = { \l_QA_Q_label_text_tl \QAShowCounter{Q} \,: }
}
}
{
- \projlib_langauge_define_multilingual_text:Nn \l_QA_label_Q_tl
+ \projlib_langauge_define_multilingual_text:Nn \l_QA_Q_label_tl
{
- , EN = { Q\,: }
- , FR = { Q: }
- , DE = { F\,: }
- , IT = { D\,: }
- , PT = { P\,: }
- , BR = { P\,: }
- , ES = { P\,: }
- , CN = { 问\,:\hspace{-.33em} }
- , TC = { 問\,:\hspace{-.33em} }
- , JP = { Q\,: }
- , RU = { B\,: }
+ , EN = { \l_QA_Q_label_text_tl \,: }
+ , FR = { \l_QA_Q_label_text_tl : }
+ , DE = { \l_QA_Q_label_text_tl \,: }
+ , IT = { \l_QA_Q_label_text_tl \,: }
+ , PT = { \l_QA_Q_label_text_tl \,: }
+ , BR = { \l_QA_Q_label_text_tl \,: }
+ , ES = { \l_QA_Q_label_text_tl \,: }
+ , CN = { \l_QA_Q_label_text_tl \,:\hspace{-.33em} }
+ , TC = { \l_QA_Q_label_text_tl \,:\hspace{-.33em} }
+ , JP = { \l_QA_Q_label_text_tl \,: }
+ , RU = { \l_QA_Q_label_text_tl \,: }
}
}
+\projlib_langauge_define_multilingual_text:Nn \l_QA_A_label_text_tl
+ {
+ , EN = { A }
+ , FR = { R }
+ , DE = { A }
+ , IT = { R }
+ , PT = { R }
+ , BR = { R }
+ , ES = { R }
+ , CN = { 答 }
+ , TC = { 答 }
+ , JP = { A }
+ , RU = { O }
+ }
\bool_if:NTF \l__QA_numbered_answer_bool
{
- \projlib_langauge_define_multilingual_text:Nn \l_QA_label_R_tl
+ \projlib_langauge_define_multilingual_text:Nn \l_QA_A_label_tl
{
- , EN = { A \QAShowCounter{A} \,: }
- , FR = { R \QAShowCounter{A} : }
- , DE = { A \QAShowCounter{A} \,: }
- , IT = { R \QAShowCounter{A} \,: }
- , PT = { R \QAShowCounter{A} \,: }
- , BR = { R \QAShowCounter{A} \,: }
- , ES = { R \QAShowCounter{A} \,: }
- , CN = { 答 \QAShowCounter{A} \,:\hspace{-.5em} }
- , TC = { 答 \QAShowCounter{A} \,:\hspace{-.5em} }
- , JP = { A \QAShowCounter{A} \,: }
- , RU = { O \QAShowCounter{A} \,: }
+ , EN = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , FR = { \l_QA_A_label_text_tl \QAShowCounter{A} : }
+ , DE = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , IT = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , PT = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , BR = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , ES = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , CN = { \l_QA_A_label_text_tl \, \QAShowCounter{A} \,:\hspace{-.5em} }
+ , TC = { \l_QA_A_label_text_tl \, \QAShowCounter{A} \,:\hspace{-.5em} }
+ , JP = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
+ , RU = { \l_QA_A_label_text_tl \QAShowCounter{A} \,: }
}
}
{
- \projlib_langauge_define_multilingual_text:Nn \l_QA_label_R_tl
+ \projlib_langauge_define_multilingual_text:Nn \l_QA_A_label_tl
{
- , EN = { A\,: }
- , FR = { R: }
- , DE = { A\,: }
- , IT = { R\,: }
- , PT = { R\,: }
- , BR = { R\,: }
- , ES = { R\,: }
- , CN = { 答\,:\hspace{-.33em} }
- , TC = { 答\,:\hspace{-.33em} }
- , JP = { A\,: }
- , RU = { O\,: }
+ , EN = { \l_QA_A_label_text_tl \,: }
+ , FR = { \l_QA_A_label_text_tl : }
+ , DE = { \l_QA_A_label_text_tl \,: }
+ , IT = { \l_QA_A_label_text_tl \,: }
+ , PT = { \l_QA_A_label_text_tl \,: }
+ , BR = { \l_QA_A_label_text_tl \,: }
+ , ES = { \l_QA_A_label_text_tl \,: }
+ , CN = { \l_QA_A_label_text_tl \,:\hspace{-.33em} }
+ , TC = { \l_QA_A_label_text_tl \,:\hspace{-.33em} }
+ , JP = { \l_QA_A_label_text_tl \,: }
+ , RU = { \l_QA_A_label_text_tl \,: }
}
}
@@ -1308,7 +1390,7 @@
\seq_map_inline:Nn \l_tmpa_seq
{
\tl_put_right:Nn \l_QA_tmp_tl
- { \QACompactCenterText { ####1 } }
+ { \QACaption { ####1 } }
}
\regex_replace_all:nnN
@@ -1382,10 +1464,6 @@
}
}
- % \regex_replace_once:nnN
- % { ❄️ \ *? \[\*(.*?)\] (.*) }
- % { \c{QAItem} {\1} {\2} }
- % \l_QA_tmp_tl
%% Process the first and wrap the others inside
\regex_replace_once:nnN
{ ❄️ \ *? \[\*(.*?)\] (.*) }
@@ -1412,40 +1490,10 @@
{ \c{QAItem} {\1} {\2} }
\l_QA_tmp_tl
- %% Process the first and wrap the others inside
- \regex_replace_once:nnN
- { ❄️ \ *? 【\*(.*?)】 (.*) }
- { \c{QAItem} {\1} {\2} }
- \l_QA_tmp_tl
- %% Process the middle ones
- \bool_set_false:N \l_QA_regex_no_more_match_bool
- \bool_do_until:nn \l_QA_regex_no_more_match_bool
- {
- \regex_match:nVTF { 【\*(.*?)】 (.*?) 【\* } \l_QA_tmp_tl
- {
- \regex_replace_once:nnN
- { 【\*(.*?)】 (.*?) 【\* }
- { \c{QAItem} {\1} {\2} \c{QAadjustitem} 【\* }
- \l_QA_tmp_tl
- }
- {
- \bool_set_true:N \l_QA_regex_no_more_match_bool
- }
- }
- %% Process the last one
- \regex_replace_once:nnN
- { 【\*(.*?)】 (.*) }
- { \c{QAItem} {\1} {\2} }
- \l_QA_tmp_tl
-
\regex_replace_once:nnN
{ ❄️ \ *? \[(.*?)\] (\*?) (.*) }
{ \c{QAEnum} \2 {\1} {\3} }
\l_QA_tmp_tl
- \regex_replace_once:nnN
- { ❄️ \ *? 【(.*?)】 (\*?) (.*) }
- { \c{QAEnum} \2 {\1} {\3} }
- \l_QA_tmp_tl
\regex_replace_all:nnN
{ \*\*\* (.*?) \*\*\* }
@@ -1472,7 +1520,6 @@
\tl_gput_right:Nn #1 { \QAendmark }
}
-\box_new:N \l__QA_tmp_box
\cs_new:Nn \__QA_put_current_content:n
{
\tl_if_empty:NF \g_QA_current_content_tl
diff --git a/macros/latex/contrib/q-and-a/README.md b/macros/latex/contrib/q-and-a/README.md
index d9937df788..e36b3a9e1a 100644
--- a/macros/latex/contrib/q-and-a/README.md
+++ b/macros/latex/contrib/q-and-a/README.md
@@ -8,6 +8,33 @@
Notably, it features two themes, `ChatGPT-light` and `ChatGPT-dark`, enabling you to format your Q&A dialog in a way that closely resembles the interface of ChatGPT.
+### Screenshots
+
+<!-- ![image](https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-default.png) -->
+<div align=center><img width="400" src="https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-default.png"/></div>
+
+> From [the documentation](https://github.com/Jinwen-XU/Q-and-A/blob/main/doc/Q-and-A-doc.pdf).
+
+<!-- ![image](https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-ChatGPT-1.png) -->
+<div align=center><img width="750" src="https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-ChatGPT-1.png"/></div>
+
+> From [the demo document for theme "ChatGPT-dark"](https://github.com/Jinwen-XU/Q-and-A/blob/main/demo/theme-ChatGPT/Q-and-A-demo-ChatGPT-dark.pdf).
+
+<!-- ![image](https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-ChatGPT-classical-1.png) -->
+<div align=center><img width="750" src="https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-ChatGPT-classical-1.png"/></div>
+
+> From [the demo document for theme "ChatGPT-classical-dark"](https://github.com/Jinwen-XU/Q-and-A/blob/main/demo/theme-ChatGPT-classical/Q-and-A-demo-ChatGPT-classical-dark.pdf).
+
+<!-- ![image](https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-default-1.png) -->
+<div align=center><img width="750" src="https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-default-1.png"/></div>
+
+> From [the English demo document](https://github.com/Jinwen-XU/Q-and-A/blob/main/demo/lang-en/Q-and-A-demo-en.pdf).
+
+<!-- ![image](https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-multiple-1.png) -->
+<div align=center><img width="750" src="https://github.com/Jinwen-XU/Q-and-A/raw/main/screenshots/screenshot-multiple-1.png"/></div>
+
+> From [the demo document for multiple questions/answers](https://github.com/Jinwen-XU/Q-and-A/blob/main/demo/mode-multiple/Q-and-A-demo-multiple.pdf).
+
## Installation and preparation
### How to install this package
@@ -16,6 +43,9 @@ If you are using TeX Live 2024 or newer, or the most recent version of MikTeX, t
Otherwise, you need to check for package update to see if you can receive it. In case not, you can always go to [the CTAN page](https://ctan.org/pkg/Q-and-A) to download the `.zip` file with all related files included.
+> **Attention:**
+> For this document class to function properly, the LaTeX2e kernel must be at least as new as `2023/11/01`.
+
## Usage
Please refer to [the documentation](https://github.com/Jinwen-XU/Q-and-A/blob/main/doc/Q-and-A-doc.pdf) for detailed usage.
@@ -43,17 +73,19 @@ If you are using XeLaTeX or LuaLaTeX to compile your document, then the current
These are necessary if you wish to write your document in Chinese (either simplified or traditional) or Japanese. Also, without these fonts installed, the compilation speed might be much slower — the compilation would still pass, but the system shall spend (quite) some time verifying that the fonts are indeed missing before switching to the fallback fonts.
-### Functionality
+### Some aspects
+
+#### On the functionality
The main features are achieved with the power of LaTeX3's regex functionality. It scans the content paragraph by paragraph and converts recognized patterns into corresponding TeX commands.
However, this comes with a price: in order to scan the content, it is firstly stored in a macro, and that means that you cannot use commands like `\verb` in your main text.
Also, synctex won't work properly.
-### Language and date format
+#### Language and date format
Language and date format can both be set in two ways: as class option or with corresponding commands.
- The user-level command for setting language is `\UseLanguage`, provided by `projlib-language`; the one for setting date format is `\SetDatetimeInputFormat`, provided by `projlib-date`.
- When you set the language, it is not exactly the same using class option or using command: when you select a language via class option, only the setting for this language would be loaded; however, with `\UseLanguage`, it would load *all* the language settings and then switch to your selected one. Sometimes the page breaking behavior differs slightly. Personally I prefer the `\UseLanguage` approach, for this would allow you to switch language in the middle of your document.
-### Scroll mode
+#### Scroll mode
The scroll mode is achieved by directly accessing `\pdfpageheight` (pdfTeX and XeTeX) or `\pageheight` (LuaTeX). <!-- The minimal page height is set to be `10in`. --> It is worth noting that in order to calculate the height needed, the entire content are put into a single box, which puts a limitation on the length of your document (but this usually wouldn't be a problem).
# License
diff --git a/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple-content.tex b/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple-content.tex
index 9dabdc5dc7..689d34987c 100644
--- a/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple-content.tex
+++ b/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple-content.tex
@@ -1,31 +1,31 @@
"
We start with the **normal** mode.
-?
+? \QALabel{Q:normal-1}
Question.
:
- Answer.
+ Answer to \QARef{Q:normal-1}.
-?
+? \QALabel{Q:normal-2}
Question.
:
- Answer.
+ Answer to \QARef{Q:normal-2}.
"
Now start the **multiple question** mode.
\EnableMultipleQuestion
-?
- Question.
+? \QALabel{Q:multi-1}
+ First question.
-?
- Question.
+? \QALabel{Q:multi-2}
+ Second question.
:
- Answer.
+ Answer to \QARef{Q:multi-1} and \QARef{Q:multi-2}.
"
Now stop the multiple question mode, and start the **multiple answer** mode.
@@ -34,14 +34,14 @@
\EnableMultipleAnswer
-?
- Question.
+? \QALabel{Q:normal-multi}
+ Question with two answers \QARef{A:multi-1} and \QARef{A:multi-2}.
-:
- Answer.
+: \QALabel{A:multi-1}
+ First answer to \QARef{Q:normal-multi}.
-:
- Answer.
+: \QALabel{A:multi-2}
+ Second answer to \QARef{Q:normal-multi}.
"
Now start both the **multiple question** mode and the **multiple answer** mode.
@@ -50,20 +50,20 @@
\EnableMultipleAnswer
-?
+? \QALabel{Q:multi-1'}
Question.
-?
+? \QALabel{Q:multi-2'}
Question.
:
- Answer.
+ First answer to \QARef{Q:multi-1'} and \QARef{Q:multi-2'}.
:
- Answer.
+ Second answer to \QARef{Q:multi-1'} and \QARef{Q:multi-2'}.
:
- Answer.
+ Third answer to \QARef{Q:multi-1'} and \QARef{Q:multi-2'}.
"
Back to the **normal** mode.
@@ -72,14 +72,14 @@
\DisableMultipleAnswer
-?
+? \QALabel{Q:normal-1'}
Question.
:
- Answer.
+ Answer to \QARef{Q:normal-1'}.
-?
+? \QALabel{Q:normal-2'}
Question.
:
- Answer.
+ Answer \QARef{Q:normal-2'}.
diff --git a/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple.pdf b/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple.pdf
index 620746bd50..c1378c7221 100644
--- a/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple.pdf
+++ b/macros/latex/contrib/q-and-a/demo/mode-multiple/Q-and-A-demo-multiple.pdf
Binary files differ
diff --git a/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.pdf b/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.pdf
index aaf9b6c812..4681a23425 100644
--- a/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.pdf
+++ b/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.tex b/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.tex
index ef442a2259..44b57cf98f 100644
--- a/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.tex
+++ b/macros/latex/contrib/q-and-a/doc/Q-and-A-doc.tex
@@ -5,7 +5,7 @@
scroll,
]{Q-and-A}
-\def\PackageVersion{2023/11/19}
+\def\PackageVersion{2023/11/21}
\def\PackageSubVersion{}
\newcommand{\QApackage}{{\normalfont\textsf{Q-and-A}}}
@@ -57,6 +57,10 @@
Otherwise, you need to check for package update to see if you can receive it. In case not, you can always go to \href{https://ctan.org/pkg/Q-and-A}{the CTAN page} to download the `.zip` file with all related files included.
+"
+ **Attention:**\\
+ For this document class to function properly, the \LaTeX2e kernel must be at least as new as `2023/11/01`.
+
##+ {Usage}
@@ -114,8 +118,11 @@
\item for simplified Chinese, it is also possible to use the prefix `问:` for questions, `答:` for answers, and `注:` for narrations; similarly for traditional Chinese;
\item for Chinese or Japanese, it is also possible to use the prefix `?` for questions, `:` for answers, and `“`, `”` or `「` for narrations.
\end{itemize}}
- You may specify the identity of the current speaker by placing `<\meta{name}>` after the prefix (there could be some spaces in between). For example, `? <You>` would set the questioner's name to `You`. How this name is disposed of depends on your current selected theme.
- \QANote{The identity for the current type would be recorded, so unless you wish to change it, you only need to write it once.}
+ \begin{itemize}
+ \item You may specify the identity of the current speaker by placing `<\meta{name}>` after the prefix (there could be some spaces in between). For example, `? <You>` would set the questioner's name to `You`. How this name is disposed of depends on your current selected theme.
+ \QANote{The identity for the current type would be recorded, so unless you wish to change it, you only need to write it once.}
+ \item To reference a question/answer, use the commands `\textbackslash QALabel\{\meta{label}\}` and `\textbackslash QARef\{\meta{label}\}` (of course, for this to work, you first need to turn on the numbering via the class options `numbered question` and `numbered answer`).
+ \end{itemize}
[Emphasize and Bold]
\begin{itemize}
@@ -150,7 +157,8 @@
\begin{itemize}
\item For centered image, the caption can be written via `\textgreater\textgreater{} \meta{caption text}`.
\end{itemize}
- % \QANote{Currently, the `\meta{caption text}` shall be directly printed in the center. You may wish to add a pair of parentheses around it.}
+ \QANote{By default, the `\meta{caption text}` shall be directly printed in the center. To redefine its style, you may use the command `\textbackslash QASetCaptionStyle\{\meta{settings}\}`, where `\meta{settings}` is some code containing `\textsharp 1`, which refers to `\meta{caption text}`.\\
+ For example, `\textbackslash QASetCaptionStyle\{\textbackslash textcolor\{.!50\}\{(\textsharp 1)\}\}` adds a pair of parentheses around the \meta{caption text} and sets it to half transparent.}
[Code]
Due to the current implementation of this document class, it is unfortunate that you cannot directly insert source code in your document. There are some workarounds, though.
@@ -251,7 +259,7 @@
\item Use `\textbackslash QASetLogoCode\{A\}\{\meta{logo code}\}` to set the labels for answers.
\end{itemize}
Here, \meta{logo code} is the actual code for displaying the corresponding label. For example, the default label for (unnumbered) questions is preset via `\textbackslash QASetLogoCode\{Q\}\{\textbackslash textbf\{Q\textbackslash,:\}\}`.
- \QANote{In the demo document, you can find an example on how to use this command to specify a logo for each role in the conversation.}
+ \QANote{In the demo documents, you may find examples on how to use this command to specify a logo for each role in the conversation.}
If you wish to include the question number or answer number, you may use the command `\textbackslash QAShowCounter`:
\begin{itemize}
\item Use `\textbackslash QAShowCounter\{Q\}` to step the counter of question and print it.
@@ -289,6 +297,12 @@
%% 2023-11-05, solved with the new option "answer outside the box".
\item Due to the current implementation, though it is already possible to automatically adopt the identifiers and labels for supported languages, you still need to use the identifiers `Q`, `A` and `N` when setting them.
\item Currently, for typesetting questions and answers, the text is in fact being put into some sort of `description` list (upon reflection, why did I do this? I could have simply put the label into margin...). As a result, the level of lists might be slightly messed up, which could sometimes lead to issues with the list labels.
+ % \item It is not yet possible to cite the questions/answers.
+ %% 2023-11-19, solved with new commands \QALabel and \QARef.
+ % \item Referencing of questions/answers doesn't have hyperlinks.
+ %% 2023-11-20, solved by using the `target` property.
+ \item Referencing of questions/answers doesn't work for all themes.
+ \item If you decide to change the language in the middle of the text, referencing text wouldn't be shown in the original language, but would be shown according to the language of the context where the referencing command is being specified.
\item Some vertical and horizontal spacing still needs to be fine-tuned.
\item The code for all those themes is currently mixed up, which poses difficulties for maintenance and expandability.
\end{itemize}
diff --git a/macros/latex/contrib/xfakebold/Changes b/macros/latex/contrib/xfakebold/Changes
index 752716181a..6d5982490b 100644
--- a/macros/latex/contrib/xfakebold/Changes
+++ b/macros/latex/contrib/xfakebold/Changes
@@ -1,5 +1,6 @@
xfakebold.sty ----------------
+v 0.10 2023-11-21 load package iftex by default
v 0.09 2023-11-16 fix bug with \@ifpackagelater
v 0.08 2020-06-24 use colorstack to allow a page break
v 0.07 2020-06-22 fix bug for pdflatex (thanks to Scott Pakin)
@@ -9,4 +10,3 @@ v 0.04 2018-08-21 typo in \fake@bold
v 0.03 2018-08-07 small fixes and typos in the documentation
v 0.02 2018-07-25 fix bug in pdflatex part
v 0.01 2018-07-23 first CTAN version
-
diff --git a/macros/latex/contrib/xfakebold/doc/xfakebold-doc.pdf b/macros/latex/contrib/xfakebold/doc/xfakebold-doc.pdf
index a4fac458f0..2d1de4e793 100644
--- a/macros/latex/contrib/xfakebold/doc/xfakebold-doc.pdf
+++ b/macros/latex/contrib/xfakebold/doc/xfakebold-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex b/macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex
index 477dd3922b..e3da8ce83d 100644
--- a/macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex
+++ b/macros/latex/contrib/xfakebold/doc/xfakebold-doc.tex
@@ -1,4 +1,4 @@
-% $Id: xfakebold-doc.tex 814 2023-11-16 10:15:07Z herbert $
+% $Id: xfakebold-doc.tex 820 2023-11-21 15:10:21Z herbert $
\listfiles
\documentclass[english]{article}
\usepackage{dejavu-otf}
@@ -12,7 +12,7 @@
\usepackage{babel}
\usepackage[a4paper,tmargin=1cm,bmargin=1.5cm,includeheadfoot]{geometry}
\usepackage{listings}
-\title{\texttt{xfakebold}, v. 0.09\\ using bold characters with\\ \texttt{pdflatex}, \texttt{lualatex} or \texttt{xelatex}}
+\title{\texttt{xfakebold}, v. 0.10\\ using bold characters with\\ \texttt{pdflatex}, \texttt{lualatex} or \texttt{xelatex}}
\author{Herbert Voß}
\lstset{basicstyle=\ttfamily\small,language={[LaTeX]TeX},frame=lrtb}
@@ -35,7 +35,7 @@ math mode where only some free math fonts provide a bold version.
\end{abstract}
\vfill
-\small Thanks to: Martin Münch; Heiko Oberdiek;
+\small Thanks to: Yukai Chou; Martin Münch; Heiko Oberdiek;
Scott Pakin, Will Robertson; Yusuke Terada;
%\meaning\setBold
diff --git a/macros/latex/contrib/xfakebold/latex/xfakebold.sty b/macros/latex/contrib/xfakebold/latex/xfakebold.sty
index 1307d3ba72..9099eb2b88 100644
--- a/macros/latex/contrib/xfakebold/latex/xfakebold.sty
+++ b/macros/latex/contrib/xfakebold/latex/xfakebold.sty
@@ -1,4 +1,4 @@
-% $Id: xfakebold.sty 814 2023-11-16 10:15:07Z herbert $
+% $Id: xfakebold.sty 820 2023-11-21 15:10:21Z herbert $
%%
%% This is file `xfakebold.sty',
%%
@@ -14,15 +14,10 @@
%%
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{xfakebold}[2023/11/16 v0.09 using bold characters]
+\ProvidesPackage{xfakebold}[2023/11/21 v0.10 using bold characters]
\RequirePackage{xkeyval}
\RequirePackage{pdfrender}
-
-\@ifpackagelater{iftex}{2019/10/24}{%
- \RequirePackage{iftex}
-}{%
- \RequirePackage{ifxetex,ifluatex,ifpdf}
-}
+\RequirePackage{iftex}
\def\fkbld@bold{0.3}%
diff --git a/macros/latex/required/tools/README.md b/macros/latex/required/tools/README.md
index 77ca1642ce..f08c378fff 100644
--- a/macros/latex/required/tools/README.md
+++ b/macros/latex/required/tools/README.md
@@ -1,7 +1,7 @@
The LaTeX `tools` bundle
========================
-Release 2023-11-01b
+Release 2023-11-01c
Overview
--------
diff --git a/macros/latex/required/tools/afterpage.pdf b/macros/latex/required/tools/afterpage.pdf
index fcdd36ce1c..3782fae988 100644
--- a/macros/latex/required/tools/afterpage.pdf
+++ b/macros/latex/required/tools/afterpage.pdf
Binary files differ
diff --git a/macros/latex/required/tools/array.pdf b/macros/latex/required/tools/array.pdf
index 891d503d1c..085cb2321a 100644
--- a/macros/latex/required/tools/array.pdf
+++ b/macros/latex/required/tools/array.pdf
Binary files differ
diff --git a/macros/latex/required/tools/bm.pdf b/macros/latex/required/tools/bm.pdf
index 6017ddc883..47bef9fc86 100644
--- a/macros/latex/required/tools/bm.pdf
+++ b/macros/latex/required/tools/bm.pdf
Binary files differ
diff --git a/macros/latex/required/tools/calc.pdf b/macros/latex/required/tools/calc.pdf
index e621722b56..203c0032f6 100644
--- a/macros/latex/required/tools/calc.pdf
+++ b/macros/latex/required/tools/calc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/changes.txt b/macros/latex/required/tools/changes.txt
index 7b38392bd4..0ced77d568 100644
--- a/macros/latex/required/tools/changes.txt
+++ b/macros/latex/required/tools/changes.txt
@@ -10,6 +10,15 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2023-11-01c Release
+#########################
+
+2023-11-06 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * verbatim.dtx (subsection{Preliminaries}):
+ Update code so that that \verb does not show visible spaces (gh/1160)
+
+#########################
# 2023-11-01b Release
#########################
@@ -23,8 +32,8 @@ All changes above are only part of the development branch for the next release.
2023-08-25 Ulrike Fischer <Ulrike.Fischer@latex-project.org>
- * longtable.dtx: use \everypar to insert the strut in \LT@startpbox
- to match the array use, github/1128
+ * longtable.dtx: use \everypar to insert the strut in \LT@startpbox
+ to match the array use, github/1128
#########################
# 2023-06-01 Release
diff --git a/macros/latex/required/tools/dcolumn.pdf b/macros/latex/required/tools/dcolumn.pdf
index 7eb353b8d2..95ad0bd449 100644
--- a/macros/latex/required/tools/dcolumn.pdf
+++ b/macros/latex/required/tools/dcolumn.pdf
Binary files differ
diff --git a/macros/latex/required/tools/delarray.pdf b/macros/latex/required/tools/delarray.pdf
index 21e318ae08..dee83d0727 100644
--- a/macros/latex/required/tools/delarray.pdf
+++ b/macros/latex/required/tools/delarray.pdf
Binary files differ
diff --git a/macros/latex/required/tools/enumerate.pdf b/macros/latex/required/tools/enumerate.pdf
index cf42db1dae..3cfae0299a 100644
--- a/macros/latex/required/tools/enumerate.pdf
+++ b/macros/latex/required/tools/enumerate.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fileerr.pdf b/macros/latex/required/tools/fileerr.pdf
index 92889c6a8d..c9ead205ae 100644
--- a/macros/latex/required/tools/fileerr.pdf
+++ b/macros/latex/required/tools/fileerr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/fontsmpl.pdf b/macros/latex/required/tools/fontsmpl.pdf
index 077709eb13..400fc3cdb4 100644
--- a/macros/latex/required/tools/fontsmpl.pdf
+++ b/macros/latex/required/tools/fontsmpl.pdf
Binary files differ
diff --git a/macros/latex/required/tools/ftnright.pdf b/macros/latex/required/tools/ftnright.pdf
index b92dd83a6d..b1ed43548d 100644
--- a/macros/latex/required/tools/ftnright.pdf
+++ b/macros/latex/required/tools/ftnright.pdf
Binary files differ
diff --git a/macros/latex/required/tools/hhline.pdf b/macros/latex/required/tools/hhline.pdf
index 0428482b71..9d389f0c7f 100644
--- a/macros/latex/required/tools/hhline.pdf
+++ b/macros/latex/required/tools/hhline.pdf
Binary files differ
diff --git a/macros/latex/required/tools/indentfirst.pdf b/macros/latex/required/tools/indentfirst.pdf
index 42d4a696b0..2aa538c345 100644
--- a/macros/latex/required/tools/indentfirst.pdf
+++ b/macros/latex/required/tools/indentfirst.pdf
Binary files differ
diff --git a/macros/latex/required/tools/layout.pdf b/macros/latex/required/tools/layout.pdf
index d2d9ce85e2..30ba99447f 100644
--- a/macros/latex/required/tools/layout.pdf
+++ b/macros/latex/required/tools/layout.pdf
Binary files differ
diff --git a/macros/latex/required/tools/longtable.pdf b/macros/latex/required/tools/longtable.pdf
index 9315c4d47e..406dee682f 100644
--- a/macros/latex/required/tools/longtable.pdf
+++ b/macros/latex/required/tools/longtable.pdf
Binary files differ
diff --git a/macros/latex/required/tools/multicol.pdf b/macros/latex/required/tools/multicol.pdf
index 5a79fd2e04..0295b9ab59 100644
--- a/macros/latex/required/tools/multicol.pdf
+++ b/macros/latex/required/tools/multicol.pdf
Binary files differ
diff --git a/macros/latex/required/tools/rawfonts.pdf b/macros/latex/required/tools/rawfonts.pdf
index fe5da2fabe..2371e70bd6 100644
--- a/macros/latex/required/tools/rawfonts.pdf
+++ b/macros/latex/required/tools/rawfonts.pdf
Binary files differ
diff --git a/macros/latex/required/tools/shellesc.pdf b/macros/latex/required/tools/shellesc.pdf
index e000fcc21b..e40b2a84b6 100644
--- a/macros/latex/required/tools/shellesc.pdf
+++ b/macros/latex/required/tools/shellesc.pdf
Binary files differ
diff --git a/macros/latex/required/tools/showkeys.pdf b/macros/latex/required/tools/showkeys.pdf
index cfda50983c..7b64f00dea 100644
--- a/macros/latex/required/tools/showkeys.pdf
+++ b/macros/latex/required/tools/showkeys.pdf
Binary files differ
diff --git a/macros/latex/required/tools/somedefs.pdf b/macros/latex/required/tools/somedefs.pdf
index 6a62cb5bbd..45c79ac29b 100644
--- a/macros/latex/required/tools/somedefs.pdf
+++ b/macros/latex/required/tools/somedefs.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tabularx.pdf b/macros/latex/required/tools/tabularx.pdf
index 4847659549..5d34197bd2 100644
--- a/macros/latex/required/tools/tabularx.pdf
+++ b/macros/latex/required/tools/tabularx.pdf
Binary files differ
diff --git a/macros/latex/required/tools/theorem.pdf b/macros/latex/required/tools/theorem.pdf
index 5163898bf6..a2bdfebbf8 100644
--- a/macros/latex/required/tools/theorem.pdf
+++ b/macros/latex/required/tools/theorem.pdf
Binary files differ
diff --git a/macros/latex/required/tools/tools-overview.pdf b/macros/latex/required/tools/tools-overview.pdf
index 1fa4dd3589..b4278ab9cd 100644
--- a/macros/latex/required/tools/tools-overview.pdf
+++ b/macros/latex/required/tools/tools-overview.pdf
Binary files differ
diff --git a/macros/latex/required/tools/trace.pdf b/macros/latex/required/tools/trace.pdf
index 62243d66b6..34050d5f22 100644
--- a/macros/latex/required/tools/trace.pdf
+++ b/macros/latex/required/tools/trace.pdf
Binary files differ
diff --git a/macros/latex/required/tools/varioref.pdf b/macros/latex/required/tools/varioref.pdf
index 34b16f79ee..64c89e6f49 100644
--- a/macros/latex/required/tools/varioref.pdf
+++ b/macros/latex/required/tools/varioref.pdf
Binary files differ
diff --git a/macros/latex/required/tools/verbatim.dtx b/macros/latex/required/tools/verbatim.dtx
index 832f80ef3a..ebcc010a80 100644
--- a/macros/latex/required/tools/verbatim.dtx
+++ b/macros/latex/required/tools/verbatim.dtx
@@ -55,7 +55,7 @@
\and
Chris Rowley}
-\date{2023/07/08}
+\date{2023/11/06}
\begin{document}
\markboth{Verbatim style option}{Verbatim style option}
\MaintainedByLaTeXTeam{tools}
@@ -508,7 +508,7 @@
%<*package>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{verbatim}
- [2022-07-02 v1.5u LaTeX2e package for verbatim enhancements]
+ [2023-11-06 v1.5v LaTeX2e package for verbatim enhancements]
\@ifundefined{verbatim@@@}{}{\endinput}
% \end{macrocode}
%
@@ -549,9 +549,17 @@
% to be printed as spaces in the output.
% \begin{macrocode}
\begingroup
- \catcode`\ =\active%
- \def\x{\def\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
- \expandafter\endgroup\x
+\catcode`\ =\active%
+% \end{macrocode}
+% Because space is active we can't indent the following code
+% nicely---we would then get the spaces at the beginning of the
+% line as the third and fourth argument to \cs{@ifl@t@r}.
+% \changes{v1.5v}{2023/11/06}{\cs{@vobeytabs} added when available (gh/1160)}
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2023-11-01}%
+{\def\x{\def\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}}}%
+{\def\x{\def\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}}%
+\expandafter\endgroup\x
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/required/tools/verbatim.pdf b/macros/latex/required/tools/verbatim.pdf
index 2d3bf025df..a8238cf344 100644
--- a/macros/latex/required/tools/verbatim.pdf
+++ b/macros/latex/required/tools/verbatim.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xr.pdf b/macros/latex/required/tools/xr.pdf
index bbe96b4e1f..205135ba68 100644
--- a/macros/latex/required/tools/xr.pdf
+++ b/macros/latex/required/tools/xr.pdf
Binary files differ
diff --git a/macros/latex/required/tools/xspace.pdf b/macros/latex/required/tools/xspace.pdf
index 9ed21d397c..0249feb81e 100644
--- a/macros/latex/required/tools/xspace.pdf
+++ b/macros/latex/required/tools/xspace.pdf
Binary files differ