summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-12-25 03:01:41 +0000
committerNorbert Preining <norbert@preining.info>2021-12-25 03:01:41 +0000
commit41baa3fc38fdb0dfd5f1825d8548a999ab07bf5d (patch)
tree2aa0e84c98e4eff8dcef10ccf1687e0bb396e2fa /macros
parent71bfbdc975332e32bf47112ec2d32f8491b1df40 (diff)
CTAN sync 202112250301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/bfh-ci/README.md87
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer-Sidebar.pdfbin0 -> 51003 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer.pdfbin0 -> 40918 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHFactsheet.pdfbin0 -> 50275 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHLetter.pdfbin0 -> 13840 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHProjektProposal.pdfbin0 -> 54761 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHPub.pdfbin0 -> 92251 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHSciPoster.pdfbin0 -> 46618 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/doc/DEMO-BFHThesis.pdfbin0 -> 41461 bytes
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer-Sidebar.tex115
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer.tex92
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHFactsheet.tex112
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHFromaddress.lco40
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHLetter.tex66
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHProjektProposal.tex75
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHPub.tex453
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHSciPoster.tex149
-rw-r--r--macros/latex/contrib/bfh-ci/example/DEMO-BFHThesis.tex56
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamercolorthemeBFH.sty109
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerfontthemeBFH.sty82
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty464
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH-sidebar.sty105
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH.sty91
-rw-r--r--macros/latex/contrib/bfh-ci/tex/beamerthemeBFH.sty75
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a0paper.clo44
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a1paper.clo43
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a2paper.clo43
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a3paper.clo43
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a4paper.clo36
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a5paper.clo36
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-a6paper.clo40
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-beamerarticle.cfg40
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-factsheet.cfg89
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-layout-boxes.cfg184
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-layout-listings.cfg132
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-layout-rules.cfg83
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-layout-tabular.cfg66
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-layout-terminal.cfg117
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfh-projectproposal.cfg227
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhbeamer.cls107
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhcolors.sty122
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhfonts.sty70
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhlayout.sty777
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhletter.sty197
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhlettersize9.5pt.clo107
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhpub.cls89
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhsciposter.cls577
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhthesis.cls168
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhtranslations-english.trsl68
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhtranslations-french.trsl69
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhtranslations-german.trsl68
-rw-r--r--macros/latex/contrib/europecv/CHANGELOG.rst5
-rw-r--r--macros/latex/contrib/europecv/README.md2
-rw-r--r--macros/latex/contrib/europecv/europecv.cls129
-rw-r--r--macros/latex/contrib/europecv/europecv.pdfbin661821 -> 652056 bytes
-rw-r--r--macros/latex/contrib/europecv/europecv.tex184
-rw-r--r--macros/latex/contrib/europecv/examples/europass-cv.pdfbin235709 -> 235877 bytes
-rw-r--r--macros/latex/contrib/europecv/templates/cv_template_academic_en.pdfbin38142 -> 38240 bytes
-rw-r--r--macros/latex/contrib/europecv/templates/cv_template_academic_en.tex42
-rw-r--r--macros/latex/contrib/europecv/templates/cv_template_en.pdfbin31276 -> 31505 bytes
-rw-r--r--macros/latex/contrib/minted/minted.dtx422
-rw-r--r--macros/latex/contrib/minted/minted.ins2
-rw-r--r--macros/latex/contrib/minted/minted.pdfbin807079 -> 845885 bytes
-rw-r--r--macros/latex/contrib/termsim/README.md14
-rw-r--r--macros/latex/contrib/termsim/termsim-en.pdfbin0 -> 71132 bytes
-rw-r--r--macros/latex/contrib/termsim/termsim-zh-cn.pdfbin0 -> 317576 bytes
-rw-r--r--macros/latex/contrib/termsim/termsim.dtx81
-rw-r--r--macros/latex/contrib/termsim/termsim.pdfbin317046 -> 0 bytes
68 files changed, 6438 insertions, 256 deletions
diff --git a/macros/latex/contrib/bfh-ci/README.md b/macros/latex/contrib/bfh-ci/README.md
new file mode 100644
index 0000000000..084f584cc0
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/README.md
@@ -0,0 +1,87 @@
+# BFH-CI – Corporate Design LaTeX Templates for Bern University of Applied Sciences
+
+Copyright (C) Marei Peischl <marei@peitex.de> & Andreas Habegger <andreas.habegger@bfh.ch>, 2021
+
+bfh 2021/12/23 v2.0.0
+
+***************************************************************************
+
+This material is subject to the LaTeX Project Public License version 1.3c
+or later. See http://www.latex-project.org/lppl.txt for details.
+
+***************************************************************************
+
+[Link to the GitLab repository](https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/)
+
+## Summary
+The BFH-CI bundle provides a possibility to use the Corporate Design of BFH with LaTeX.
+Therefore it contains classes as well as some helper packages and config files together with some demo files.
+
+The extended version of the documentation can be found online at https://latex.ti.bfh.ch.
+
+## Installation
+Hopefully BFH-CI will become part of the popular TeX distributions. It will be possible to install the templates using TeX Live Manager or the MikTeX Console. An update of other packages might be required as well.
+
+In case you dont have any installed TeX system the following links might be useful:
+- Windows/Linux https://tug.org/texlive/acquire-netinstall.html
+- MacTeX http://tug.org/mactex/
+
+### Logos
+Due to trademark restrictions we may not provide access to the logo files for users other than BFH members. Installation instructions for the logo can be found at https://latex.ti.bfh.ch. In case the bfhlogo package can't be found the templates are configured to work without a logo file.
+
+## Included files
+
+## Template/Demo files
+
+- DEMO-BFHPub.tex loading bfhpub.cls Includes the basic documentation of BFH-CI and the extension modules.
+
+ bfhpub.cls also provides two variants as shown in
+ * DEMO-BFHFactsheet.tex
+ * DEMO-BFHProjektProposal.tex
+ These load a type specific config.
+
+- DEMO-BFHThesis.tex – theses based on bfhthesis.cls Includes mechanism for affidavit and extended title material.
+
+- DEMO-BFHBeamer.tex – basic beamer presentations. There also exists a variant with a sidebar (DEMO-BFHBEamer-Sidebar.tex).
+
+- DEMO-BFHSciPoster.tex – scientific posters based on tcolorbox.sty poster library.
+
+- DEMO-BFHLetter.tex – letter package based on scrletter.sty
+
+## Classes & Packages
+
+- bfhbeamer.cls – beamer base class
+- bfhpub.cls – flexible base class for print publications. Loads additional department/type specific configs if available.
+- bfhsciposter.cls – tcolorbos posters using BFH CI
+- bfhthesis.cls – class for typesetting theses
+- bfhletter.sty – package to provide letter functionality based on scrletter.sty can be used with bfhpub or any other document class
+
+## Helper Packages
+- bfhcolors.sty – color definitions
+- bfhfonts.sty – font setup
+- bfhlayout.sty – general layout settings for print publications, loaded by bfhpub.cls and bfhthesis.cls
+- beamer themes:
+ beamerthemeBFH.sty, beamercolorthemeBFH.sty, beamerfontthemeBFH.sty, beamerinnerthemeBFH.sty, beamerouterthemeBFH.sty, beamerouterthemeBFH-sidebar.sty
+
+
+## Additional custom configs
+- bfh-beamerarticle.cfg – beamerarticle support for bfhbeamer/bfhpub
+- bfh-factsheet.cfg – custom title config for fact sheets
+- bfh-projectproposal.cfg – custom title config for project proposals
+- layout modules to be loaded by all document types:
+ * bfh-layout-rules.cfg – user commands to create rules like describe in the CD guideline
+ * bfh-layout-tabular.cfg – tabular and tabularray layouts for BFH-CI
+ * bfh-layout-boxes.cfg – tcolorbox layouts for BFH-CI
+ * bfh-layout-listings.cfg – style listings using the listings package
+ * bfh-layout-terminal.cfg – terminal layouts based on tcolorbox
+
+## Translations
+BFH-CI uses the translations package to provide translations for specific elements including the text marks on the logo. The translations are provided in separate files.
+
+- bfhtranslations-english.trsl
+- bfhtranslations-german.trsl
+- bfhtranslations-french.trsl
+
+# Version History
+
+* v2.0.0 (2021/12/23) First public version on CTAN \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer-Sidebar.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer-Sidebar.pdf
new file mode 100644
index 0000000000..767df336ea
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer-Sidebar.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer.pdf
new file mode 100644
index 0000000000..8ba9c51c36
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHBeamer.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHFactsheet.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHFactsheet.pdf
new file mode 100644
index 0000000000..e00fd01cf4
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHFactsheet.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHLetter.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHLetter.pdf
new file mode 100644
index 0000000000..182d0df3d0
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHLetter.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHProjektProposal.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHProjektProposal.pdf
new file mode 100644
index 0000000000..9c7b3639d0
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHProjektProposal.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHPub.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHPub.pdf
new file mode 100644
index 0000000000..692ea98379
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHPub.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHSciPoster.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHSciPoster.pdf
new file mode 100644
index 0000000000..f70e850f2e
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHSciPoster.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/doc/DEMO-BFHThesis.pdf b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHThesis.pdf
new file mode 100644
index 0000000000..0e14fc370b
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/doc/DEMO-BFHThesis.pdf
Binary files differ
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer-Sidebar.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer-Sidebar.tex
new file mode 100644
index 0000000000..ce4e8ac4e2
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer-Sidebar.tex
@@ -0,0 +1,115 @@
+\documentclass[
+ ngerman,%globale Übergabe der Hauptsprache
+% aspectratio=169,%Beamer eigene Option zum Umschalten des Formates
+% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
+ ]{bfhbeamer}
+
+%will also be acessible via option sidebar=true/false
+\useoutertheme{BFH-sidebar}
+
+
+\usepackage[main=ngerman]{babel}
+
+% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig
+\usepackage{iftex}
+\ifPDFTeX
+\usepackage[utf8]{inputenc}%kompatibilität mit TeX Versionen vor April 2018
+\fi
+
+
+%Makros für Formatierungen der Doku
+%Im Allgemeinen nicht notwendig!
+\let\code\texttt
+
+\title{\LaTeX-Beamer using BFH CI}
+\subtitle{Version 0.4}
+\author[M. Peischl]{Marei Peischl}
+\institute{pei\TeX}
+\titlegraphic*{\includegraphics{example-image}}%is only used with BFH-graphic and BFH-fullgraphic
+
+%Activate the output of a frame number:
+\setbeamertemplate{page number in head/foot}[framenumber]
+
+\begin{document}
+
+\maketitle
+
+%second title variant
+\setbeamertemplate{title page}[BFH-Orange]
+\maketitle
+
+\setbeamertemplate{title page}[BFH-graphic]
+
+\maketitle
+
+\setbeamertemplate{title page}[BFH-fullgraphic]
+\maketitle
+
+%plain titlepages
+\frame[plain]{\maketitle}
+
+%second title variant
+\setbeamertemplate{title page}[BFH]
+\frame[plain]{\maketitle}
+
+
+\setbeamertemplate{title page}[BFH-graphic]
+\frame[plain]{\maketitle}
+
+\setbeamertemplate{title page}[BFH-fullgraphic]
+\frame[plain]{\maketitle}
+
+
+\section{Example Frames}
+
+\begin{frame}{Frame with a subtitle}
+ \framesubtitle{Subtitle}
+ Example Content.
+\end{frame}
+
+\begin{frame}{Blocks}
+ \begin{block}{Block with a title}
+ Content.
+ \end{block}
+ \begin{block}{}
+ Without title
+ \end{block}
+\end{frame}
+
+\begin{frame}{Block types}
+ \begin{exampleblock}{Exampleblock}
+ Content.
+ \end{exampleblock}
+ \begin{alertblock}{Alertblock}
+ Content.
+ \end{alertblock}
+ \begin{example}[Example environment]
+ Content.
+ \end{example}
+\end{frame}
+
+\section{section pages}
+%These can be automaticlly called by using \AtBeginSection{\sectionpage}
+
+\frame{\sectionpage}
+
+\setbeamertemplate{section page}[BFH-ruled]
+
+\frame{\sectionpage}
+
+%Change base color scheme (option can be added)
+
+\setbeamercolor{BFH}{parent=BFH-Orange}
+
+
+\frame{\sectionpage}
+
+\setbeamertemplate{section page}[BFH]
+
+\frame{\sectionpage}
+
+\frame[plain]{\sectionpage}
+
+\end{document}
+
+
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer.tex
new file mode 100644
index 0000000000..9c75482600
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHBeamer.tex
@@ -0,0 +1,92 @@
+\documentclass[
+ ngerman,%globale Übergabe der Hauptsprache
+% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
+ authorontitle=true,
+ ]{bfhbeamer}
+
+
+%\usepackage[main=ngerman]{babel}
+
+% Der folgende Block ist nur bei pdfTeX auf Versionen vor April 2018 notwendig
+\usepackage{iftex}
+\ifPDFTeX
+\usepackage[utf8]{inputenc}%kompatibilität mit TeX Versionen vor April 2018
+\fi
+
+
+%Makros für Formatierungen der Doku
+%Im Allgemeinen nicht notwendig!
+\let\code\texttt
+
+\title{\LaTeX-Beamer using BFH CI}
+\subtitle{Version 0.4}
+\author[M. Peischl]{Marei Peischl}
+\institute{pei\TeX}
+\titlegraphic*{\includegraphics{example-image}}%is only used with BFH-graphic and BFH-fullgraphic
+
+%Activate the output of a frame number:
+%\setbeamertemplate{page number in head/foot}[framenumber]
+
+\begin{document}
+
+\maketitle
+
+%second title variant
+\setbeamertemplate{title page}[BFH-Orange]
+\maketitle
+
+\setbeamertemplate{title page}[BFH-graphic]
+\maketitle
+
+\setbeamertemplate{title page}[BFH-fullgraphic]
+\maketitle
+
+\section{Example Frames}
+
+\begin{frame}{Frame with a subtitle}
+ \framesubtitle{Subtitle}
+ Example Content.
+\end{frame}
+
+\begin{frame}{Blocks}
+ \begin{block}{Block with a title}
+ Content.
+ \end{block}
+ \begin{block}{}
+ Without title
+ \end{block}
+\end{frame}
+
+\begin{frame}{Block types}
+ \begin{exampleblock}{Exampleblock}
+ Content.
+ \end{exampleblock}
+ \begin{alertblock}{Alertblock}
+ Content.
+ \end{alertblock}
+ \begin{example}[Example environment]
+ Content.
+ \end{example}
+\end{frame}
+
+\section{section pages}
+%These can be automaticlly called by using \AtBeginSection{\sectionpage}
+
+\frame{\sectionpage}
+
+\setbeamertemplate{section page}[BFH-ruled]
+
+\frame{\sectionpage}
+
+%Change base color scheme (option can be added)
+
+\setbeamercolor{BFH}{parent=BFH-Orange}
+
+\frame{\sectionpage}
+
+\setbeamertemplate{section page}[BFH]
+
+\frame{\sectionpage}
+
+\end{document}
+
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHFactsheet.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHFactsheet.tex
new file mode 100644
index 0000000000..4ea00704fb
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHFactsheet.tex
@@ -0,0 +1,112 @@
+\documentclass[
+ trilingual,
+ type=factsheet,
+ headings=big,
+]{bfhpub}
+
+\usepackage[french,ngerman,main=english]{babel}
+%---------------------------------------------------------------------------
+% Hyperref Package (Create links in a pdf)
+%---------------------------------------------------------------------------
+\usepackage[
+ hidelinks
+ ,plainpages=false
+ ,pdfpagelabels
+ ,pdfusetitle
+ ,hypertexnames = {true} % no failures "same page(i)"
+]{hyperref}
+
+
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\cls}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+
+\RequirePackage{blindtext}
+\begin{document}
+
+%enable the placement of BFH logo in the head of every page
+\enableHeadLineLogo
+
+%---------------- BFH tile page -----------------------------------------
+\title{BFH factsheet demo}
+\subtitle{A demo document and documentation for the fact sheet mode of BFHpub}
+
+\subject{Das ist ein Teaser auf dem Titelblatt. Inveniat odis vid quist eos ut
+ odicidi psandaest, omnis ex et re laborep eribusamet es ulluptaquia
+ suntur se nihic in eum dero eossit, nihil imaximi llatus repta.}
+
+\department{Leistungsbereich oder Organisationseinheit}
+\titlefooterright{Homepage}
+
+%The starred variant will automatically scale and clip the image. the non-starred one will allow you to set the size yourself
+% \titlegraphic*{\includegraphics{example-image}}
+
+\maketitle
+
+\section{Headline which spans across both columns}
+
+\subsection{Subtitle}
+Ich bin ein Fliesstext. Ex eria int. Untur, quam et etum quam is
+abo. Ut officabo. Nequate sumet ut rem qui reptatincil iunt dio. Lo
+moluptat hil mo etur, sit liatur solum quamet et earum quiasi do-
+luptae. Modi int ea quam sim ut et dunt liqui di doluptur accabor
+min nis audis dic te ea velitati offic teserehent erciunt, et verum,
+apero conectae rae sam dit omnis ped moluptia des as dolum eos
+voluptatendi ad qui con rem as dolorem poreprori ut endia acestis
+et as maximint et aborro doluptatas vention restiam iusape officia
+sequias pos apis nustiaestem ullitem quam susandi sanis quatque
+volorem abo. Et re et fuga. Um et fugit voluptat volendem dolut
+voluptate nobist omnis non es ut excepta menducim autem nost
+harcid ut repratis es que landa alit et occate po
+
+\subsection{Olorum iunt ipsum harchit}
+
+\begin{itemize}
+ \item Adia des nam, voloratem Namd modippidis
+ \item Itamusdantur? Quis et qui nos si acimagni tem. Et qui cum que
+ volora nos volum quia voluptatem reperum quid eum labo. Ped
+ evelit alissus aliquasit faccab inci dendiatquid qui:
+ \item Dolorem nam sam et laudiss umquos
+ \item Doluptam abor
+ \item Mod dolore perum aspis maximinusti cus
+\end{itemize}
+
+\bfhRule
+
+%disable the headline logo also starts a new page
+\disableHeadlineLogo
+
+%switch to twocolumn mode. globally this is also possibly by setting twocolumn class option
+\twocolumn[\section{Headline which spans across both columns}]
+
+\subsection{Subtitle}
+Ich bin ein Fliesstext. Ex eria int. Untur, quam et etum quam is
+abo. Ut officabo. Nequate sumet ut rem qui reptatincil iunt dio. Lo
+moluptat hil mo etur, sit liatur solum quamet et earum quiasi do-
+luptae. Modi int ea quam sim ut et dunt liqui di doluptur accabor
+min nis audis dic te ea velitati offic teserehent erciunt, et verum,
+apero conectae rae sam dit omnis ped moluptia des as dolum eos
+voluptatendi ad qui con rem as dolorem poreprori ut endia acestis
+et as maximint et aborro doluptatas vention restiam iusape officia
+sequias pos apis nustiaestem ullitem quam susandi sanis quatque
+volorem abo. Et re et fuga. Um et fugit voluptat volendem dolut
+voluptate nobist omnis non es ut excepta menducim autem nost
+harcid ut repratis es que landa alit et occate po
+
+\subsection{Olorum iunt ipsum harchit}
+
+\begin{itemize}
+ \item Adia des nam, voloratem Namd modippidis
+ \item Itamusdantur? Quis et qui nos si acimagni tem. Et qui cum que
+ volora nos volum quia voluptatem reperum quid eum labo. Ped
+ evelit alissus aliquasit faccab inci dendiatquid qui:
+ \item Dolorem nam sam et laudiss umquos
+ \item Doluptam abor
+ \item Mod dolore perum aspis maximinusti cus
+\end{itemize}
+
+\noindent\includegraphics[width=\linewidth]{example-image}
+
+\bfhRule
+
+\end{document}
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHFromaddress.lco b/macros/latex/contrib/bfh-ci/example/DEMO-BFHFromaddress.lco
new file mode 100644
index 0000000000..dd074d1506
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHFromaddress.lco
@@ -0,0 +1,40 @@
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <marei@peitex.de>
+%% Andreas HABEGGER <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+% !TeX program = lualatex
+%%
+\ProvidesFile{DEMO-BFHFromaddress.lco}[2021/12/23 Address demo LCO file for BFH-CI]
+
+%Institute
+\setkomavar{frominstitution}{Institut für Musterforschung}
+
+\setkomavar{fromaddress}{Strasse Nr\\Postfach\\PLZ Ort}
+%optional backaddress which is predefined as:
+%\setkomavar{backaddress}{BFH\\\usekomavar{fromname}\\\usekomavar{fromaddress}}
+
+%personal data
+\setkomavar{fromname}{Max Mustermann}
+\setkomavar{fromfunction}{Funktion Team}
+\setkomavar{fromphone}{+41\,00\,000\,00\,00}
+\setkomavar{fromfax}{+41\,00\,000\,00\,00}
+\setkomavar{fromemail}{max.mustermann@bfh.ch}
+\setkomavar{fromurl}{www.bfh.ch}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHLetter.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHLetter.tex
new file mode 100644
index 0000000000..aa051223d5
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHLetter.tex
@@ -0,0 +1,66 @@
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+% !TeX program = lualatex
+%%
+\documentclass[
+ english,%language as global option
+]{scrartcl}% could also be used with bfhpub
+
+\usepackage{bfhletter}
+
+\usepackage{babel}%language selection
+
+\LoadLetterOption{DEMO-BFHFromaddress}%load personal address config
+
+\begin{document}
+
+\begin{letter}{%
+ Vorname Nachname\\
+ Strasse Nr\\
+ PLZ Ort
+}
+
+\setkomavar{subject}{\LaTeX{} letters using BFH-CI}
+%\setkomavar{date}{\today}
+
+\opening{<Opening text>}
+
+Letter contents…
+
+\closing{<letter closing>}
+
+%%% ---- postscript
+%\ps P.S.: \dots
+
+%%% ---- enclosures
+\encl{Sources to generate this document:\\
+ \texttt{DEMO-BFHLetter.tex} (the letter itself),\\
+ \texttt{DEMO-BFHFromaddress.lco} (address data)
+}
+
+%%% ---- additional recipients
+%\cc{ A \\
+% B
+%}
+
+\end{letter}
+
+\end{document}
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHProjektProposal.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHProjektProposal.tex
new file mode 100644
index 0000000000..f0f35c9b2b
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHProjektProposal.tex
@@ -0,0 +1,75 @@
+\documentclass[
+ trilingual,
+ type=projectproposal,
+ twocolumn
+]{bfhpub}
+% Include Packages
+\usepackage[french,ngerman,main=english]{babel}
+
+\begin{document}
+
+\title{BFH projectproposal demo}
+\subject{Das ist ein Teaser auf dem Titelblatt. Inveniat odis vid quist eos ut
+ odicidi psandaest, omnis ex et re laborep eribusamet es ulluptaquia
+ suntur se nihic in eum dero eossit, nihil imaximi llatus repta.}
+
+\department{Leistungsbereich oder Organisationseinheit}
+\titlefooterright{Homepage}
+
+\advisor{Prof. Dr. S. Smart}
+\coadvisor{Dr. M. Smart}
+\expert{EXPERT NAME}
+\projectpartner{COMPANY NAME}
+
+%
+\projectstartdate{24. Dezember 2000}
+\studysubmissiondate{24. Dezember 2000}
+\reportsubmissiondate{24. Dezember 2000}
+\presentationdate{Prüfungs/Präsentationsdatum}
+
+
+\begin{ProjectDescription}
+\section{Projektbeschreibung}
+Es sollen Testverfahren ausgearbeitet und anhand einer konkreten Anwendung überprüft werden, um die Echtzeitfähigkeit eines Linux basierten Embedded Systems zu charakte-risieren\cite{lamport94}. Zur Realisierung der Echtzeitfähigkeit im Linux Kernel wurden verschiedene Echtzeit-Patches entwickelt. Seit 2020 ist der RT Patch in der Kernel-Mainline.
+Weiter soll untersucht werden, ob und wann es sinnvoll ist ein Embedded Linux System mit einem Echtzeitbetriebssystem zu ergänzen.
+\end{ProjectDescription}
+
+\maketitle
+
+\section{Projektziele}
+\begin{itemize}
+ \item In Betrieb nehmen der STM32MP1 basierten Entwicklungsplattform.
+ \item Testkriterien für die Charakterisierung festlegen.
+ \item Schnittstelle zur konkreten Testanwendung festlegen und umsetzen.
+ \item Linux System mit RT Patch und einer Echtzeitanwendung realisieren.
+\end{itemize}
+
+\vfill
+
+\includegraphics[width=\linewidth]{example-image}
+\par\nointerlineskip\bfhRule
+
+\newpage
+\begin{thebibliography}{9}
+
+ \bibitem{lamport94}
+ Leslie Lamport,
+ \textit{\LaTeX: a document preparation system},
+ Addison Wesley, Massachusetts,
+ 2nd edition,
+ 1994.
+
+\end{thebibliography}
+
+\vfill
+\DisplayCompetenceRatingChart{
+ Experimental=2,
+ Mechanical=3,
+ Programming=1,
+ Electrical=2,
+ Conceptual=6
+}
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHPub.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHPub.tex
new file mode 100644
index 0000000000..18d4887a46
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHPub.tex
@@ -0,0 +1,453 @@
+\documentclass[
+% invert-title=true,
+% titlepage=false,
+% titleimage-ratio=34
+]{bfhpub} % KOMA-script report
+%----------------- Base packages --------------------------------------
+% Include Packages
+\usepackage[french,ngerman,main=english]{babel}
+%---------------------------------------------------------------------------
+% Hyperref Package (Create links in a pdf)
+%---------------------------------------------------------------------------
+\usepackage[
+ hidelinks,
+ pdfusetitle
+]{hyperref}
+
+
+% document specific setup.
+% Should not be included for own documents!
+\usepackage{multicol}
+
+\newcommand*{\pkg}[1]{\texttt{#1}}
+\newcommand*{\cls}[1]{\texttt{#1}}
+\newcommand*{\code}[1]{\texttt{#1}}
+\newcommand*{\file}[1]{\texttt{#1}}
+\newcommand*{\opt}[1]{\texttt{#1}}
+
+\newcommand\BFHcolorBox[1]{\textcolor{#1}{\rule{2em}{1em}}\hspace{0.5em}#1}
+
+\LoadBFHModule{terminal,boxes,rules}
+
+%\tcbuselibrary{minted}
+\begin{document}
+
+ %---------------- BFH tile page -----------------------------------------
+ \title{BFH-CI}
+ \subtitle{\LaTeX{} Bundle for Bern University of Applied Sciences}
+ \author{Marei Peischl\thanks{bfh-ci@peitex.de}}
+% \subject{Subject}
+ \publishers{pei\TeX{}}
+ \institution{Bern University of Applied Sciences}
+% \department{}
+% \institute{Mikro- und Medizintechnik}
+ \version{2.0.0}
+ \date{2021/12/23}
+ %The starred variant will automatically scale and clip the image. the non-starred one will allow you to set the size yourself
+ \titlegraphic*{\includegraphics{example-image}}
+
+ \maketitle
+ %------------ TABLEOFCONTENTS ---------------
+ \tableofcontents
+
+
+\section{Quickstart}
+BFH-CI provides mechanisms for different types of documents.
+Most mechanisms exist among all types. These can be extended by using the BFHModule mechanism (see \autoref{sec:bfhmodule}).
+
+The release includes the following example files:
+
+\begin{description}
+ \item[DEMO-BFHPub.tex] The source to this document. General example for print publications. There are some more specific variants for project proposals (\file{DEMO-BFHProjektProposal.tex}) or fact sheets (\file{DEMO-BFHFactsheet.tex}).
+ \item[DEMO-BFHBeamer.tex] Beamer presentations. There's also a variant with a sidebar in \file{DEMO-BFHBeamer-Sidebar.tex}
+ \item[DEMO-BFHThesis.tex] Thesis template including an affidavit and additional title fields.
+ \item[DEMO-BFHLetter.tex] Letters using \pkg{bfhletter} a layouting wrapper package for \pkg{scrletter}.
+ \item[DEMO-BFHSciPoster.tex] Scientific posters based on \pkg{tcolorbox}'s poster library.
+\end{description}
+
+\noindent It might be useful to start a new document using one of these example files.
+An extended variant of this documentation and general advice for LaTeX users can be found at \url{https://latex.ti.bfh.ch}
+
+\section{Helper packages}
+
+
+The basic design elements for BFH-CI are implemented by the packages \pkg{bfhcolors}, \pkg{bfhfonts} and \pkg{bfhlogo}.
+The latter one is not included in the CTAN Releas due to trademark restrictions.
+Users can download it from the internal GitLab.
+Detailed Information can be found at the installation instructions at \url{https://latex.ti.bfh.ch}.
+
+These packages will be loaded automatically if one of the bfh-classes or the letter package are loaded.
+
+The classes \cls{bfhpub} and \cls{bfhthesis} as well as the beamerarticle-mode of bfhbeamer also load the \pkg{bfhlayout} package.
+It provides the basic layout functionality without a documentclass requirement.
+Though it should not be loaded without a \KOMAScript{} class.
+
+
+\subsection{bfhcolors}
+
+\subsubsection{Available Colors}
+
+The following table shows all by \pkg{bfhcolors} defined colors. For their usage please have a look at the \pkg{xcolor} documentation.
+
+\medskip
+\begin{tabular}{@{}lll}
+ \BFHcolorBox{BFH-DarkBlue} & \BFHcolorBox{BFH-MediumBlue} & \BFHcolorBox{BFH-LightBlue} \\
+ \BFHcolorBox{BFH-DarkGreen} & \BFHcolorBox{BFH-MediumGreen} & \BFHcolorBox{BFH-LightGreen} \\
+ \BFHcolorBox{BFH-DarkPurple} & \BFHcolorBox{BFH-MediumPurple} & \BFHcolorBox{BFH-LightPurple} \\
+ \BFHcolorBox{BFH-DarkOcher} & \BFHcolorBox{BFH-MediumOcher} & \BFHcolorBox{BFH-LightOcher} \\
+ \BFHcolorBox{BFH-DarkRed} & \BFHcolorBox{BFH-MediumRed} & \BFHcolorBox{BFH-LightRed} \\[1em]
+ \BFHcolorBox{BFH-Orange} &\BFHcolorBox{BFH-Gray}
+\end{tabular}
+
+
+\subsubsection{Package Options}
+
+The \opt{colormode} option can be used to select the correct definitions for the output.
+The names match the design guideline.
+
+\begin{description}
+ \item[colormode=4CU] 4 colors uncoated paper (default)
+ \item[colormode=4CC] 4 colors coated paper
+ \item[colorode=RGB] RGB colors for screens or beamer presentations
+ \item[colormode=SW] grayscale for internal documents
+\end{description}
+
+\subsection{bfhfonts}
+
+The CI guideline generally requires the Fonts Unit Slab Pro and Unit Rounded Pro.
+Due to license restrictions these cannot be published together with BFH-CI.
+BFH-CI provides fallbacks for Source Serif Pro and Nunito which will be loaded if the official fonts cannot be found.
+If you want to use the official fonts please have a look at the installation instructions at \url{https://latex.ti.bfh.ch}.
+
+These changes have been approved by the communications department and can be used as full replacements.
+
+\pkg{bfhfonts} will try to load fontspec and only use Type 1 fonts if pdf\LaTeX{} is used to compile the documents.
+
+\subsection{bfhlogo}
+
+The \pkg{bfhlogo} package provides translations of the word marks of the BFH logo.
+Generally this package will use the base language but there's also an option to provide multi language support.
+
+\subsubsection{Package options}
+
+\begin{description}
+ \item[language=] The language options accepts the self explaining values \verb+de+, \verb+fr+, \verb+en+, \verb+de_fr+, \verb+de_fr_en+.
+ \item[invert-logo-colors=true/false] This option can be used to invert the logo colors. It's internally used in some poster and beamer elements.
+ \item[trilingual/bilingual/monolingual] These keys only exist for compatibility reasons and will be mapped to the corresponding \verb+language=+ options.
+\end{description}
+
+\section{The base layout for text documents}
+The base mechanism for all text documents is provided using the \pkg{bfhlayout} package.
+\cls{bfhpub} and \cls{bfhthesis} load this package. The other bfh-classes provide the functionality differently.
+Please have a look at the corresponding demo files if you use want to create another document type.
+
+\cls{bfhpub} and \cls{bfhthesis} will pass all their document class options to this package.
+\begin{description}
+ \item[titleimage-ratio=] This choice key accepts the values \code{12} (1:2),\code{13} (1:3), \code{23} (2:3), \code{34} (3:4), \code{56} (5:6) , \code{1011} (10:11).
+ It will adjust the size of the colored area or titlegraphic on the titlepage.
+ For \cls{bfhthesis} some values might be forbidden if the title information takes too much space.
+
+ The value is initialized to \code{titleimage-ratio=12}. the value will be ignored if no titlepage is generated e.\,g. with \code{titlepage=false}.
+
+ \item[invert-title=true/false] This switch toggles the color of text \& logo on the titlepage. If set to true, the base colors of titlepage (BFH-Orange/BFH-Gray) are switched.
+\end{description}
+
+
+\section{Additional layout modules}
+\label{sec:bfhmodule}
+
+To support some layout elements among all document types BFH-CI introduces the Macro
+\begin{verbatim}
+ \LoadBFHModule{<List of Modules>}
+\end{verbatim}
+
+These modules can be used to extend the basic mechanisms on additional elements.
+
+Currently there are 3 Modules prepared:
+\begin{itemize}
+ \item table
+ \item listings
+ \item terminal
+ \item boxes
+ \item rules
+\end{itemize}
+
+The corresponding filenames following the structure \file{bfh-layout-<modulename>.cfg}. User defined modules can be added.
+
+\subsection{table module}
+
+This module is automatically loaded by all document types beside \cls{bfhletter.cls}.
+
+\begin{verbatim}
+ \LoadBFHModule{table}
+\end{verbatim}
+
+BFH-CI should used colored tabulars. It combined all necessary adjustments in the \verb+\setupBfhTabular+ macro. It will adjust the rowcolor using \pkg{xcolor}. To use the recommended tabular setup one could use
+
+\begin{verbatim}
+\begin{table}
+ \centering
+ \setupBfhTabular
+ \begin{tabular}{lll}
+ \rowcolor{BFH-tablehead}
+ Header 1&Header 2&Header3\\\hline
+ Content 11&Content 12&Content 13\\\hline
+ Content 21&Content 22&Content 23
+ \end{tabular}
+ \caption{table caption}
+ \label{table-label}
+\end{table}
+\end{verbatim}
+
+\begin{table}[ht]
+ \centering
+ \setupBfhTabular
+ \begin{tabular}{lll}
+ \rowcolor{BFH-tablehead}
+ Header 1&Header 2&Header3\\\hline
+ Content 11&Content 12&Content 13\\\hline
+ Content 21&Content 22&Content 23
+ \end{tabular}
+ \caption{table caption}
+ \label{table-label}
+\end{table}
+
+To simplify the usage the \pkg{bfhlayout} also provides a \verb+bfhTabular+ environment. The upper example would be equal to:
+
+\begin{verbatim}
+\begin{table}
+ \begin{bfhTabular}{lll}
+ Header 1&Header 2&Header3\\
+ Content 11&Content 12&Content 13\\
+ Content 21&Content 22&Content 23
+ \end{bfhTabular}
+ \caption{table caption}
+ \label{table-label}
+\end{table}
+\end{verbatim}
+
+In case the package \pkg{tabularray} ist loaded the table module will also implement a tblr environ to use the layout.
+For further usage information please have a look at the \pkg{tabularray} documentation.
+
+\begin{verbatim}
+\begin{bfhTblr}{lll}
+ Header 1&Header 2&Header3\\
+ Content 11&Content 12&Content 13\\
+ Content 21&Content 22&Content 23
+\end{bfhTblr}
+\end{verbatim}
+
+\subsection{listings module}
+
+Loades the \pkg{listings} package and adjusts colors for the listing environments to match the CI.
+
+\subsection{terminal module}
+
+Provides some terminal mechanisms to be similar to OSX and ubuntu terminals.
+The mechanism is based on \pkg{tcolorbox} and either \pkg{listings} or \pkg{minted} can be used as listing engine.
+
+The syntax was adapted from internal packages providing this functionality.
+Therefore the syntax for adjusting the terminal propmts is slightly different for the minted engine in contrast to listings.
+
+The following examples show the difference.
+
+Please pay attention to the fact that the current implementation to change the prompt needs global assignments. A reset at start of a new terminal environment might be required.
+
+
+\begin{multicols}{2}[\subsubsection{terminal using listings}]
+\tcbset{listing engine=listings}
+\setupLinuxPrompt{student}
+\begin{ubuntu}
+ whoami `\StartConsole`
+ student `\setupLinuxPrompt{student}`
+ sudo su `\setupLinuxPrompt{root}`
+ hostname `\StartConsole`
+ ubuntu`\setupLinuxPrompt{root}`
+ ssh bob@remotehost`\StartConsole`
+ student@remotehost's`\ `password:
+ Linux remote host 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686
+ You have mail.
+ Last login: Wed Oct 16 01:12:35 2012 from localhost`\setupLinuxPrompt{remote}`
+ whoami`\StartConsole`
+ user`\setupLinuxPrompt{remote}`
+ _
+\end{ubuntu}
+
+\begin{macos}
+ whoami `\StartConsole`
+ root `\setupOSXPrompt{root}`
+ hostname `\StartConsole`
+ ubuntu`\setupOSXPrompt{root}`
+ ssh bob@remotehost`\StartConsole`
+ bob@remotehost's`\ `password:
+ Linux remote host 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686
+ You have mail.
+ Last login: Wed Oct 16 01:12:35 2012 from localhost`\setupOSXPrompt{remote}`
+ whoami`\StartConsole`
+ user`\setupOSXPrompt{remote}`
+ _
+\end{macos}
+\end{multicols}
+
+\subsubsection{terminal using minted}
+
+This section is commented because minted has to be set up to use it.
+In case this should be used minted has been loaded before the terminal module.
+
+%\tcbset{listing engine=minted}
+%\begin{multicols}{2}
+%\setupLinuxPrompt{student}
+%\begin{ubuntu}
+% whoami
+% student `\StartConsole`
+% sudo su `\setupLinuxPrompt{student}`
+% hostname `\setupLinuxPrompt{root}`
+% ubuntu`\StartConsole`
+% ssh bob@remotehost`\setupLinuxPrompt{root}`
+% student@remotehost's`\ `password: `\StartConsole`
+% Linux remotehost 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686
+% You have mail.
+% Last login: Wed Oct 16 01:12:35 2012 from localhost
+% whoami`\setupLinuxPrompt{remote}`
+% user`\StartConsole`
+% _`\setupOSXPrompt{remote}`
+%\end{ubuntu}
+%
+%\setupOSXPrompt{student}
+%\begin{macos}
+% whoami
+% root`\StartConsole`
+% hostname`\setupOSXPrompt{root}`
+% ubuntu`\StartConsole`
+% ssh bob@remotehost`\setupOSXPrompt{root}`
+% bob@remotehost's`\ `password:`\StartConsole`
+% Linux remotehost 2.6.32-5-686 #1 SMP Sun Sep 23 09:49:36 UTC 2012 i686
+% You have mail.
+% Last login: Wed Oct 16 01:12:35 2012 from localhost
+% whoami`\setupOSXPrompt{remote}`
+% user`\StartConsole`
+% _`\setupOSXPrompt{remote}`
+%\end{macos}
+%\end{multicols}
+
+\subsection{boxes module}
+
+The boxes module provides box environments based on the BFH coporate identity.
+All of them follow the same syntax:
+
+\begin{verbatim}
+ \begin{ENV_TYPE}[COLOR_OPTION]{BOX TITLE}
+ Some text displayed in the color box.
+ \end{ENV_TYPE}
+\end{verbatim}
+
+General use of the BFH notification box environment.
+\begin{verbatim}
+ \begin{NOTIFICATION_TYPE}
+ Some text displayed in the color box.
+ \end{NOTIFICATION_TYPE}
+\end{verbatim}
+
+
+\subsubsection{The general purpose box}
+The BFH color box using the option to set user defined color.
+
+\begin{verbatim}
+ \begin{bfhBox}[BFH-MediumBlue]{\texttt{bfhBox}}
+ Color provided by \texttt{bfhcolors} package: \texttt{BFH-MediumBlue}
+ \end{bfhBox}
+\end{verbatim}
+
+
+\begin{bfhBox}[BFH-MediumBlue]{\texttt{bfhBox}}
+ Color provided by \texttt{bfhcolors} package: \texttt{BFH-MediumBlue}
+\end{bfhBox}
+
+The box without the color option falls back to default color box in BFH medium green.
+
+\begin{verbatim}
+ \begin{bfhBox}{\texttt{bfhBox}}
+ Color provided by \texttt{bfhcolors} package: \texttt{BFH-MediumGreen}
+ Default color
+ \end{bfhBox}
+\end{verbatim}
+
+\begin{bfhBox}{\texttt{bfhBox}}
+ Color provided by \texttt{bfhcolors} package: \texttt{BFH-MediumGreen}
+ Default color
+\end{bfhBox}
+
+
+\subsubsection{Theme boxes}
+
+\begin{verbatim}
+ \begin{bfhAlertBox}
+ Some text to emphasis.
+ \end{bfhAlertBox}
+\end{verbatim}
+
+\begin{bfhAlertBox}
+ An alert box.
+\end{bfhAlertBox}
+
+\begin{verbatim}
+ \begin{bfhWarnBox}
+ Some text to emphasis.
+ \end{bfhWarnBox}
+\end{verbatim}
+
+\begin{bfhWarnBox}
+ A warning box.
+\end{bfhWarnBox}
+
+\begin{verbatim}
+ \begin{bfhNoteBox}
+ Some text to emphasis.
+ \end{bfhNoteBox}
+\end{verbatim}
+
+\begin{bfhNoteBox}
+ A note box.
+\end{bfhNoteBox}
+
+\begin{verbatim}
+ \begin{bfhRecycleBox}
+ Some text to emphasis.
+ \end{bfhRecycleBox}
+\end{verbatim}
+
+\begin{bfhRecycleBox}
+ A recycle box.
+\end{bfhRecycleBox}
+
+\begin{verbatim}
+ \begin{bfhReadBox}
+ Some text to emphasis.
+ \end{bfhReadBox}
+\end{verbatim}
+
+\begin{bfhReadBox}
+ A read box.
+\end{bfhReadBox}
+
+
+\begin{verbatim}
+ \begin{bfhProcessingBox}
+ Some text to emphasis.
+ \end{bfhProcessingBox}
+\end{verbatim}
+
+\begin{bfhProcessingBox}
+ A processing box.
+\end{bfhProcessingBox}
+
+\subsection{rules module}
+The rules module adds user macros to create separation rules as described in the CI guideline.
+
+\begin{verbatim}
+ \bfhRule[optional length]
+\end{verbatim}
+
+\bfhRule
+
+\end{document}
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHSciPoster.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHSciPoster.tex
new file mode 100644
index 0000000000..4713ff94dc
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHSciPoster.tex
@@ -0,0 +1,149 @@
+% !TeX program = lualatex
+%%
+
+\documentclass[
+ paper=a0,%Voreinstellung wäre a1
+% boxstyle= framed, % Boxen mit abgerundeten Ecken, farbigem Titelblock
+% boxstyle=colored % Boxen mit farbigen Hintergrund
+% boxstyle=default % Voreinstellung, keine sichtbare Box, farbiger Titel
+% logofile=example-image, %Falls die Logo Dateien nicht vorliegen
+ style=ruled, % Stil für Header/Footer einzeln wählbar über title-style/footer-style, default ist plain
+% logo=head,% Logo im Titelblock anstatt der Fusszeile
+% invert-colors % Orange/Blau im title,footer,logo getauscht. einzeln anwählbar über invert-title-colors,invert-footer-colors,invert-logo-colors
+ ]{bfhsciposter}
+
+%Sprache
+\usepackage[nswissgerman]{babel}
+\usepackage[autostyle]{csquotes}
+
+
+%Makros für dieses Beispieldokument. Im Allgemeinen nicht notwendig.
+\newcommand{\tbs}{\textbackslash}
+\newcommand{\repl}[1]{<\textit{#1}>}
+\let\code\texttt
+\newcommand*{\macro}[1]{\code{\tbs#1}}
+\let\file\texttt
+\let\pck\textsf
+\let\cls\textsf
+
+
+\begin{document}
+
+\title{\pck{tcolorbox}-Poster-Template\\
+ der Berner Fachhochschule}
+\author{Marei Peischl\inst{*}\thanks{kontakt@peitex.de} \and der \TeX-Löwe}
+\institute{\inst{*}pei\TeX{} \TeX{}nical Solutions, Hamburg, Deutschland}
+%\inst kann in den Autor und Institutsfeldern genutzt werden um eine Zuordnung zu ermöglichen. Bei Nummerierung ist der Nutzer dafür verantwortlich Konflikte mit \thanks zu vermeiden.
+%\titlegraphic{\includegraphics[width=10cm]{example-image}}
+\footerqrcode{https://www.peitex.de}
+\footer{Fusszeile: Falls neben den Logos andere Angaben erforderlich sind}
+
+%Instituts/Sponsorenlogos von links nach rechts
+\footergraphics{
+ \includegraphics[height=\height]{example-image}
+ \includegraphics[height=\height]{example-image}
+}
+
+\begin{tcbposter}[
+ poster={
+ columns=4,
+ rows=7,
+ spacing=1cm,
+% showframe, %Gitter einblenden. Für Platzierung häufig hilfreich
+ },]
+
+\begin{posterboxenv}[,BFH-abstract,title=Zusammenfassung]{name=intro,column=1,row=1,span=4}
+ Die \cls{bfhsciposter}-Klasse basiert auf dem \pck{tcolorbox} Paket von Thomas F. Sturm.
+ Sie versucht einen einfachen Weg zu bieten, wissenschaftliche Poster im Stil des Vorporate Design der Berner Fachhochschule zu erstellen. Dieses Dokument dient zur Dokumentation und als Verwendungsbeispiel.
+
+ Dieses Dokument verwendet unterschiedliche Boxentypen. Dies ist selbstverständlich für die praktische Verwendung nicht empfehlenswert. Dieser Modus dient lediglich Demonstrationszwecken.
+\end{posterboxenv}
+
+% Titelei
+\begin{posterboxenv}[title=Titelei]{name=title, row=2, span=2, rowspan=2}
+ Die Definition des Titelblockes lehnt sich an die Standard-\LaTeX{}-Strukturierung mit Hilfe von \macro{maketitle} an.
+
+ Für die Datenübergabe stehen die Makros \macro{title}, \macro{author}, \macro{institute} und \macro{titlegraphic} zur Verfügung. Letztere wird Links vom Titelblock platziert, die Breite des Titels wird automatisch angepasst.
+
+ Zusätzlich zu den Titeldaten stehen über \macro{setqrcode} und \macro{setfoot} Makros zur Verfügung, die die Fusszeile füllen.
+\end{posterboxenv}
+
+% Fusszeile
+\begin{posterboxenv}[title=Fusszeile]{name=footer,below=title, span=2, rowspan=2 }
+ Die Fusszeile ist grundsätzlich aktiviert, kann jedoch mit Hilfe der Klassenoption \code{footer=false} ausgeschaltet werden. In diesem Fall werden jedoch mit \macro{thanks} übergebene zusätzliche Titeldaten nicht angezeigt.
+
+ Für die Übergabe weiterer Daten stehen die Makros \macro{footer}, \macro{footergraphics} und \macro{footerqrcode} zur Verfügung.
+
+ \macro{footergraphics} ist für die Übergabe von Logos gedacht und \macro{footerqrcode} übernimmt einen URL die anschliessend in der rechten unteren Ecke als QRCode platziert wird.
+
+ Die Fusszeile selbst erhält die Daten aus \macro{thanks}, kann jedoch ergänzt werden. Sie hat die Breite des Satzspiegels abzüglich der Logos/QRcode.
+
+ Der Abstand zwischen Logo und den Inhalten des Fußes, sowie zu den Logos und dem QRcode im Fuß wird über die Länge \macro{footerhsep} gesteuert. Änderung ist über \macro{setlength} möglich.
+\end{posterboxenv}
+
+% Platzierung der Boxen
+\begin{posterboxenv}[title=Platzierung der Boxen]{name=positioning, below=footer, span=2}
+ Bei der \pck{poster}-Bibliothek des \pck{tcolorbox} Paketes, werden die Boxen manuell positioniert.
+
+ Dies benötigt zwar einen zusätzlichen Arbeitsschritt, erlaubt jedoch einer feinere Ausrichtung der Boxen, auch relativ zueinander.
+
+ Diese Mechanismen ermöglichen auch, Querverweise einfacher zu positionieren. Hierfür ist ein Blick in die \pck{tcolorbox}-Dokumentation hilfreich.
+\end{posterboxenv}
+
+% Eine Box im Stil BFH-framed
+\begin{posterboxenv}[title=Eine Box im Stil BFH-framed, BFH-framed]{name=framed, column=3, row=2, span=2}
+ Die Boxen können in verschiedenen Varianten gestaltet werden. Die Voreinstellung entspricht den offiziellen Vorgaben, jedoch kann es aus unterschiedlichen Gründen notwendig sein, eine klarere Abgrenzung zu setzen (lobale Klassenoption \code{boxstyle=framed} oder lokaler Stil \code{BFH-framed}).
+\end{posterboxenv}
+
+%% Eine Box im Stil BFH-colored
+\begin{posterboxenv}[title=Eine Box im Stil BFH-colored, BFH-colored]{name=colored, column=3, row=3, span=2}
+ Boxentyp zwischen dem Stil \code{framed} und dem Stil \code{official}.
+
+ Einstellung dieser Option ist sowohl über die Nutzung der globalen Klassenoption \code{style=colored} als auch durch die Verwendung des lokalen Stils\code{BFH-colored} möglich.
+
+\end{posterboxenv}
+%
+% Box ohne Titel mit Abbildung
+\begin{posterboxenv}[BFH-colored]{name=colored-notitle,column=3,row=4, rowspan=2}
+ \includegraphics[width=\linewidth]{example-image}
+ \captionof{figure}{Ein Beispielbild, in einer Box ohne Titel (\code{framed-notitle}). In diesem Fall sind der Stil {BFH} und BFH-colored identisch}
+\end{posterboxenv}
+
+% Box ohne Titel
+\begin{posterboxenv}[BFH-framed]{name=notitle, column=4, below=colored}
+ Ein Beispiel für den Stil \code{framed} ohne einen eigenen Titel.
+\end{posterboxenv}
+
+ Box mit Verweis
+\begin{posterboxenv}[title=Box mit Verweis,BFH-framed]{name=verweis,column=4, above=row6}
+ Beispielbox mit Pfeil, um zwei Boxen miteinander zu verknüpfen oder Leseabzweigungen zu generieren.
+\end{posterboxenv}
+
+Zwischen den Boxen kann direkt TikZ-Code eingegeben werden. Das Namensschema der Boxen als Koordinaten lautet
+ TCBPOSTER@<boxname>.ankerpunkt
+ Für genauere Erläuterungen zur Syntax, bietet die tikz-Anleitung genauere Angaben, weitere benannte Koordinaten finden sich in der tcolorbox-Dokumentation
+\draw[BFH-Orange,line width=4pt,->] ([yshift=-1cm]TCBPOSTER@verweis.east) -| ([xshift=1cm]TCBPOSTER@colored.east) -- (TCBPOSTER@colored.east);
+
+% Relative Positionierung
+\begin{posterboxenv}[title=Relative Positionierung,BFH-framed]{name=relative, column=4, between=notitle and verweis}
+ Diese Box wird zwischen den beiden Boxen \code{notitle} und \code{verweis} platziert.
+\end{posterboxenv}
+
+% Papierformat
+\begin{posterboxenv}[title=Papierformat]{name=paper,column=3,span=2,below=row5}
+ Die Klasse \cls{BFHsciposter} unterstützt die Papierformate A0, A1, A2 und A3. Der Wert wird über die Klassenoption \code{paper} ausgewählt:
+
+\begin{verbatim}
+paper=a0
+\end{verbatim}
+ Die Voreinstellung entspricht \code{a1}.
+ Die Änderung des Papierformates ist keine Skalierung, da Schriftgrössen nicht direkt skalieren.
+
+ Um eine Skalierung eines grösseren auf ein kleineres Design zu erreichen, empfiehlt es sich, das Ausgangsformat beim Druck zu skalieren (Drucken in eine Datei mit Skalierung) oder ggf. die PDF-Datei mit Paketen wie \pck{pdfpages} umzurechnen.
+\end{posterboxenv}
+
+\end{tcbposter}
+
+\end{document}
+
+
diff --git a/macros/latex/contrib/bfh-ci/example/DEMO-BFHThesis.tex b/macros/latex/contrib/bfh-ci/example/DEMO-BFHThesis.tex
new file mode 100644
index 0000000000..06ef7515cc
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/example/DEMO-BFHThesis.tex
@@ -0,0 +1,56 @@
+%============================ MAIN DOCUMENT ================================
+% define document class
+\documentclass[
+ a4paper % paper format
+% ,10.5pt % fontsize
+% ,BCOR=18mm % Binding correction
+ ,bibliography=totoc % If enabled add bibliography to TOC
+ ,listof=totoc % If enabled add lists to TOC
+% ,bilingual
+ ,monolingual
+]{bfhthesis} % KOMA-script report
+
+\usepackage[
+ hidelinks,
+ pdfusetitle,
+]{hyperref}
+
+\begin{document}
+
+\frontmatter
+
+\title{Bachelor's Thesis}
+\subtitle{Thesis subject}
+\author{Anton Muster \and Cindy Example}
+\institution{Bern University of Applied Sciences}
+\department{Technik und Informatik}
+\institute{Mikro- und Medizintechnik}
+\version{1.0}
+\titlegraphic{\includegraphics[width=\width]{example-image}}
+\advisor{Prof. Dr. Super Smart}
+\coadvisor{PhD A. Smart}
+\projectpartner{proj partner}
+\expert{Some expert}
+\degreeprogram{Bachelor of Science in Computer Science}
+
+%---------------- BFH tile page -----------------------------------------
+\maketitle
+
+\addchap{Abstract}
+Here an abstract might be placed.
+
+
+%------------ TABLEOFCONTENTS ----------------
+\tableofcontents
+
+%------------ START MAIN PART ----------------
+\mainmatter
+
+\chapter{First chapter of the main part}
+
+\appendix
+
+\chapter{First appendix Chapter}
+
+
+\end{document}
diff --git a/macros/latex/contrib/bfh-ci/tex/beamercolorthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamercolorthemeBFH.sty
new file mode 100644
index 0000000000..3d197f6eb9
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamercolorthemeBFH.sty
@@ -0,0 +1,109 @@
+%% This is file `beamercolorthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{beamercolorthemeBFH}[2021/12/23 v2.0.0 BFH-CI beamer color theme, CI of Bern University of Applied Sciences]
+
+% ====================
+% Dependencies
+% ====================
+
+\mode<presentation>{\PassOptionsToPackage{colormode=RGB}{bfhcolors}}
+
+\RequirePackage{bfhcolors}
+
+% ====================
+% Theme
+% ====================
+
+\mode<presentation>
+
+\setbeamercolor{structure}{fg=BFH-Gray}
+\setbeamercolor{sidebar}{fg=BFH-Orange,bg=white}
+
+\setbeamercolor{author in sidebar}{fg=BFH-Gray}
+\setbeamercolor{title in sidebar}{fg=BFH-Gray}
+
+\setbeamercolor{palette sidebar secondary}{fg=BFH-Orange}
+\setbeamercolor{palette sidebar primary}{fg=BFH-Orange}
+
+\setbeamercolor{BFH-Gray}{bg=BFH-Gray,fg=BFH-Orange}
+\setbeamercolor{BFH-Orange}{bg=BFH-Orange,fg=BFH-Gray}
+
+\setbeamercolor{BFH}{parent=BFH-Gray}
+
+\setbeamercolor{section in sidebar shaded}{fg=BFH-Gray}
+\setbeamercolor{subsection in sidebar shaded}{fg=BFH-Gray}
+\setbeamercolor{section in sidebar}{fg=white,bg=BFH-Orange}
+\setbeamercolor{subsection in sidebar}{fg=white,bg=BFH-Orange}
+
+\setbeamercolor{version in sidebar}{fg=BFH-Gray}
+\setbeamercolor{frametitle}{fg=BFH-Gray}
+\setbeamercolor{framesubtitle}{fg=BFH-Gray}
+
+\setbeamercolor{title page}{use=BFH,bg=BFH.bg,fg=white}
+\setbeamercolor{title page.invert}{use=BFH,bg=BFH.fg,fg=white}
+\setbeamercolor{title page.bottom}{use=BFH,fg=BFH.bg}
+\setbeamercolor{title page.boxed}{use=BFH,fg=BFH.bg,bg=white}
+\setbeamercolor{title rule}{use=BFH,bg=BFH.fg}
+\setbeamercolor{title rule.invert}{use=BFH,bg=BFH.bg}
+
+%title colors are set empty by default to depend on the title page template
+\setbeamercolor{titlelike}{fg=white}
+\setbeamercolor*{title}{}
+\setbeamercolor*{subtitle}{}
+\setbeamercolor*{author}{}
+\setbeamercolor*{institute}{}
+
+\setbeamercolor{section page}{bg=BFH-Gray,fg=white}
+\setbeamercolor{section rule}{bg=BFH-Orange}
+
+\setbeamercolor{footline}{bg=,fg=BFH-Gray}
+
+%% % Block
+\setbeamercolor{block title}{fg=BFH-Gray!10,bg=BFH-Gray!80}
+\setbeamercolor{block body}{fg=BFH-Gray,bg=BFH-Gray!40}
+\setbeamercolor{block frame}{parent=block title}
+
+%% % Example Block
+\setbeamercolor{block title example}{fg=BFH-Gray!10,bg=BFH-MediumGreen!80}
+\setbeamercolor{block body example}{fg=BFH-MediumGreen,bg=BFH-MediumGreen!40}
+\setbeamercolor{block frame example}{bg=BFH-MediumGreen}
+
+%% % Alert Block
+\setbeamercolor{block title alerted}{fg=BFH-Gray!10,bg=BFH-MediumPurple!80}
+\setbeamercolor{block body alerted}{fg=BFH-MediumPurple,bg=BFH-MediumPurple!40}
+\setbeamercolor{block frame alerted}{bg=BFH-MediumPurple}
+
+%% % Alert Textk
+\setbeamercolor{alerted text}{fg=BFH-DarkPurple}
+
+\mode<all>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerfontthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamerfontthemeBFH.sty
new file mode 100644
index 0000000000..491894721b
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerfontthemeBFH.sty
@@ -0,0 +1,82 @@
+%% This is file `beamerfontthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{beamerfontthemeBFH}[2021/12/23 v2.0.0 BFH-CI beamer font theme, CI of Bern University of Applied Sciences]
+
+% ====================
+% Dependencies
+% ====================
+
+\RequirePackage{bfhfonts}
+
+\mode<presentation>
+\usefonttheme[only large]{structurebold}
+
+% ====================
+% Fonts
+% ====================
+
+\usefonttheme{professionalfonts}
+
+\setbeamerfont{headline title}{size=\Huge,series=\bfseries}
+\setbeamerfont{headline author}{size=\Large}
+\setbeamerfont{headline institute}{size=\normalsize}
+\setbeamerfont{heading}{series=\bfseries}
+\setbeamerfont{caption}{size=\small}
+\setbeamerfont{footline}{size=\tiny}
+
+\setbeamerfont*{title}{size=\LARGE,series=\bfseries}
+\setbeamerfont*{subtitle}{size=\large,series=\bfseries}
+\setbeamerfont*{date}{size=\footnotesize,series=\bfseries}
+\setbeamerfont*{author}{size=\footnotesize,series=\bfseries}
+\setbeamerfont*{institute}{parent=author}
+
+\setbeamerfont{section title}{series=\normalfont,size=\LARGE}
+\setbeamerfont{title in sidebar}{series=\bfseries}
+\setbeamerfont{author in sidebar}{series=\bfseries}
+\setbeamerfont{frametitle}{series=\mdseries}
+\setbeamerfont{block title}{size=\small}
+\setbeamerfont{block body}{size=\small}
+\setbeamerfont{block title example}{size=\small}
+\setbeamerfont{block body example}{size=\small}
+\setbeamerfont{block title alerted}{size=\small}
+\setbeamerfont{block body alerted}{size=\small}
+
+\setbeamerfont{lecture title}{series=\normalfont,size=\LARGE}
+
+\setbeamerfont{section in toc}{size=\normalsize}
+\setbeamerfont{subsection in toc}{size=\small}
+\setbeamerfont*{itemize/enumerate body}{size=\footnotesize}
+\setbeamerfont*{itemize/enumerate subbody}{parent=itemize/enumerate body}
+\setbeamerfont*{itemize/enumerate subsubbody}{parent=itemize/enumerate body}
+
+\mode<all>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
new file mode 100644
index 0000000000..41856ab212
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerinnerthemeBFH.sty
@@ -0,0 +1,464 @@
+%% This is file `beamerinnerthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplPackage{beamerinnerthemeBFH}{2021/12/23}{2.0.0}{BFH-CI beamer inner theme, CI of Bern University of Applied Sciences}
+
+\RequirePackage{l3keys2e}
+
+\mode<presentation>
+
+\RequirePackage{trimclip}
+
+
+\keys_define:nn {ptxcd/beamer/inner} {
+ authorontitle .bool_gset:N = \g_ptxcd_authorontitle_bool,
+ authorontitle .initial:n = false,
+ authorontitle .default:n = true,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n =,
+ enforce-title-logo .bool_gset:N = \g_ptxcd_enforce_titlelogo_bool,
+ enforce-title-logo .initial:n = false,
+}
+\ProcessKeysOptions{ptxcd/beamer/inner}
+
+%logo setup & fallback
+\PassOptionsToPackage{variant=C,init-inverted=true,height=\g__ptxcd_logo_height_dim}{bfhlogo}
+
+\file_if_exist:nTF {bfhlogo.sty}
+{
+ \RequirePackage{bfhlogo}
+}
+{
+ \tl_if_empty:NT \g_ptxcd_logofile_tl {
+ \msg_new:nnnn {bfh-ci} {missing-bfhlogo}
+ {I~could~not~find~the~bfhlogo~package.}
+ {Please~have~a~look~at~the~bfh-ci~documentation~for~more~information~or~provide~an~alternative~using~the~logofile~option.}
+ \msg_warning:nn {bfh-ci} {missing-bfhlogo}
+ }
+}
+
+\box_if_exist:NF \g__ptxcd_logo_box {
+ \box_new:N \g__ptxcd_logo_box
+ \box_new:N \g__ptxcd_inverted_logo_box
+}
+
+\tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hbox_gset:Nn \g__ptxcd_logo_box {\includegraphics[height=\g__ptxcd_logo_height_dim]{\g_ptxcd_logofile_tl}}
+ \box_gset_eq:NN \g__ptxcd_inverted_logo_box \g__ptxcd_logo_box
+}
+
+\box_new:N \l__ptxcd_titlegraphic_box
+\box_new:N \l__ptxcd_titlehead_box
+\dim_new:N \l__ptxcd_titlegraphic_ht_dim
+\dim_new:N \l__ptxcd_titlegraphic_wd_dim
+
+\dim_new:N \g__ptxcd_titlerule_dim
+\dim_gset:Nn \g__ptxcd_titlerule_dim {4pt}
+
+%initialize sidebarwidth, only required if sidebar is not active (\z@)
+\newdimen\beamer@sidebarwidth
+
+\@ifpackageloaded{beamerouterthemeBFH}{}{
+ \dim_new:N \g__ptxcd_beamer_logosep_dim
+ \dim_new:N \l__ptxcd_beamer_extraindent_dim
+ \dim_new:N \g__ptxcd_beamer_sep_dim
+}
+
+\newcommand*{\partnerlogo}[1]{\def\insertpartnerlogo{\def\height{\g__ptxcd_logo_height_dim}#1}}
+\partnerlogo{}
+
+\RenewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \def\inserttitlegraphic{
+ \hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\l__ptxcd_titlegraphic_wd_dim}
+ \dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box - \l__ptxcd_titlegraphic_ht_dim > \c_zero_dim}
+ {
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\l__ptxcd_titlegraphic_ht_dim}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }{
+ \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\l__ptxcd_titlegraphic_ht_dim}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \l__ptxcd_titlegraphic_wd_dim) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }
+ }
+ }{
+ \def\inserttitlegraphic{#2}
+ }
+}
+
+\newcommand*{\inserttitleVcenter}[1]{
+ \usebeamerfont{title}
+ \vbox_to_ht:nn {#1} {
+ \skip_vertical:n {.6\g__ptxcd_logo_height_dim plus 1 fill}
+ \leavevmode\inserttitle
+ \skip_vertical:n {\c_zero_dim plus 1 fill}
+ }
+}
+
+\defbeamertemplate*{title~page~logo}{BFH}[1][\g__ptxcd_logo_box]{
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim }
+ \leavevmode\box_use:N #1
+ \ifx\insertpartnerlogo\@empty
+ \else
+ \hfill
+ \raisebox{\dim_eval:n {-\height+\box_ht:N #1}}[0pt][0pt]{\insertpartnerlogo}
+ \fi
+ \par\nointerlineskip
+ \skip_vertical:n {\c_zero_dim plus 1 fill}
+}
+
+\defbeamertemplate*{author~inst~sep}{BFH}{{\usebeamercolor{author~inst~sep}\usebeamerfont{author~inst~sep}\space|\space}}
+
+\defbeamertemplate*{author~in~title~page}{BFH}{
+ \begingroup
+ \usebeamerfont{author}
+ \ifx\insertauthor\@empty
+ \else
+ {\usebeamercolor[fg]{author}\usebeamerfont{author}\insertauthor}
+ \fi
+ \ifx\insertinstitute\@empty
+ \else
+ \ifx\insertauthor\@empty
+ \else
+ \usebeamertemplate{author~inst~sep}
+ \fi
+ {\usebeamercolor[fg]{institute}\usebeamerfont{institute}\insertinstitute}
+ \fi
+ \endgroup
+}
+
+\defbeamertemplate*{title~ page}{BFH}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \vbox to \paperheight{
+ \begin{beamercolorbox}[
+ ht=.65\paperheight,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,
+ vmode,
+ #1
+ ]{title~page}
+ \vbox_to_ht:nn {.65\paperheight} {
+ \bool_if:NT \g_ptxcd_enforce_titlelogo_bool {
+ \setbeamertemplate{title~page~logo}[BFH][\g__ptxcd_inverted_logo_box]
+ \usebeamertemplate{title~page~logo}
+ }
+ \skip_vertical:n {.833\g__ptxcd_logo_height_dim plus 1 fill}
+ \usebeamerfont{title}\inserttitle\par%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \vskip1em\par
+ {\usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par}
+ \par
+ \vfill
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim}
+ }
+ \null
+ }
+ \end{beamercolorbox}
+ \par
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ ]{title~rule}
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-Orange}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \vbox to \paperheight{
+ \begin{beamercolorbox}[
+ ht=.8\paperheight,
+ dp=0pt,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,
+ vmode
+ ]{title~page.invert}
+ \vbox_to_ht:nn {.8\paperheight} {
+ \usebeamertemplate{title~page~logo}
+ {\usebeamercolor[fg]{title}\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamercolor[fg]{subtitle}\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \vskip1em\par
+ {\usebeamercolor[fg]{date}\usebeamerfont{date}\insertdate\par}
+ \vfill
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim}
+ }
+ \null
+ }
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ ]{title~rule.invert}
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-graphic}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {.65\paperheight}
+ \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ \vbox_to_ht:nn {\paperheight}{
+ \begin{beamercolorbox}[
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,
+ ht=0pt,
+ dp=0pt,
+ vmode]{title~page}
+ \raisebox{-\height}{\inserttitlegraphic}
+ \end{beamercolorbox}
+ \nointerlineskip
+ \vbox_to_ht:nn {\l__ptxcd_titlegraphic_ht_dim}{
+ \usebeamertemplate{title~page~logo}
+ \vfill
+ }
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax
+ ]{title~rule}
+ \end{beamercolorbox}
+ \vskip.5\baselineskip
+ \begin{beamercolorbox}[wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,leftskip=\beamer@leftmargin,
+ rightskip=\beamer@rightmargin,#1]{title~page.bottom}
+ {\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par
+ \ifx\insertsubtitle\@empty%
+ \else%
+ {\usebeamerfont{date}\insertdate}
+ \par
+ \fi
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ }
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\defbeamertemplate{title~ page}{BFH-fullgraphic}[1][]
+{
+ \vskip-\beamer@frametopskip
+ \nointerlineskip
+ \dim_set:Nn \l__ptxcd_titlegraphic_ht_dim {\paperheight}
+ \dim_set:Nn \l__ptxcd_titlegraphic_wd_dim {\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi}
+ \vbox_to_ht:nn {\paperheight}{
+ \begin{beamercolorbox}[wd=\l__ptxcd_titlegraphic_wd_dim,ht=0pt,dp=0pt,vmode]{title~page}
+ \raisebox{-\height}{\inserttitlegraphic}
+ \end{beamercolorbox}
+ \nointerlineskip
+ \vbox_to_ht:nn {.5\paperheight}{
+ \usebeamertemplate{title~page~logo}
+ \vfill
+ }
+ \nointerlineskip
+ \begin{beamercolorbox}[
+ ht=\g__ptxcd_titlerule_dim,
+ wd=\dim_eval:n {.75\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi},
+ ]{title~rule}
+ \end{beamercolorbox}\nointerlineskip
+ \begin{beamercolorbox}[
+ wd=\dim_eval:n {.75\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi},
+ ht=.3\paperheight,
+ sep=1ex,
+ vmode,
+ #1
+ ]{title~page.boxed}
+ \vbox_to_ht:nn {.3\paperheight} {
+ \vskip1.25em
+ {\usebeamerfont{title}\inserttitle\par}%
+ \ifx\insertsubtitle\@empty%
+ \else%
+ \vskip0.25em%
+ {\usebeamerfont{subtitle}\insertsubtitle\par}%
+ \fi%
+ \par\vfill
+ \ifx\insertsubtitle\@empty%
+ \else%
+ {\usebeamerfont{date}\leavevmode\insertdate}
+ \par
+ \fi
+ \bool_if:NT \g_ptxcd_authorontitle_bool {
+ \usebeamertemplate{author~in~title~page}
+ }
+ }
+ \end{beamercolorbox}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+\cs_new:Nn \__ptxcd_content_separator:n {
+ \vskip-\beamer@frametopskip\relax
+ \nointerlineskip
+ \vbox_to_ht:nn {\paperheight}{
+ \bool_if:NT \l__ptxcd_content_separator_ruled_bool {
+ \vspace*{.1\paperheight}
+ \begin{beamercolorbox}[ht=\g__ptxcd_titlerule_dim,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax]{title~rule}
+ \end{beamercolorbox}
+ \nointerlineskip
+ }
+ \begin{beamercolorbox}[ht=\bool_if:NTF \l__ptxcd_content_separator_ruled_bool {.5} {.65}\paperheight,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax,leftskip=\beamer@leftmargin,rightskip=\beamer@rightmargin,vmode]{title~page}
+ \vbox_to_ht:nn {\bool_if:NTF \l__ptxcd_content_separator_ruled_bool {.5} {.65}\paperheight} {
+ \skip_vertical:n {.333\g__ptxcd_logo_height_dim \bool_if:NT \l__ptxcd_content_separator_ruled_bool {plus 1 fill} }
+ \leavevmode
+ \usebeamerfont{#1~title}
+ \use:c {insert#1}
+ \vfill
+ \null
+ }
+ \end{beamercolorbox}
+ \nointerlineskip
+ \begin{beamercolorbox}[ht=\g__ptxcd_titlerule_dim,wd=\dimexpr\paperwidth\ifbeamer@plainframe\else-\beamer@sidebarwidth\fi\relax]{title~rule}
+ \end{beamercolorbox}
+ \bool_if:NT \l__ptxcd_content_separator_ruled_bool {\vfill}
+ \ifbeamer@plainframe
+ \vspace*{\fill}
+ \usebeamertemplate{footline}\par
+ \fi
+ }
+}
+
+
+\defbeamertemplate*{section~page}{BFH}{
+ \bool_set_false:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {section}
+}
+
+\defbeamertemplate{section~page}{BFH-ruled}
+{
+ \bool_set_true:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {section}
+}
+
+\defbeamertemplate*{lecture~page}{BFH}{
+ \bool_set_false:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {lecture}
+}
+
+\defbeamertemplate{lecture~page}{BFH-ruled}
+{
+ \bool_set_true:N \l__ptxcd_content_separator_ruled_bool
+ \__ptxcd_content_separator:n {lecture}
+}
+
+\cs_new:Nn \__ptxcd_block_begin:n {
+ \par\vskip\medskipamount%
+ \begin{beamercolorbox}[
+ wd=\dimexpr\linewidth+2\l__ptxcd_beamer_extraindent_dim,
+ sep=1.5pt,
+ leftskip=\dimexpr\ifdim\l__ptxcd_beamer_extraindent_dim>\z@\l__ptxcd_beamer_extraindent_dim-\beamer@colbox@sep\else\z@\fi,
+ ]{block~frame#1}
+ \ifx\insertblocktitle\@empty
+ \else
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~title#1}
+ \usebeamerfont*{block~title#1}\insertblocktitle%
+ \end{beamercolorbox}%
+ \vskip1.5pt\par\nointerlineskip
+ \fi
+ \leavevmode
+ \usebeamerfont{block~body#1}%
+ \begin{beamercolorbox}[wd={\dimexpr\linewidth-3pt},colsep=.75ex]{block~body#1}%
+ }
+
+ \cs_new:Nn \__ptxcd_block_end: {\end{beamercolorbox}\end{beamercolorbox}\vskip\smallskipamount}
+
+\defbeamertemplate*{block~begin}{BFH}{\__ptxcd_block_begin:n {}}
+\defbeamertemplate*{block~end}{BFH}{\__ptxcd_block_end:}
+
+\defbeamertemplate*{block~alerted~begin}{BFH}{\__ptxcd_block_begin:n {~alerted}}
+\defbeamertemplate*{block~alerted~end}{BFH}{\__ptxcd_block_end:}
+
+\defbeamertemplate*{block~example~begin}{BFH}{\__ptxcd_block_begin:n {~example}}
+\defbeamertemplate*{block~example~end}{BFH}{\__ptxcd_block_end:}
+
+%Itemize Items
+\defbeamertemplate*{itemize~item}{BFH}{\usebeamerfont*{itemize~item}\raise\dimexpr.4\ht\strutbox-.4ex\hbox{\rule{.8ex}{.8ex}}}
+\defbeamertemplate*{itemize~subitem}{BFH}{\usebeamerfont*{itemize~item}\setlength{\fboxsep}{\z@}\setlength{\fboxrule}{1pt}\raise\dimexpr.4\ht\strutbox-.2ex-\fboxrule\hbox{\fbox{\color{bg}\rule{.4ex}{.4ex}}}}
+\defbeamertemplate*{itemize~subsubitem}{BFH}{\usebeamerfont*{itemize~subitem}\hbox{--}}
+
+\def\maketitle{
+ \ifbeamer@inframe\titlepage\else\frame[plain]{\titlepage}\fi
+}
+
+\def\sectionpage{
+ \ifbeamer@inframe\usebeamertemplate*{section~page}\else\frame[plain]{\usebeamertemplate*{section~page}}\fi
+}
+
+\def\lecturepage{
+ \ifbeamer@inframe\usebeamertemplate*{lecture~page}\else\frame[plain]{\usebeamertemplate*{lecture~page}}\fi
+}
+
+
+\mode<all>
+
+\endinput
+
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH-sidebar.sty b/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH-sidebar.sty
new file mode 100644
index 0000000000..458e091fb5
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH-sidebar.sty
@@ -0,0 +1,105 @@
+%% This is file `beamerouterthemeBFH-sidebar.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{beamerouterthemeBFH-sidebar}[2021/12/23 v2.0.0 BFH-CI beamer outer theme sidebar variant, CI of Bern University of Applied Sciences]
+
+\mode<presentation>
+\useoutertheme{BFH}
+\useoutertheme[height=0pt,width=20mm,right]{sidebar}
+
+\ExplSyntaxOn
+
+\box_new:N \g__ptxcd_sidebar_logo_box
+
+\defbeamertemplate*{logo~in~sidebar}{BFH-sidebar}{
+ \box_if_empty:NT \g__ptxcd_sidebar_logo_box {
+ \cs_if_exist:NT \__ptxcd_set_logobox_A:N {
+ \__ptxcd_set_logobox_A:N \g__ptxcd_sidebar_logo_box
+ \box_gresize_to_wd:Nn \g__ptxcd_sidebar_logo_box {.06\paperwidth}
+ }
+ }
+ \makebox[\beamer@sidebarwidth][c]{%
+ \box_use:N \g__ptxcd_sidebar_logo_box
+ }
+}
+\ExplSyntaxOff
+
+\defbeamertemplate*{title in sidebar}{BFH-sidebar}{
+ {\usebeamerfont{title in sidebar}%
+ \vskip1.5em%
+ \hskip3pt%
+ \usebeamercolor[fg]{title in sidebar}%
+ \insertshorttitle[width=18mm,center,respectlinebreaks]\par%
+ \vskip1.25em%
+ }%
+}
+
+\defbeamertemplate*{author in sidebar}{BFH-sidebar}{
+ {
+ \hskip3pt%
+ \usebeamercolor[fg]{author in sidebar}%
+ \usebeamerfont{author in sidebar}%
+ \insertshortauthor[width=18mm,center,respectlinebreaks]\par%
+ \vskip1.25em%
+ }%
+}
+
+\defbeamertemplate*{sidebar right}{BFH-sidebar}
+{
+ \rule{1.5pt}{\paperheight}%
+ \begin{beamercolorbox}[wd=\dimexpr\beamer@sidebarwidth-1.5pt\relax,vmode]{sidebar}
+ \vbox to \paperheight{
+ \vskip\baselineskip
+ \usebeamertemplate*{title in sidebar}
+ \usebeamertemplate*{author in sidebar}
+ \usebeamertemplate*{logo in sidebar}
+ \vskip20pt%
+ \insertverticalnavigation{15mm}%
+ \par
+ \vskip\fill
+ \usebeamertemplate*{version in sidebar}\par
+ \vskip .1\paperheight
+ \null
+ }
+ \end{beamercolorbox}
+}
+
+\defbeamertemplate*{version in sidebar}{BFH-sidebar}{
+ \ifx\insertversion\@empty
+ \else
+ \hskip3pt%
+ \insertversion\par
+ \vskip1.25em%
+ \fi
+}
+
+\mode<all>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH.sty
new file mode 100644
index 0000000000..f5c49e33ec
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerouterthemeBFH.sty
@@ -0,0 +1,91 @@
+%% This is file `beamerouterthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{beamerouterthemeBFH}[2021/12/23 v2.0.0 BFH-CI beamer outer theme, CI of Bern University of Applied Sciences]
+
+\RequirePackage{l3keys2e}
+
+\mode<presentation>
+\ExplSyntaxOn
+
+\bool_new:N \g__ptxcd_footline_title_bool
+\bool_new:N \g__ptxcd_footline_author_bool
+
+\keys_define:nn {ptxcd/beamer/outer} {
+ footline .multichoice:,
+ footline / author .code:n = \bool_gset:Nn
+ \g__ptxcd_footline_author_bool {#1},
+ footline / author .default:n = true,
+ footline / title .code:n = \bool_gset:Nn \g__ptxcd_footline_title_bool {#1},
+ footline / title .default:n = true,
+}
+
+\ProcessKeysOptions{ptxcd/beamer/outer}
+\ExplSyntaxOff
+
+\defbeamertemplate*{footline}{BFH}{%
+ \begin{beamercolorbox}[wd=\paperwidth,sep=.5\beamer@leftmargin,
+ leftskip=.5\beamer@leftmargin,rightskip=.5\beamer@rightmargin,]{footline}%
+ \usebeamerfont{footline}%
+ \ifbeamertemplateempty{author in head/foot}{}{%
+ \usebeamertemplate{author in head/foot}%
+ \hfill
+ }%
+ Berner~Fachhochschule | Haute~école~spécialisée~bernoise | Bern~University~of~Applied~Sciences
+ \hfill\usebeamertemplate{page number in head/foot}%
+ \end{beamercolorbox}%
+}
+
+%bases on default frametitle, see beameroutherthemedefault.sty
+% Copyright 2007 by Till Tantau
+% Copyright 2012,2015 by Vedran Mileti\'c, Joseph Wright
+% Copyright 2017,2018 by Louis Stuart, Joseph Wright
+\defbeamertemplate*{frametitle}{BFH}[1][left]
+{%
+ \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}%
+ \@tempdima=\textwidth%
+ \advance\@tempdima by.6cm%
+ \begin{beamercolorbox}[sep=.3cm,#1,wd=\the\@tempdima]{frametitle}
+ \usebeamerfont{frametitle}%
+ \if@tempswa\else\csname beamer@fte#1\endcsname\fi%
+ \strut\insertframetitle\strut\par%
+ {%
+ \ifx\insertframesubtitle\@empty%
+ \else%
+ {\usebeamerfont{framesubtitle}\usebeamercolor[fg]{framesubtitle}\strut\insertframesubtitle\strut\par}%
+ \fi
+ }%
+ \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here...
+ \end{beamercolorbox}%
+}
+
+\mode<all>
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/beamerthemeBFH.sty b/macros/latex/contrib/bfh-ci/tex/beamerthemeBFH.sty
new file mode 100644
index 0000000000..21dfa5a1ca
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/beamerthemeBFH.sty
@@ -0,0 +1,75 @@
+%% This is file `beamerthemeBFH.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{beamerthemeBFH}[2021/12/23 v2.0.0 BFH-CI beamer theme, CI of Bern University of Applied Sciences]
+% ====================
+% Dependencies
+% ====================
+\mode<presentation>
+
+\DeclareOptionBeamer{logofile}{
+ \PassOptionsToPackage{logofile=#1}{beamerinnerthemeBFH}
+}
+
+\DeclareOptionBeamer{authorontitle}{
+ \PassOptionsToPackage{authorontitle=#1}{beamerinnerthemeBFH}
+}
+
+\ProcessOptionsBeamer
+
+\usefonttheme{BFH}
+\usecolortheme{BFH}
+
+% ====================
+% Elements
+% ====================
+
+\setbeamertemplate{section in toc}{{\normalsize\color{BFH-Orange}$\blacktriangleright$}~\inserttocsection}
+\setbeamertemplate{itemize items}{{\footnotesize\color{BFH-Orange}$\blacktriangleright$}~}
+\setbeamertemplate{bibliography item}[text]
+
+% Navigation
+\beamertemplatenavigationsymbolsempty
+
+% ====================
+% Components
+% ====================
+
+\usetheme{BFH}
+\useinnertheme{BFH}
+\useoutertheme{BFH}
+
+\newcommand*{\version}[1]{\gdef\insertversion{\versionformat{#1}}}
+\newcommand*{\versionformat}[1]{v#1}
+\version{}
+
+\mode<all>
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a0paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a0paper.clo
new file mode 100644
index 0000000000..dd9ecde839
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a0paper.clo
@@ -0,0 +1,44 @@
+%% This is file `bfh-a0paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a0paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a0paper}
+\cs_set:Nn \ptxcd_setup_title_sizes: {
+ \cs_set:Nn \ptxcd_title_fontsize: {{126bp}{165bp}}
+ \cs_set:Nn \ptxcd_subtitle_fontsize: {{38bp}{55bp}}
+ \cs_set:Nn \ptxcd_department_fontsize: {{45bp}{55bp}}
+ % \cs_set:Nn \ptxcd_titleinfo_fontsize: {{28pt}{35pt}}
+}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_margin_dim {39mm}
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {8.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {2.1mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {\tl_gset:Nn \g_ptxcd_fontsize_tl {30pt}}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a1paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a1paper.clo
new file mode 100644
index 0000000000..b475c9144f
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a1paper.clo
@@ -0,0 +1,43 @@
+%% This is file `bfh-a1paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a1paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a1paper}
+\cs_set:Nn \ptxcd_setup_title_sizes: {
+ \cs_set:Nn \ptxcd_title_fontsize: {{90bp}{108bp}}
+ \cs_set:Nn \ptxcd_subtitle_fontsize: {{27bp}{32.5bp}}
+ \cs_set:Nn \ptxcd_department_fontsize: {{32bp}{38.5bp}}
+}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_margin_dim {28mm}
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {5.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {1.6mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {\tl_gset:Nn \g_ptxcd_fontsize_tl {27pt}}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a2paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a2paper.clo
new file mode 100644
index 0000000000..7f8f44aca1
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a2paper.clo
@@ -0,0 +1,43 @@
+%% This is file `bfh-a2paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a2paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a2paper}
+\cs_set:Nn \ptxcd_setup_title_sizes: {
+ \cs_set:Nn \ptxcd_title_fontsize: {{64bp}{77bp}}
+ \cs_set:Nn \ptxcd_subtitle_fontsize: {{19.5bp}{23.4bp}}
+ \cs_set:Nn \ptxcd_department_fontsize: {{23bp}{27.6bp}}
+}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_margin_dim {20mm}
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {4.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {1.2mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {\tl_gset:Nn \g_ptxcd_fontsize_tl {19.5pt}}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a3paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a3paper.clo
new file mode 100644
index 0000000000..1897a70292
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a3paper.clo
@@ -0,0 +1,43 @@
+%% This is file `bfh-a3paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a0paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a1paper}
+\cs_set:Nn \ptxcd_setup_title_sizes: {
+ \cs_set:Nn \ptxcd_title_fontsize: {{46bp}{55.2bp}}
+ \cs_set:Nn \ptxcd_subtitle_fontsize: {{19.5bp}{23.4bp}}
+ \cs_set:Nn \ptxcd_department_fontsize: {{16.5bp}{19.8bp}}
+}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_margin_dim {14mm}
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {3.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {0.8mm}
+ \tl_if_empty:NT \g_ptxcd_fontsize_tl {\tl_gset:Nn \g_ptxcd_fontsize_tl {17pt}}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a4paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a4paper.clo
new file mode 100644
index 0000000000..be54617d7d
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a4paper.clo
@@ -0,0 +1,36 @@
+%% This is file `bfh-a4paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a0paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a4paper}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {2.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {.5mm}
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a5paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a5paper.clo
new file mode 100644
index 0000000000..52af529a50
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a5paper.clo
@@ -0,0 +1,36 @@
+%% This is file `bfh-a5paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-a5paper.clo}{2021/12/23}{2.0.0}{bfh-ci~size~adjustments~for~a5paper}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {2.5mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {.5mm}%
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-a6paper.clo b/macros/latex/contrib/bfh-ci/tex/bfh-a6paper.clo
new file mode 100644
index 0000000000..6409a8bc0e
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-a6paper.clo
@@ -0,0 +1,40 @@
+%% This is file `bfh-a6paper.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas HABEGGER <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{2.0.0}
+\def\filedate{2021/12/23}
+\def\fileversion{0.01}
+\def\filedate{2021/06/06}
+\ProvidesExplFile{bfh-a5paper.clo}{\filedate}{\fileversion}{bfh-ci~size~adjustments~for~a5paper}
+\cs_set:Nn \ptxcd_setup_base_sizes: {
+ \dim_gset:Nn \g_ptxcd_rule_height_dim {2mm}
+ \dim_gset:Nn \g_ptxcd_rule_arc_dim {.4mm}%
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-beamerarticle.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-beamerarticle.cfg
new file mode 100644
index 0000000000..f8aaebe936
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-beamerarticle.cfg
@@ -0,0 +1,40 @@
+%% This is file `bfh-beamerarticle.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesFile{bfh-beamerarticle.cfg} [2021/12/23 v2.0.0 beamerarticle configuration for bfhlayout]
+\let\orig@titlegraphic\titlegraphic
+\let\titlegraphic\@undefined
+
+\RequirePackage{beamerarticle}
+
+\let\titlegraphic\orig@titlegraphic
+\let\institute\@undefined
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-factsheet.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-factsheet.cfg
new file mode 100644
index 0000000000..003f94f7e3
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-factsheet.cfg
@@ -0,0 +1,89 @@
+%% This is file `bfh-factsheet.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesFile{bfh-factsheet.cfg}[2021/12/23 v2.0.0 factsheet configuration for bfhlayout]
+\KOMAoptions{headsepline=false}
+\clearpairofpagestyles
+
+\savegeometry{BFH-base}
+
+\geometry{top=\g_ptxcd_topLogoMargin_dim,headheight=\box_ht:N \g__ptxcd_logo_box}
+
+\savegeometry{BFH-headlineLogo}
+
+\loadgeometry{BFH-base}
+
+\NewDocumentCommand{\enableHeadLineLogo}{s}{
+ \loadgeometry{BFH-headlineLogo}
+ \IfBooleanTF{#1}{
+ \pagestyle{bfh-headlinelogos}
+ }{
+ \pagestyle{bfh-headlinelogo}
+ }
+}
+
+\newcommand*{\disableHeadlineLogo}{
+ \loadgeometry{BFH-base}
+ \pagestyle{scrheadings}
+}
+
+%
+\DeclareNewLayer[
+ clone=title.BFH.logo,
+ contents={\putLL{\box_use:N \g__ptxcd_logo_box}}
+]{BFH.headlinelogo}
+
+\DeclareNewLayer[
+ clone=title.BFH.partnerlogo,
+]{BFH.headlinepartnerlogo}
+
+\DeclarePageStyleByLayers{bfh-headlinelogo}{scrheadings.foot.oneside,scrheadings.foot.odd,scrheadings.foot.even,BFH.headlinelogo}
+
+\DeclarePageStyleByLayers{bfh-headlinelogos}{scrheadings.foot.oneside,scrheadings.foot.odd,scrheadings.foot.even,BFH.headlinelogo,BFH.headlinepartnerlogo}
+
+\setkomafont{pageheadfoot}{\usekomafont{titlefooter}}
+
+\ifoot{\@titlefooterleft}
+\ofoot{\@titlefooterright}
+
+\setcounter{secnumdepth}{-1}
+
+\setkomafont{section}{\usekomafont{title}}
+\setkomafont{subsection}{\Large}
+
+%compact lists
+\renewcommand*{\labelitemi}{–}
+\edef\@list@extra{\@list@extra\topsep\z@\parsep\z@\itemsep\z@}
+\setlength{\leftmarginiv}{\leftmarginiii}
+\setlength{\leftmarginiii}{\leftmarginii}
+\setlength{\leftmarginii}{\leftmargini}
+\setlength{\leftmargini}{\dimexpr.5em+1ex}
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-layout-boxes.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-layout-boxes.cfg
new file mode 100644
index 0000000000..11264734e0
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-layout-boxes.cfg
@@ -0,0 +1,184 @@
+%% This is file `bfh-layout-boxes.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas HABEGGER <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{bfh-layout-boxes.cfg}[2021/12/23 v2.0.0 boxes configuration for bfhlayout]
+\RequirePackage{bfhcolors}
+\RequirePackage{fontawesome}
+\PassOptionsToPackage{most}{tcolorbox}
+\RequirePackage{tcolorbox}
+%%
+%% Usage of "bfhBox" :
+%% \begin{bfhBox}{TITLE} Some Text \end{bfhBox}
+%% \begin{bfhBox}[SOME_COLOR]{TITLE} Some Text \end{bfhBox}
+%%
+\newtcolorbox{bfhBox}[2][BFH-MediumGreen]{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=#1!10,
+ colframe=#1!50,
+ boxrule=1pt,
+ title={\normalsize\sffamily\bfseries#2},
+}%
+
+\colorlet{BFH-warnbox}{BFH-Orange!10}
+\colorlet{BFH-warnboxframe}{BFH-Orange!50}
+
+\newtcolorbox{bfhWarnBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-warnbox,
+ colframe=BFH-warnboxframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-8pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faWarning}; }%
+}%
+
+\colorlet{BFH-alertbox}{BFH-DarkRed!10}
+\colorlet{BFH-alertboxframe}{BFH-DarkRed!50}
+
+\newtcolorbox{bfhAlertBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-alertbox,
+ colframe=BFH-alertboxframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-8pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faExclamationCircle}; }%
+}%
+
+\colorlet{BFH-notebox}{BFH-MediumBlue!10}
+\colorlet{BFH-noteboxframe}{BFH-MediumBlue!50}
+
+\newtcolorbox{bfhNoteBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-notebox,
+ colframe=BFH-noteboxframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-8pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faInfoCircle}; }%
+}%
+
+\colorlet{BFH-recyclebox}{BFH-MediumGreen!10}
+\colorlet{BFH-recycleframe}{BFH-MediumGreen!50}
+
+\newtcolorbox{bfhRecycleBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-recyclebox,
+ colframe=BFH-recycleframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-10pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faRecycle}; }%
+}%
+
+\colorlet{BFH-readbox}{BFH-MediumPurple!10}
+\colorlet{BFH-readboxframe}{BFH-MediumPurple!50}
+
+\newtcolorbox{bfhReadBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-readbox,
+ colframe=BFH-readboxframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-9pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faBook}; }%
+}%
+
+\colorlet{BFH-processingbox}{BFH-MediumOcher!10}
+\colorlet{BFH-processingboxframe}{BFH-MediumOcher!50}
+
+\newtcolorbox{bfhProcessingBox}{%
+ enhanced,
+ boxsep=1.5pt,
+ arc=.25ex,
+ colback=BFH-processingbox,
+ colframe=BFH-processingboxframe,
+ boxrule=1pt,
+ leftrule=24pt,
+ overlay unbroken and first ={%
+ \node[rotate=0,
+ minimum width=24mm,
+ anchor=south,
+ font=\normalsize\sffamily\bfseries,
+ yshift=-10pt,
+ xshift=12pt,
+ white]
+ at (frame.west) {\large\faCogs}; }%
+}%
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-layout-listings.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-layout-listings.cfg
new file mode 100644
index 0000000000..2a99235d73
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-layout-listings.cfg
@@ -0,0 +1,132 @@
+%% This is file `bfh-layout-listings.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesFile{bfh-layout-listings.cfg}[2021/12/23 v2.0.0 listings configuration for bfhlayout]
+\RequirePackage{bfhcolors}
+%% Hack to fix issue with float env used in listings package
+%% ref. : https://tex.stackexchange.com/questions/51867/koma-warning-about-toc
+\RequirePackage{scrhack}
+\RequirePackage{listings}
+%%
+\lstloadlanguages{[ANSI]C,C++,Matlab,[LaTeX]TeX,bash,python}
+%%
+%% ----- code highliting colors
+\definecolor{codegreen}{rgb}{0,0.6,0}
+\definecolor{codegray}{rgb}{0.5,0.5,0.5}
+\definecolor{codepurple}{rgb}{0.58,0,0.82}
+\definecolor{backcolor}{rgb}{0.95,0.95,0.92}
+%%
+\definecolor{datatype}{rgb}{0.58,0,0.82}
+\definecolor{decision}{rgb}{0.5,0.5,0.5}
+\definecolor{memory}{rgb}{0,0.6,0}
+\definecolor{special}{rgb}{0,0.6,0.6}
+%%
+%% ----- extend listing directory
+%%
+\lstdefinelanguage{VHDL}{
+ morekeywords={
+ library,use,all,entity,is,port,in,out,end,architecture,of,
+ begin,and,type,when,else,select,with,others,else,if,elsif,
+ signal,variable,std_logic,std_logic_vector,after,
+ },
+ morecomment=[l]--
+}
+%% -- Fixed width typewriter font for code and sans-serif font for comments in listings
+\lstset{%
+ basicstyle=\ttfamily\selectfont,
+ commentstyle=\sffamily\itshape\selectfont\color{codegreen},
+ keywordstyle=\bfseries\selectfont,
+ stringstyle=\color{codepurple},
+ directivestyle={\color{red}},
+ extendedchars=true,
+ showstringspaces=true,
+ columns=fixed, % columns in the source code are respected
+ aboveskip=\smallskipamount,
+ belowskip=\smallskipamount
+}%
+%%
+%% ------ BFH listing style definitions
+%%
+\lstdefinestyle{linebreaks}{%
+ breaklines,
+ breakatwhitespace,
+ numbers=none
+}%
+%%
+\lstdefinestyle{frame}{%
+ style=linebreaks,
+ basicstyle=\scriptsize\ttfamily\selectfont,
+ numbers=left,
+ numberstyle=\color{BFH-Gray!80},
+ xleftmargin={4pt},
+ captionpos=b,
+ frame=trbl,
+ frameround=tttt,
+ framesep=1mm,
+ basewidth=.5em,
+ framerule=0pt,
+ backgroundcolor=\color{BFH-Gray!10},
+ rulecolor=\color{BFH-Gray!80},
+ abovecaptionskip=\medskipamount,
+ belowcaptionskip=\medskipamount
+}%
+%%
+\lstdefinestyle{float}{%
+ style=frame,
+ float=tp
+}%
+%%
+%% ------ language specific pre-defines
+%%
+\lstdefinestyle{bfh-c}{%
+ language=C,
+ style=frame,
+ emph={printf,srand,scanf},
+ emphstyle=\bfseries\selectfont,
+}%
+%%
+\lstdefinestyle{bfh-cpp}{%
+ language=C++,
+ style=frame,
+ emph={cout,std,::,endl,cin},
+ emphstyle=\bfseries\selectfont,
+}%
+%%
+\lstdefinestyle{bfh-vhdl}{%
+ style=frame,
+ language=VHDL,
+}%
+%% default
+\lstset{
+ style=float,
+}%
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-layout-rules.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-layout-rules.cfg
new file mode 100644
index 0000000000..09a1ede007
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-layout-rules.cfg
@@ -0,0 +1,83 @@
+%% This is file `bfh-layout-rules.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-layout-rules.cfg}{2021/12/23}{2.0.0}{rules configuration for bfhlayout}
+
+\int_if_exist:NF \g_ptxcd_paper_int {
+ \int_new:N \g_ptxcd_paper_int
+ \keys_define:nn {ptxcd/rules} {
+ paper .choices:nn = {a0,a1,a2,a3,a4,a5}{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ },
+ paper .initial:n = a4,
+ }
+}
+
+\dim_new:N \g__ptxcd_rule_dim
+\dim_new:N \g__ptxcd_rule_radius_dim
+
+\int_case:nnF {\g_ptxcd_paper_int} {
+ %A0
+ {1} {
+ \dim_gset:Nn \g__ptxcd_rule_dim {8.5mm}
+ \dim_gset:Nn \g__ptxcd_rule_radius_dim {2.1mm}
+ }
+ %A1
+ {2} {
+ \dim_gset:Nn \g__ptxcd_rule_dim {5.5mm}
+ \dim_gset:Nn \g__ptxcd_rule_radius_dim {1.6mm}
+ }
+ %A2
+ {3} {
+ \dim_gset:Nn \g__ptxcd_rule_dim {4.5mm}
+ \dim_gset:Nn \g__ptxcd_rule_radius_dim {1.2mm}
+ }
+ %A3
+ {4} {
+ \dim_gset:Nn \g__ptxcd_rule_dim {3.5mm}
+ \dim_gset:Nn \g__ptxcd_rule_radius_dim {.8mm}
+ }
+}{
+ \dim_gset:Nn \g__ptxcd_rule_dim {2.5mm}
+ \dim_gset:Nn \g__ptxcd_rule_radius_dim {.6mm}
+}
+
+\ExplSyntaxOff
+\RequirePackage{tikz}
+\ExplSyntaxOn
+
+\NewDocumentCommand{\bfhRule}{sO{\linewidth}}{
+ \par\nointerlineskip\skip_vertical:n {\g__ptxcd_rule_dim}
+ \noindent\tikz\path[fill=BFH-Gray,rounded~corners=\g__ptxcd_rule_radius_dim](0,0)rectangle(#2,\g__ptxcd_rule_dim);
+ \par\nointerlineskip\skip_vertical:n {\g__ptxcd_rule_dim}
+}
+
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-layout-tabular.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-layout-tabular.cfg
new file mode 100644
index 0000000000..30a2e9ad35
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-layout-tabular.cfg
@@ -0,0 +1,66 @@
+%% This is file `bfh-layout-tabular.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesExplFile{bfh-layout-tabular.cfg}{2021/12/23}{v2.0.0}{tabular and tabularray configuration for bfhlayout}
+
+\colorlet{BFH-table}{BFH-LightGreen!10}
+\colorlet{BFH-tablehead}{BFH-LightGreen!50}
+
+\def\BFHarraystretch{1.4}
+\def\BFHarrayrulewidth{.08em}
+
+\newcommand*{\setupBfhTabular}{%
+ \rowcolors*{1}{BFH-table}{BFH-table}
+ \arrayrulecolor{white}%
+ \let\arraystretch\BFHarraystretch%
+ \setlength{\arrayrulewidth}{\BFHarrayrulewidth}%
+}
+
+\newenvironment{bfhTabular}[2][c]{%
+ \setupBfhTabular
+ \begin{tabular}[#1]{#2}%
+ \rowcolor{BFH-tablehead}%
+ }{\end{tabular}}
+
+\cs_if_exist:NTF \AddToHook {\AddToHook {begindocument} [BFH-tblr]}
+ {\AtBeginDocument}
+{%
+ \cs_if_exist:NT \NewTblrEnviron {%
+ \NewTblrEnviron{bfhTblr}%
+ \SetTblrInner[bfhTblr]{%
+ rows = {bg=BFH-table},
+ hlines = {white,\BFHarrayrulewidth},
+ stretch=1.1,
+ row{1} = {bg=BFH-tablehead}
+ }
+ }
+}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-layout-terminal.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-layout-terminal.cfg
new file mode 100644
index 0000000000..fce09fcdcf
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-layout-terminal.cfg
@@ -0,0 +1,117 @@
+%% This is file `bfh-layout-tabular.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{bfh-layout-tabular.cfg}[2021/12/23 v2.0.0 terminal configuration for bfhlayout]
+
+\RequirePackage{bfhcolors}
+\RequirePackage{tcolorbox}
+\RequirePackage{url}
+
+\tcbuselibrary{skins,xparse,listings}
+
+\colorlet{ubuntu-terminalBackground}{violet!50!black}
+\colorlet{ubuntu-terminalText}{white}
+\colorlet{ubuntu-terminalFrame}{gray!65!black}
+\colorlet{ubuntu-terminalFirstBullet}{orange}
+\colorlet{ubuntu-terminalSecondBullet}{gray}
+\colorlet{ubuntu-terminalThirdBullet}{gray}
+
+%define key because we receive an error for setting them in case minted isn't loaded
+\csname @ifpackageloaded\endcsname{minted}{}{
+ \tcbset{minted options/.style={}}
+}
+
+
+\newcommand{\BFHterminalFormatLine}{%
+ \def\FancyVerbFormatLine##1{\BFHterminalPrompt{}##1}%
+}
+\newtcblisting{ubuntu}{ %
+ colback=ubuntu-terminalBackground,
+ colupper=ubuntu-terminalText,
+ colframe=ubuntu-terminalFrame,
+ listing only,
+ listing options={style=tcblatex,language=sh,escapeinside=``,},
+ listing inputencoding=utf8,
+ minted options={escapeinside=\\`\\`,autogobble,formatcom=\BFHterminalFormatLine,breaklines,breaksymbol=\quad},
+ size=small,
+ halign title=flush left,
+ title={\textcolor{ubuntu-terminalFirstBullet}{\huge{$\bullet$}}{\textcolor{ubuntu-terminalSecondBullet}{\huge{$\bullet$}}}{\textcolor{ubuntu-terminalThirdBullet}{\huge{$\bullet$}}}},
+ every listing line={\BFHterminalPrompt{}}
+} %%
+
+\newcommand{\setupLinuxPrompt}[1]{\pgfkeys{/terminal/.cd,host=ubuntu,#1}%
+ \gdef\BFHterminalPrompt{\textcolor{\TerminalColor}{\small\ttfamily\bfseries \TerminalUser\url{@}\TerminalHost{\textcolor{ubuntu-terminalText}:}\textcolor{ubuntu-terminalText}{\url{~}}{\textcolor{ubuntu-terminalText}\TerminalPromptChar}\,}}
+ \lstset{backgroundcolor=}
+ \lstset{frame=}
+ \lstset{numberstyle=}
+} %%tabular
+
+\colorlet{macosx-terminalBackground}{white}
+\colorlet{macosx-terminalText}{black}
+\colorlet{macosx-terminalFrame}{gray!25}
+\colorlet{macosx-terminalFirstBullet}{red!65}
+\colorlet{macosx-terminalSecondBullet}{orange!52!yellow}
+\colorlet{macosx-terminalThirdBullet}{green!80!black}
+
+\newtcblisting{macos}{ %
+ colback=macosx-terminalBackground,
+ colupper=macosx-terminalText,
+ colframe=macosx-terminalFrame,
+ listing only,
+ listing options={style=tcblatex,language=sh,escapeinside=``},
+ listing inputencoding=utf8,
+ size=small,
+ halign title=flush left,
+ title={\textcolor{macosx-terminalFirstBullet}{\huge\ttfamily\bfseries{$\bullet$}\textcolor{macosx-terminalSecondBullet}{\huge\ttfamily\bfseries{$\bullet$}\textcolor{macosx-terminalThirdBullet}{\huge\ttfamily\bfseries{$\bullet$}}}}},
+ every listing line={\BFHterminalPrompt{}},
+ minted options={escapeinside=\\`\\`,autogobble,formatcom=\BFHterminalFormatLine,breaklines,breaksymbol=\quad}
+}
+
+\newcommand{\setupOSXPrompt}[1]{\pgfkeys{/terminal/.cd,host=macintosh,#1}%
+ \gdef\BFHterminalPrompt{\textcolor{\TerminalColor}{\small\ttfamily\bfseries \TerminalUser\url{@}\TerminalHost{\textcolor{macosx-terminalText}:}\textcolor{macosx-terminalText}{\url{~}}{\textcolor{macosx-terminalText}\TerminalPromptChar}\,}}
+} %%
+
+
+\pgfkeys{
+ /terminal/.cd,
+ user/.code={\gdef\TerminalUser{#1}},user={},
+ host/.code={\gdef\TerminalHost{#1}},host={},
+ color/.code={\gdef\TerminalColor{#1}},color=whyite,
+ prompt char/.code={\gdef\TerminalPromptChar{#1}},
+ prompt char=\$,
+ root/.style={user=root,color=BFH-MediumRed,prompt char=\#},
+ student/.style={user=student,color=BFH-LightGreen,prompt char=\$},
+ remote/.style={user=user,host=remotehost,color=BFH-LightPurple,prompt char=\$},
+} %%
+
+\newcommand{\StartConsole}{\gdef\BFHterminalPrompt{}}
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfh-projectproposal.cfg b/macros/latex/contrib/bfh-ci/tex/bfh-projectproposal.cfg
new file mode 100644
index 0000000000..afa1ce4a14
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfh-projectproposal.cfg
@@ -0,0 +1,227 @@
+%% This is file `bfh-projectproposal.cfg' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesFile{bfh-projectproposal.cfg}[2021/12/23 v2.0.0 projectproposal configuration for bfhlayout]
+\KOMAoptions{headsepline=false}
+\clearpairofpagestyles
+
+\savegeometry{BFH-base}
+
+\geometry{top=\g_ptxcd_topLogoMargin_dim,headheight=\box_ht:N \g__ptxcd_logo_box}
+
+\DeclareNewLayer[
+ clone=title.BFH.logo,
+ contents={\putLL{\box_use:N \g__ptxcd_logo_box}}
+]{BFH.headlinelogo}
+
+\DeclareNewLayer[
+ clone=title.BFH.partnerlogo
+]{BFH.headlinepartnerlogo}
+
+\DeclarePageStyleByLayers{bfh-projectproposal}{scrheadings.foot.oneside,scrheadings.foot.odd,scrheadings.foot.even,BFH.headlinelogo,BFH.headlinepartnerlogo}
+\pagestyle{bfh-projectproposal}
+\renewcommand*{\titlepagestyle}{bfh-projectproposal}
+
+\setkomafont{pageheadfoot}{\usekomafont{titlefooter}}
+\addtokomafont{subject}{\itshape}
+
+\ifoot{\@titlefooterleft}
+\ofoot{\@titlefooterright}
+
+\setcounter{secnumdepth}{-1}
+
+%compact lists
+\renewcommand*{\labelitemi}{–}
+\edef\@list@extra{\@list@extra\topsep\z@\parsep\z@\itemsep\z@}
+\setlength{\leftmarginiv}{\leftmarginiii}
+\setlength{\leftmarginiii}{\leftmarginii}
+\setlength{\leftmarginii}{\leftmargini}
+\setlength{\leftmargini}{\dimexpr.5em+1ex}
+
+%titlepage
+
+\date{}
+
+\renewcommand*{\@maketitle}{%
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \__ptxcd_print_title:
+ \tl_if_empty:NF \g__ptxcd_PP_ProjectDescription_tl {\par\g__ptxcd_PP_ProjectDescription_tl\par}
+ \skip_vertical:n {\g_ptxcd_rule_height_dim+.5\box_ht:N \g__ptxcd_logo_box}
+ \endgroup
+ \@thanks\let\@thanks\@empty
+}
+
+\bool_new:N \l__ptxcd_title_dates_bool
+
+\providecommand*{\coadvisorname}{\GetTranslation{Co-advisor}}
+\providecommand*{\advisorname}{\GetTranslation{Advisor}}
+\providecommand*{\projectpartnername}{\GetTranslation{Project~partner}}
+\providecommand*{\expertname}{\GetTranslation{Expert}}
+
+\providecommand*{\projectstartdatename}{\GetTranslation{Project~start}}
+\providecommand*{\studysubmissiondatename}{\GetTranslation{Pre-study~submission}}
+\providecommand*{\reportsubmissiondatename}{\GetTranslation{Report~submission}}
+\providecommand*{\presentationdatename}{\GetTranslation{Presentation}}
+
+\cs_new:Nn \ptxcd_title_data_field:n {
+ \tl_if_empty:cF {@#1} {
+ \use:c {#1name} & \use:c {@#1}\\
+ }
+}
+
+\cs_set:Nn \__ptxcd_print_title: {
+ \begingroup
+ \usekomafont{disposition}
+ {\usekomafont{title}\@title\par}
+ \ifx\@subtitle\@empty\else{\medskip\usekomafont{subtitle}\@subtitle\par}\fi
+ \smallskip
+ \ifx\@subject\@empty\else{\usekomafont{subject}\@subject\par\smallskip}\fi
+ \ifx\@author\@empty\else{\usekomafont{author}\@author\par\smallskip}\fi
+ \endgroup
+ \tl_if_blank:eTF {
+ \@projectstartdate
+ \@studysubmissiondate
+ \@reportsubmissiondate
+ \@presentationdate
+ }
+ {\bool_set_false:N \l__ptxcd_title_dates_bool}
+ {\bool_set_true:N \l__ptxcd_title_dates_bool}
+
+ \begin{tabular}{@{}p{0.2\linewidth}p{\dimexpr.3\linewidth-2\tabcolsep-.5\columnsep}@{}}%
+ \ptxcd_title_data_field:n {advisor}
+ \ptxcd_title_data_field:n {coadvisor}
+ \bool_if:NT \l__ptxcd_title_dates_bool
+ {
+ \ptxcd_title_data_field:n {projectpartner}
+ \ptxcd_title_data_field:n {expert}
+ }
+ \end{tabular}\hfill
+ \begin{tabular}{@{}p{0.2\linewidth}p{\dimexpr.33\linewidth-2\tabcolsep-.5\columnsep}@{}}%
+ \bool_if:NF \l__ptxcd_title_dates_bool
+ {
+ \ptxcd_title_data_field:n {projectpartner}
+ \ptxcd_title_data_field:n {expert}
+ }
+ \ptxcd_title_data_field:n {projectstartdate}
+ \ptxcd_title_data_field:n {studysubmissiondate}
+ \ptxcd_title_data_field:n {reportsubmissiondate}
+ \ptxcd_title_data_field:n {presentationdate}
+ \end{tabular}
+ \par\medskip
+ \tl_if_blank:eF {\@date\@version}{
+ \usekomafont{date}
+ \ifx\@version\@empty
+ \@date
+ \else\GetTranslation{version-of-date}
+ \fi
+ \par\smallskip
+ }
+ \ifx\@publishers\@empty\else{\usekomafont{publishers}\@publishers\par}\fi
+}
+
+\clist_map_inline:nn {advisor, coadvisor, projectpartner, expert, projectstartdate, studysubmissiondate, reportsubmissiondate, presentationdate} {
+ \cs_if_exist:cF {#1} {
+ \cs_new_nopar:cpn {#1} ##1 {\exp_args:Nc \def {@#1} {##1}}
+ \use:c {#1} {}
+ }
+}
+
+\tl_new:N \g__ptxcd_PP_ProjectDescription_tl
+\NewDocumentEnvironment{ProjectDescription}{+b}{}{\tl_gset:Nn \g__ptxcd_PP_ProjectDescription_tl {#1}}
+
+
+% RatingChart
+
+\colorlet{competenceRating-color}{BFH-DarkRed}
+
+
+\keys_define:nn {ptxcd/CompetenceChart} {
+ radius .dim_set:N = \l__ptxcd_CompetenceChart_radius_dim,
+ radius .initial:n = .35\linewidth,
+ max-weight .int_set:N = \l__ptxcd_Competencechart_maxweight_int,
+ max-weight .initial:n = {6},
+ color .code:n = \colorlet{BFH-competenceRating}{#1},
+ color .initial:n = BFH-DarkRed,
+}
+
+\seq_new:N \l__ptxcd_projectProposal_competence_rating_seq
+\tl_new:N \l__ptxcd_Competence_tl
+\tl_new:N \l__ptxcd_Competence_path_tl
+
+\cs_new:Npn \__ptxcd_Competence_get_weight:w #1 = #2 \q_stop {#2}
+\cs_new:Npn \__ptxcd_Competence_get_label:w #1 = #2 \q_stop {#1}
+
+\cs_new:Nn \__ptxcd_Competence_weight:n {
+ \__ptxcd_Competence_get_weight:w #1 \q_stop
+}
+
+\cs_generate_variant:Nn \__ptxcd_Competence_weight:n {e}
+
+\cs_new:Nn \__ptxcd_Competence_label:n {
+ \__ptxcd_Competence_get_label:w #1 \q_stop
+}
+\cs_generate_variant:Nn \__ptxcd_Competence_label:n {e}
+
+\int_new:N \l__ptxcd_projectProposal_competence_angle_int
+\dim_new:N \l__ptxcd_CompetenceChart_radius_step_dim
+
+\NewDocumentCommand{\DisplayCompetenceRatingChart}{om}
+{
+ \begingroup
+ \IfNoValueF{#1}{\keys_set:nn {ptxcd/CompetenceChart} {#1}}
+ \seq_set_from_clist:Nn \l__ptxcd_projectProposal_competence_rating_seq {#2}
+ \int_set:Nn \l__ptxcd_projectProposal_competence_angle_int {360/\seq_count:N \l__ptxcd_projectProposal_competence_rating_seq}
+ \dim_set:Nn \l__ptxcd_CompetenceChart_radius_step_dim {\l__ptxcd_CompetenceChart_radius_dim/(\seq_count:N \l__ptxcd_projectProposal_competence_rating_seq+1)}
+ \begin{tikzpicture}[rotate=\int_eval:n {90-\l__ptxcd_projectProposal_competence_angle_int},x=\l__ptxcd_CompetenceChart_radius_step_dim,y=\l__ptxcd_CompetenceChart_radius_step_dim]
+ % draw the background
+ \int_step_inline:nnnn {\l__ptxcd_projectProposal_competence_angle_int} {\l__ptxcd_projectProposal_competence_angle_int} {360} {
+ \draw(0,0) -- (\int_eval:n {##1}\c_colon_str\l__ptxcd_CompetenceChart_radius_dim);
+ }
+ \int_step_inline:nn {\l__ptxcd_Competencechart_maxweight_int} {
+ \draw [black!40] (0\c_colon_str##1) \foreach \a in {0,\int_use:N \l__ptxcd_projectProposal_competence_angle_int,...,360}{
+ -- (\a\c_colon_str##1)
+ } -- cycle;
+ \int_step_inline:nnnn {\l__ptxcd_projectProposal_competence_angle_int} {\l__ptxcd_projectProposal_competence_angle_int} {360} {
+ \fill (####1\c_colon_str##1) circle (1pt);
+ }
+ }
+ \tl_clear:N \l__ptxcd_Competence_path_tl
+ %expand path before used in path to avoid expansion bugs
+ \int_step_inline:nn {\seq_count:N \l__ptxcd_projectProposal_competence_rating_seq} {
+ \tl_put_right:Nx \l__ptxcd_Competence_path_tl {(\int_eval:n {##1*\l__ptxcd_projectProposal_competence_angle_int}\c_colon_str\__ptxcd_Competence_weight:e {\seq_item:Nn \l__ptxcd_projectProposal_competence_rating_seq {##1}})--}
+ \node[anchor=\int_eval:n {(##1-1)*\l__ptxcd_projectProposal_competence_angle_int-90}] at (\int_eval:n {##1*\l__ptxcd_projectProposal_competence_angle_int}\c_colon_str\l__ptxcd_CompetenceChart_radius_dim) {\__ptxcd_Competence_label:e {\seq_item:Nn \l__ptxcd_projectProposal_competence_rating_seq {##1}}};
+ }
+ \exp_last_unbraced:Nno \use:n {\draw[color=BFH-competenceRating,fill=BFH-competenceRating!50,line~width=1.5pt,opacity=0.5]}
+ \l__ptxcd_Competence_path_tl cycle;
+ \end{tikzpicture}
+ \endgroup
+}
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhbeamer.cls b/macros/latex/contrib/bfh-ci/tex/bfhbeamer.cls
new file mode 100644
index 0000000000..66da85d5f5
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhbeamer.cls
@@ -0,0 +1,107 @@
+%% This is file `bfhbeamer.cls' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{bfhbeamer}[2021/12/23 v2.0.0 BFH-CI beamer layout, CI of Bern University of Applied Sciences]
+
+\RequirePackage{l3keys2e}
+\PassOptionsToPackage{table}{xcolor}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Option Processing START
+
+\ExplSyntaxOn
+\bool_new:N \g__ptxcd_handoutWithNotes_bool
+
+\keys_define:nn {ptxcd/beamer} {
+ authorontitle .code:n = \PassOptionsToPackage{authorontitle=#1}{beamerinnerthemeBFH},
+ logofile .code:n = \PassOptionsToPackage{logofile=#1}{beamerinnerthemeBFH},
+ enforce-title-logo .code:n = \PassOptionsToPackage{enforce-title-logo=#1}{beamerinnerthemeBFH},
+ beamerarticle .bool_gset:N = \g__ptxcd_beamerarticle_bool,
+ printNotes .code:n = \bool_gset_true:N \g__ptxcd_handoutWithNotes_bool \PassOptionsToPackage{beamer-notes=true}{handoutWithNotes},
+ tabletNotes .code:n = \PassOptionsToClass{handout}{beamer},
+ paperNotes .code:n = \bool_gset_true:N \g__ptxcd_handoutWithNotes_bool,
+}
+\ExplSyntaxOff
+
+\PassOptionsToClass{aspectratio=169}{beamer}
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{beamer}}
+\ProcessKeysOptions{ptxcd/beamer}
+\ProcessOptions\relax
+
+\ExplSyntaxOn
+\bool_if:NT \g__ptxcd_beamerarticle_bool {
+ \LoadClassWithOptions{bfhpub}
+ \endinput
+}
+\ExplSyntaxOff
+
+%% Option Processing END
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\LoadClass{beamer}
+
+\ExplSyntaxOn
+\dim_new:N \g__ptxcd_logo_height_dim
+\dim_gset:Nn \g__ptxcd_logo_height_dim {0.125\paperheight}
+
+\setbeamersize{
+ text~margin~left=.6\g__ptxcd_logo_height_dim, text~margin~right=.6\g__ptxcd_logo_height_dim
+}
+
+\ExplSyntaxOff
+
+\usetheme{BFH}
+
+\ExplSyntaxOn
+\bool_if:NT \g__ptxcd_handoutWithNotes_bool {
+ \RequirePackage{handoutWithNotes}
+ \pgfpagesuselayout{3~on~1~with~notes}[a4paper,border~shrink=5mm]
+}
+
+
+\msg_new:nnn {bfhbeamer} {module-not-found} {
+ You~tried~to~load~the~BFH~layout~module~#1.\\
+ I~could~not~find~a~file~named~bfh-layout-#1.cfg.
+}
+
+\newcommand*\LoadBFHModule[1]{
+ \clist_map_inline:nn {#1} {
+ \file_if_exist_input:nF {bfh-layout-##1.cfg}
+ {\msg_error:nnn {bfhbeamer} {module-not-found} {##1}}
+ }
+}
+
+\ExplSyntaxOff
+
+\LoadBFHModule{tabular}
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhcolors.sty b/macros/latex/contrib/bfh-ci/tex/bfhcolors.sty
new file mode 100644
index 0000000000..e45e03896e
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhcolors.sty
@@ -0,0 +1,122 @@
+%% This is file `bfhcolors.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas HABEGGER <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\RequirePackage{expl3}
+\ProvidesExplPackage{bfhcolors}{2021/12/23}{2.0.0}{color setup for BFH-CI, CI of Bern Universitry of Applied Sciences}
+
+\RequirePackage{l3keys2e}
+\tl_new:N \g__ptxcd_colormode_tl
+\tl_gset:Nn \g__ptxcd_colormode_tl {4CU}
+
+\keys_define:nn {ptxcd/colors} {
+ coated .bool_gset:N = \g__ptxcd_color_coated_bool,
+ coated .default:n = true,
+ coated .initial:n = false,
+ colormode .choice:,
+ colormode / 4CU .code:n = {
+ \keys_set:nn {ptxcd/colors} {coated=false}
+ \PassOptionsToPackage{cmyk}{xcolor}
+ \tl_gset:Nn \g__ptxcd_colormode_tl {4CU}
+ },
+ colormode / 4CC .code:n = {
+ \keys_set:nn {ptxcd/colors} {coated=true}
+ \PassOptionsToPackage{cmyk}{xcolor}
+ \tl_gset:Nn \g__ptxcd_colormode_tl {4CC}
+ },
+ colormode / RGB .code:n = {
+ \PassOptionsToPackage{rgb}{xcolor}
+ \tl_gset:Nn \g__ptxcd_colormode_tl {RGB}
+ },
+ colormode / SW .code:n = {
+ \PassOptionsToPackage{gray}{xcolor}
+ \tl_gset:Nn \g__ptxcd_colormode_tl {SW}
+ },
+ colormode / 1C .meta:n = {colormode=SW},
+ RGB .meta:n = {colormode=RGB},
+ rgb .meta:n = {colormode=RGB},
+ cmyk .meta:n = {colormode = 4CU},
+ gray .meta:n = {colormode= SW},
+}
+\ProcessKeysOptions{ptxcd/colors}
+
+\RequirePackage{xcolor}
+
+\bool_if:NTF \g__ptxcd_color_coated_bool
+%coated definitions
+{
+ % Primary colors
+ \definecolorset[named]{RGB/cmyk}{BFH-}{}{%
+ Gray,105,125,145/0.55,0,0,0.6;%
+ Orange,250,195,0/0.00,0.25,1,0}
+ % Secondary colors
+ \definecolorset[named]{RGB/cmyk}{BFH-}{}{%
+ DarkGreen,85,100,85/.65,.3,.65,.3;%
+ MediumGreen,105,150,115/.5,0,.4,.15;%
+ LightGreen,140,175,130/.35,0,.35,.10;%
+ DarkBlue,80,110,150/.7,.4,0,.2;%
+ MediumBlue,105,155,190/.6,.25,0,0;%
+ LightBlue,135,185,200/.40,.05,.05,.05;%
+ DarkPurple,100,80,120/.5,.6,0,.35;%
+ MediumPurple,130,90,125/.25,.55,0,.3;%
+ LightPurple,160,135,170/.3,.4,0,0;%
+ DarkOcher,120,100,80/.2,.3,.4,.35;%
+ MediumOcher,150,130,95/.1,.2,.4,.25;%
+ LightOcher,185,145,100/.1,.25,.40,.05;%
+ DarkRed,180,20,40/.15,1,.8,.1;%
+ MediumRed,210,90,80/.05,.75,.6,.1;%
+ LightRed,255,145,125/.05,.50,.45,.1}%
+}
+%uncoated definitions
+{
+ % If the coated option was not passed, define the BFH colors in RGB and CMYK uncoated as the default.
+ % Primary colors
+ \definecolorset[named]{RGB/cmyk}{BFH-}{}{%
+ Gray,105,125,145/0.55,0,0,.5;%
+ Orange,250,195,0/0,0.2,1,0}
+ % Secondary colors
+ \definecolorset[named]{RGB/cmyk}{BFH-}{}{%
+ DarkGreen,85,100,85/.6,.2,.6,.35;%
+ MediumGreen,105,150,115/.55,0,.55,.10;%
+ LightGreen,140,175,130/.4,0,.5,.05;%
+ DarkBlue,80,110,150/.70,.40,0,.15;%
+ MediumBlue,105,155,190/.55,.1,0,.1;%
+ LightBlue,135,185,200/.4,0,.10,.05;%
+ DarkPurple,100,80,120/.6,.8,.05,.15;%
+ MediumPurple,130,90,125/.35,.7,.1,.15;%
+ LightPurple,160,135,170/.3,.45,.05,0;%
+ DarkOcher,120,100,80/.35,.45,.65,.25;%
+ MediumOcher,150,130,95/.25,.3,.6,.15;%
+ LightOcher,185,145,100/.1,.25,.6,.1;%
+ DarkRed,180,20,40/.05,1,.8,.05;%
+ MediumRed,210,90,80/0,.75,.6,.1;%
+ LightRed,255,145,125/.05,.5,.45,.05}%
+}
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhfonts.sty b/macros/latex/contrib/bfh-ci/tex/bfhfonts.sty
new file mode 100644
index 0000000000..dfc11c24be
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhfonts.sty
@@ -0,0 +1,70 @@
+%% This is file `bfhfonts.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bfhfonts}[2021/12/23 v2.0.0 BFH-CI (fonts Module)]
+
+\RequirePackage{iftex}
+\RequirePackage{anyfontsize}
+
+\ifPDFTeX
+ \RequirePackage{nunito}
+ \let\sfdefault\rmdefault
+ \RequirePackage{sourceserifpro}
+ \RequirePackage[T1]{fontenc}
+ \PackageWarning{bfhfonts.sty}{You are using pdfLaTeX. In case the official fonts have been installed on your system I can't use them.}
+\else
+ \RequirePackage{fontspec}
+ \IfFontExistsTF{UnitSlabPro}{
+ \setmainfont{UnitSlabPro}[
+ BoldFont=*-Bold,
+ ItalicFont=*-Italic,
+ ]
+ }{
+ \RequirePackage{sourceserifpro}
+ }
+ \IfFontExistsTF{UnitRoundedPro}{
+ \setsansfont{UnitRoundedPro}[
+ UprightFont =*-Light,
+ ItalicFont = *-LightItalic,
+ BoldFont=*,
+ ]
+ }{
+ \setsansfont{Nunito}[
+ UprightFont = *-Light,
+ ItalicFont = *-LightItalic,
+ BoldFont = *-Regular,
+ BoldItalicFont = *-Italic,
+ ]
+ }
+ \newcommand*{\ltseries}{\fontseries{l}\selectfont}
+\fi
+
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhlayout.sty b/macros/latex/contrib/bfh-ci/tex/bfhlayout.sty
new file mode 100644
index 0000000000..8700483f37
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhlayout.sty
@@ -0,0 +1,777 @@
+%% This is file `bfhlayout.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\def\fileversion{2.0.0}
+\def\filedate{2021/12/23}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bfhlayout}[2021/08/17 -- v1.2.4 BFH style package (layout)]
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Process Options created for bfharticle
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{l3keys2e}
+
+\ExplSyntaxOn
+\int_new:N \g_ptxcd_paper_int
+\tl_new:N \g_ptxcd_titleimage_ratio_tl
+\bool_new:N \g__ptxcd_tmp_bool
+\bool_new:N \g_ptxcd_geometry_bool
+\bool_new:N \g_ptxcd_margins_bool
+
+\keys_define:nn {ptxcd/layout} {
+ margins .choice:,
+ margins / typearea .code:n ={
+ \bool_gset_true:N \g_ptxcd_margins_bool
+ \bool_gset_false:N \g_ptxcd_geometry_bool
+ },
+ margins / official .code:n ={
+ \bool_gset_true:N \g_ptxcd_margins_bool
+ \bool_gset_true:N \g_ptxcd_geometry_bool
+ },
+ margins / default .meta:n = {margins=typearea},
+ margins .initial:n = default,
+ invert-title .bool_gset:N = \g__ptxcd_title_inverted_bool,
+ invert-title .initial:n = false,
+ paper .choices:nn = {a0,a1,a2,a3,a4,a5}{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{paper=\l_keys_choice_tl}{typearea}
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n = a4,
+ titleimage-ratio .choice:,
+ titleimage-ratio / 12 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {.5},
+ titleimage-ratio / 13 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {.333333},
+ titleimage-ratio / 23 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {.666666},
+ titleimage-ratio / 56 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {.833333},
+ titleimage-ratio / 34 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {.75},
+ titleimage-ratio / 1011 .code:n = \tl_gset:Nn \g_ptxcd_titleimage_ratio_tl {0.909090},
+ titleimage-ratio .initial:n = 12,
+ logo-language .code:n = \PassOptionsToPackage{language=#1}{bfhlogo},
+ trilingual .meta:n = {logo-language=de_fr_en},
+ bilingual .meta:n = {logo-language=de_fr},
+ monolingual .meta:n = {logo-language=default},
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n =,
+ type .choices:nn = {publication,thesis,beamerarticle} {\tl_gset_eq:NN \g_ptxcd_pubType_tl \l_keys_choice_tl},
+ type / intern .code:n = {\keys_set:nn {ptxcd/pub} {titlepage=false}},
+ type / factsheet .code:n = \tl_gset:Nn \g_ptxcd_pubType_tl {factsheet}\keys_set:nn {ptxcd/layout} {margins=official}\KOMAoptions{titlepage=true},
+ type / projectproposal .code:n = \tl_gset:Nn \g_ptxcd_pubType_tl {projectproposal}\keys_set:nn {ptxcd/layout} {margins=official}\KOMAoptions{titlepage=false,parskip=half-},
+ type .initial:n = publication,
+ beamerarticle .meta:n = {type=beamerarticle},
+ landscape .bool_gset:N = \g_ptxcd_landscape_bool,
+ landscape .initial:n = false,
+}
+
+\ProcessKeysOptions{ptxcd/layout}
+
+%%
+\bool_if:NT \g_ptxcd_geometry_bool {
+ \bool_if:NT \g_ptxcd_margins_bool {
+ \dim_new:N \g_ptxcd_innerMargin_dim
+ \dim_new:N \g_ptxcd_outerMargin_dim
+ \dim_new:N \g_ptxcd_bottomMargin_dim
+ \dim_new:N \g_ptxcd_topMargin_dim
+ \dim_new:N \g_ptxcd_topLogoMargin_dim
+ \dim_new:N \g_ptxcd_columnSep_dim
+ \dim_gset:Nn \g_ptxcd_columnSep_dim {4mm}
+ %a4
+ \int_compare:nTF {\g_ptxcd_paper_int=5}
+ {
+ \bool_if:NTF \g_ptxcd_landscape_bool {
+ \dim_gset:Nn \g_ptxcd_topMargin_dim {12mm}
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {14mm}
+ \dim_gset:Nn \g_ptxcd_innerMargin_dim {14mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {11mm}
+ \dim_gset:Nn \g_ptxcd_topLogoMargin_dim {44mm}
+ }{
+ \dim_gset:Nn \g_ptxcd_topMargin_dim {12mm}
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {13mm}
+ \dim_gset:Nn \g_ptxcd_innerMargin_dim {16mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {12mm}
+ \dim_gset:Nn \g_ptxcd_topLogoMargin_dim {48mm}
+ }
+ }{
+ %a0, a1, a2,a3
+ \int_compare:nT {1<=\g_ptxcd_paper_int<=4}
+ {
+ \int_case:nn {\g_ptxcd_paper_int}
+ {
+ {1} {\dim_gset:Nn \g_ptxcd_outerMargin_dim {39mm}\dim_gset:Nn \g_ptxcd_columnSep_dim {12mm}}
+ {2} {\dim_gset:Nn \g_ptxcd_outerMargin_dim {28mm}\dim_gset:Nn \g_ptxcd_columnSep_dim {9mm}}
+ {3} {\dim_gset:Nn \g_ptxcd_outerMargin_dim {20mm}\dim_gset:Nn \g_ptxcd_columnSep_dim {6mm}}
+ {4} {\dim_gset:Nn \g_ptxcd_outerMargin_dim {14mm}}
+ }
+ \dim_gset_eq:NN \g_ptxcd_bottomMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_innerMargin_dim \g_ptxcd_outerMargin_dim
+ \dim_gset_eq:NN \g_ptxcd_topMargin_dim \g_ptxcd_outerMargin_dim
+ }
+ %a5
+ \int_compare:nT {\g_ptxcd_paper_int<=6}
+ {
+ \bool_if:NTF \g_ptxcd_landscape_bool {
+ \dim_gset:Nn \g_ptxcd_topMargin_dim {7mm}
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {13mm}
+ \dim_gset:Nn \g_ptxcd_innerMargin_dim {15mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {10mm}
+ \dim_gset:Nn \g_ptxcd_topLogoMargin_dim {35mm}
+ }{
+ \dim_gset:Nn \g_ptxcd_topMargin_dim {7mm}
+ \dim_gset:Nn \g_ptxcd_bottomMargin_dim {11mm}
+ \dim_gset:Nn \g_ptxcd_innerMargin_dim {14mm}
+ \dim_gset:Nn \g_ptxcd_outerMargin_dim {9.75mm}
+ \dim_gset:Nn \g_ptxcd_topLogoMargin_dim {39mm}
+ }
+ }
+ }
+ }
+ \KOMAoptions{footlines=1}
+ \RequirePackage{geometry}
+ \geometry{
+ includefoot,
+ % footskip=\dim_eval:n {\footskip+\baselineskip},
+ top=\g_ptxcd_topMargin_dim,
+ inner=\g_ptxcd_innerMargin_dim,
+ outer=\dim_eval:n {\g_ptxcd_outerMargin_dim},
+ bottom=\dimexpr\g_ptxcd_bottomMargin_dim-\dp\strutbox,
+ columnsep= \g_ptxcd_columnSep_dim,
+ % footinclude,
+ }
+}
+\ExplSyntaxOff
+%%
+%% Loading necessary packages
+%% For Colors
+\PassOptionsToPackage{table}{xcolor}
+\RequirePackage{bfhcolors}
+\colorlet{BFH-info}{BFH-LightGreen}
+%% Helper macros
+%\RequirePackageWithOptions{bfhhelpers}
+%%% For page references
+\PassOptionsToPackage{lastpage,user}{zref}
+\RequirePackage{zref}
+%% For internationalization
+\RequirePackage{translations}
+\LoadDictionary{bfhtranslations}
+
+%% For Pagestyles
+\PassOptionsToPackage{automark,headsepline}{scrlayer-scrpage}
+\RequirePackage{scrlayer-scrpage}
+
+\RequirePackage{amsmath}
+\RequirePackage{amssymb}
+\RequirePackage{bfhfonts}
+\RequirePackage{graphicx}
+%%
+%% ====================== In Package Translations ================================
+%% -----------------------
+%% author and
+%% -----------------------
+\DeclareTranslationFallback{and}{and}
+%% DE
+\DeclareTranslation{German}{and}{und}
+%% FR
+\DeclareTranslation{French}{and}{et}
+%% EN
+\DeclareTranslation{English}{and}{and}
+%% -----------------------
+%% page-of-pages
+%% -----------------------
+\DeclareTranslationFallback{page-of-pages}{page~\thepage\ of~\zpageref{LastPage}}
+%% DE
+\DeclareTranslation{German}{page-of-pages}{Seite~\thepage\ von~\zpageref{LastPage}}
+%% FR
+\DeclareTranslation{French}{page-of-pages}{page~\thepage\ sur~\zpageref{LastPage}}
+%% EN
+\DeclareTranslation{English}{page-of-pages}{page~\thepage\ of~\zpageref{LastPage}}
+%% -----------------------
+%% version-of-date
+%% -----------------------
+\DeclareTranslationFallback{version-of-date}{%
+ Version~\@version\ of~\@date
+}%
+%% DE
+\DeclareTranslation{German}{version-of-date}{%
+ Version~\@version\ vom~\@date
+}%
+%% FR
+\DeclareTranslation{French}{version-of-date}{%
+ Version~\@version\ de~\@date
+}%
+%% EN
+\DeclareTranslation{English}{version-of-date}{%
+ Version~\@version\ of~\@date
+}%
+%% -----------------------
+%%
+%% BFH Logos
+%%
+\PassOptionsToPackage{
+ variant=C,
+ height=67.5pt,%125% for a4
+}{bfhlogo}
+
+\ExplSyntaxOn
+\bool_if:NTF \g__ptxcd_title_inverted_bool {
+ \PassOptionsToPackage{invert-logo-colors=true}{bfhlogo}
+} {
+ \PassOptionsToPackage{invert-logo-colors=false}{bfhlogo}
+}
+
+\file_if_exist:nTF {bfhlogo.sty}
+{\RequirePackage{bfhlogo}}
+{
+ \tl_if_empty:NT \g_ptxcd_logofile_tl {
+ \msg_new:nnnn {bfh-ci} {missing-bfhlogo}
+ {I~could~not~find~the~bfhlogo~package.}
+ {Please~have~a~look~at~the~bfh-ci~documentation~for~more~information~or~provide~an~alternative~using~the~logofile~option.}
+ \msg_warning:nn {bfh-ci} {missing-bfhlogo}
+ }
+}
+
+\dim_if_exist:NF \g__ptxcd_logo_height_dim {
+ \dim_new:N \g__ptxcd_logo_height_dim
+ \dim_gset:Nn \g__ptxcd_logo_height_dim {67.5pt}
+}
+
+\box_if_exist:NF \g__ptxcd_logo_box {
+ \box_new:N \g__ptxcd_logo_box
+}
+
+\tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hbox_gset:Nn \g__ptxcd_logo_box {\includegraphics[height=\g__ptxcd_logo_height_dim]{\g_ptxcd_logofile_tl}}
+}
+
+%% -----------------------
+
+\providecommand{\Logo}{\g_ptxcd_logofile_tl}
+\providecommand{\Logoplain}{\g_ptxcd_logofile_tl}
+
+\ExplSyntaxOn
+\dim_new:N \g_ptxcd_rule_height_dim
+\dim_new:N \g_ptxcd_rule_arc_dim
+\file_input:n {bfh-a\int_eval:n {\g_ptxcd_paper_int -1} paper.clo}
+\ptxcd_setup_base_sizes:
+%% ============================== BFH Item List ==============================
+%%
+\@ifundefined {scr@fnt@labelitemi}{\newkomafont{labelitemi}{}}{}
+\setkomafont{labelitemi}{\color{BFH-Orange}}
+\cs_new:Nn \__ptxcd_itemlabel: {{\ifvmode\leavevmode\fi\usekomafont{labelitemi}\raise1.25pt\hbox{$\blacktriangleright$}}}
+\newcommand*{\bfhitemlabel}{\__ptxcd_itemlabel:\quad}
+\renewcommand*{\labelitemi}{\__ptxcd_itemlabel:}
+%%
+%%
+%% ===================== Set fonts for caption, chapter etc. ==================
+
+\colorlet{BFH-textaccentcolor}{BFH-Gray}
+%color all headers:
+\setkomafont{disposition}{\sffamily\bfseries\color{BFH-textaccentcolor}}
+
+\setkomafont{caption}{\sffamily\footnotesize\color{BFH-textaccentcolor}}
+\setkomafont{captionlabel}{\usekomafont{caption}\bfseries}
+
+\setkomafont{pageheadfoot}{\footnotesize\color{BFH-textaccentcolor}}
+\setkomafont{footnote}{\sffamily\color{BFH-textaccentcolor}}
+
+\setkomafont{pagenumber}{\sffamily\bfseries\small\color{BFH-Orange}}
+
+\RequirePackage{trimclip}
+
+\ExplSyntaxOn
+\colorlet{BFH-Title}{BFH-Gray}
+\setkomafont{title}{\Huge\color{BFH-Title}}
+\setkomafont{subtitle}{\large\color{BFH-Title}}
+\setkomafont{subject}{\normalsize\color{BFH-Title}}
+\setkomafont{author}{\normalsize\color{BFH-Title}}
+\setkomafont{date}{\normalsize\color{BFH-Title}}
+\setkomafont{publishers}{\normalsize\color{BFH-Title}}
+\newkomafont{titlefooter}{\color{BFH-Title}\sffamily\bfseries}
+
+\seq_new:N \g_ptxcd_author_seq
+
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+
+\renewcommand*{\@author}{%
+ \begingroup
+ \hyphenpenalty=100000
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\GetTranslation{and}~} {,~} {~\&~}
+ \endgroup
+}
+
+\bool_if:NTF \g__ptxcd_title_inverted_bool
+{
+ \colorlet{BFH-titlebg}{BFH-Gray}
+ \colorlet{BFH-titlefg}{BFH-Orange}
+}{
+ \colorlet{BFH-titlebg}{BFH-Orange}
+ \colorlet{BFH-titlefg}{BFH-Gray}
+}
+
+%Titelseite
+\tl_new:N \g_ptxcd_titleimage_code_tl
+\tl_gset_eq:NN \g_ptxcd_titleimage_code_tl \c_empty_tl
+
+\box_new:N \l__ptxcd_titlegraphic_box
+\box_new:N \g__ptxcd_title_box
+
+\RequirePackage{xparse}
+
+\NewDocumentCommand{\titlegraphic}{sm}{
+ \IfBooleanTF{#1}{
+ \tl_gset:Nn \g_ptxcd_titleimage_code_tl {
+ \hbox_set:Nn \l__ptxcd_titlegraphic_box {\raisebox{\depth}{#2}}
+ \box_resize_to_wd:Nn \l__ptxcd_titlegraphic_box {\width}
+ \dim_compare:nTF {\box_ht:N \l__ptxcd_titlegraphic_box - \height> \c_zero_dim}
+ {
+ \dim_set:Nn \l_tmpa_dim {.5\box_ht:N \l__ptxcd_titlegraphic_box - .5\height}
+ \clipbox{0pt~\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }{
+ \box_resize_to_ht:Nn \l__ptxcd_titlegraphic_box {\height}
+ \dim_set:Nn \l_tmpa_dim {(\box_wd:N \l__ptxcd_titlegraphic_box - \width) / 2}
+ \clipbox{\dim_eval:n{\l_tmpa_dim}~0pt~\dim_eval:n{\l_tmpa_dim}~0pt}{\box_use:N \l__ptxcd_titlegraphic_box}
+ }
+ }
+ }{
+ \tl_gset:Nn \g_ptxcd_titleimage_code_tl {#2}
+ }
+}
+
+\tl_new:N \g_ptxcd_partnerlogo_tl
+\newcommand{\partnerlogo}[1]{\tl_gset:Nn \g_ptxcd_partnerlogo_tl {#1}}
+
+\dim_new:N \g__ptxcd_titleimage_ht_dim
+
+
+\dim_gset:Nn \g__ptxcd_titleimage_ht_dim { \g_ptxcd_titleimage_ratio_tl\paperheight- \g_ptxcd_titleimage_ratio_tl\g_ptxcd_rule_height_dim}
+
+\exp_args:NV \tl_if_eq:nnT \g_ptxcd_pubType_tl {thesis} {
+ \dim_compare:nT {\g__ptxcd_titleimage_ht_dim > .666\paperheight} {
+ \msg_new:nnnn {ptxcd/layout} {incompatble-titleimage-ratio} {You~tried~to~set~the~titleimage-ratio~larger~than~23.\\This~is~not~allowed~for~theses.} {I~will~set~it~to~the~maximum~allowed~value~23.}
+ \msg_warning:nn {ptxcd/layout} {incompatble-titleimage-ratio}
+ \keys_set:nn {ptxcd/layout} {titleimage-ratio=23}
+ \dim_gset:Nn \g__ptxcd_titleimage_ht_dim { \g_ptxcd_titleimage_ratio_tl\paperheight- \g_ptxcd_titleimage_ratio_tl\g_ptxcd_rule_height_dim}
+ }
+}
+
+\DeclareNewLayer[
+ page,
+ height=\g__ptxcd_titleimage_ht_dim,
+ background,mode=picture,
+ contents={
+ \putLL{\color{BFH-titlebg}\rule{\layerwidth}{\layerheight}}
+ \putLL{\color{BFH-titlebg}
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_ptxcd_titleimage_code_tl
+ }
+ }
+]{title.BFH.image}
+
+\DeclareNewLayer[
+ page,
+ height=\dim_eval:n {\box_ht:N \g__ptxcd_title_box + \box_dp:N \g__ptxcd_title_box + \coverpagetopmargin+1.5\box_ht:N \g__ptxcd_logo_box},
+ background,mode=picture,
+ contents={
+ \putLL{\color{BFH-titlebg}\rule{\layerwidth}{\layerheight}}
+ \putLL{\color{BFH-titlebg}
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_ptxcd_titleimage_code_tl
+ }
+ }
+]{title.BFH.titlehead}
+
+\DeclareNewLayer[
+ mode=picture,
+ page,background,
+ voffset=\dim_eval:n {\box_ht:N \g__ptxcd_title_box + \box_dp:N \g__ptxcd_title_box + \coverpagetopmargin+1.5\box_ht:N \g__ptxcd_logo_box},
+ width=\paperwidth,height=\g_ptxcd_rule_height_dim,
+ contents={\putLL{\color{BFH-titlefg}\rule{\layerwidth}{\layerheight}}}
+]{title.BFH.titleheadrule}
+
+\bool_if:NTF \g_ptxcd_geometry_bool {
+ \def\coverpagetopmargin{\g_ptxcd_topMargin_dim}
+ \def\coverpagebottommargin{\g_ptxcd_bottomMargin_dim}
+ \def\coverpageleftmargin{\g_ptxcd_innerMargin_dim}
+ \def\coverpagerightmargin{\g_ptxcd_outerMargin_dim}
+}{
+ \def\coverpagetopmargin{.5\g__ptxcd_logo_height_dim}
+ \def\coverpagebottommargin{.5\g__ptxcd_logo_height_dim}
+ \def\coverpageleftmargin{.75\g__ptxcd_logo_height_dim}
+ \def\coverpagerightmargin{.75\g__ptxcd_logo_height_dim}
+}
+\DeclareNewLayer[background,foot,align=bl,
+ voffset=\paperheight-\coverpagebottommargin+.35\baselineskip,
+ width=\dimexpr\paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax,
+ contents={
+ \usekomafont{titlefooter}
+ \makebox[\linewidth]{
+ \@titlefooterleft\hfill
+ \@titlefooterright
+ }
+ }
+]{title.BFH.footer}
+
+\DeclareNewLayer[
+ mode=picture,
+ page,background,
+ voffset=\g__ptxcd_titleimage_ht_dim,
+ width=\paperwidth,height=\g_ptxcd_rule_height_dim,
+ contents={\putLL{\color{BFH-titlefg}\rule{\layerwidth}{\layerheight}}}
+]{title.BFH.rule}
+
+\DeclareNewLayer[
+ mode=picture,
+ foreground,
+ align=tl,
+ hoffset=\oddsidemargin+1in,
+ voffset=\coverpagetopmargin,
+ width=\box_wd:N \g__ptxcd_logo_box,
+ height=\box_ht:N \g__ptxcd_logo_box,
+ %width=\paperwidth,height=\g_ptxcd_rule_height_dim,
+ contents={\putLL{\box_use:N \g__ptxcd_logo_box}}
+]{title.BFH.logo}
+
+\DeclareNewLayer[
+ mode=picture,
+ foreground,
+ align=tr,
+ hoffset=\oddsidemargin+1in+\textwidth,
+ voffset=\coverpagetopmargin+\ht\strutbox,
+ width=\textwidth - \box_wd:N \g__ptxcd_logo_box,
+ height=\box_ht:N \g__ptxcd_logo_box,
+ contents={%
+ \putUL{%
+ \makebox[\layerwidth][r]{%
+ \let\width\layerwidth
+ \let\height\layerheight
+ \g_ptxcd_partnerlogo_tl}%
+ }%
+ }%
+]{title.BFH.partnerlogo}
+
+\DeclareNewPageStyleByLayers{title.BFH}{title.BFH.rule,title.BFH.image,title.BFH.footer}
+
+\DeclareNewPageStyleByLayers{titlehead.BFH}{title.BFH.titleheadrule,title.BFH.titlehead,title.BFH.logo,title.BFH.partnerlogo}
+\renewcommand*{\titlepagestyle}{titlehead.BFH}
+
+% The following macro is an adapted version of the corresponding KOMA-Script macro
+% Copyright (c) 1994-2019 Markus Kohm [komascript at gmx info]
+\renewcommand*{\maketitle}[1][1]{
+ \def\and{,~ }
+ \cs_if_exist_use:N \ptxcd_pass_TitleData:
+ \if@titlepage
+ \begin{titlepage}
+ \setcounter{page}{%
+ #1%
+ }%
+ \def\thefootnote{\fnsymbol{footnote}}
+ \edef\titlepage@restore{%
+ \noexpand\endgroup
+ \noexpand\global\noexpand\@colht\the\@colht
+ \noexpand\global\noexpand\@colroom\the\@colroom
+ \noexpand\global\vsize\the\vsize
+ \noexpand\global\noexpand\@titlepageiscoverpagefalse
+ \noexpand\let\noexpand\titlepage@restore\noexpand\relax
+ }%
+ %always is coverpage!
+ \begingroup
+ \topmargin=\dimexpr \coverpagetopmargin-1in\relax
+ \oddsidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \evensidemargin=\dimexpr \coverpageleftmargin-1in\relax
+ \textwidth=\dimexpr
+ \paperwidth-\coverpageleftmargin-\coverpagerightmargin\relax
+ \textheight=\dimexpr
+ \paperheight-\coverpagetopmargin-\coverpagebottommargin\relax
+ \headheight=0pt
+ \headsep=0pt
+ \footskip=\baselineskip
+ \@colht=\textheight
+ \@colroom=\textheight
+ \vsize=\textheight
+ \columnwidth=\textwidth
+ \hsize=\columnwidth
+ \linewidth=\hsize
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \thispagestyle{title.BFH}
+ \vbox_to_ht:nn {\g__ptxcd_titleimage_ht_dim-\coverpagetopmargin}{
+ \makebox[\linewidth]{\leavevmode\box_use:N \g__ptxcd_logo_box\hfill\raisebox{\dim_eval:n {-\height+\box_ht:N \g__ptxcd_logo_box}}[0pt][0pt]{
+ \let\height\g__ptxcd_logo_height_dim
+ \g_ptxcd_partnerlogo_tl
+ }}
+ \par
+ \vfill
+ %Check if title should be placed above or below the rule
+ \bool_gset_false:N \g__ptxcd_tmp_bool
+ \dim_compare:nT {\g__ptxcd_titleimage_ht_dim > .75\paperheight} {\bool_gset_true:N \g__ptxcd_tmp_bool}
+ \bool_if:NTF \g__ptxcd_tmp_bool
+ {
+ \begingroup
+ \colorlet{BFH-Title}{BFH-titlefg}
+ \__ptxcd_print_title:
+ \endgroup
+ \bool_gset_false:N \g__ptxcd_tmp_bool
+ } {
+ \bool_gset_true:N \g__ptxcd_tmp_bool
+ }
+ \skip_vertical:n {\coverpagetopmargin}
+ \null
+ }
+ \nointerlineskip
+ \bool_if:NT \g__ptxcd_tmp_bool
+ {
+ \skip_vertical:n {\coverpagetopmargin}
+ \__ptxcd_print_title:
+ }
+ \@thanks\let\@thanks\@empty
+ \if@twoside
+ \@tempswatrue
+ \if@tempswa
+ \next@tpage
+ \begin{minipage}[t]{\textwidth}
+ \@uppertitleback
+ \end{minipage}\par
+ \vfill
+ \begin{minipage}[b]{\textwidth}
+ \@lowertitleback
+ \end{minipage}\par
+ \@thanks\let\@thanks\@empty
+ \fi
+ \fi
+ \ifx\@dedication\@empty
+ \else
+ \next@tdpage\null\vfill
+ {\centering\usekomafont{dedication}{\@dedication \par}}%
+ \vskip \z@ \@plus3fill
+ \@thanks\let\@thanks\@empty
+ \cleardoubleemptypage
+ \fi
+ \ifx\titlepage@restore\relax\else\clearpage\titlepage@restore\fi
+ \end{titlepage}
+ \setcounter{footnote}{0}%
+ \global\let\and\relax
+ \cleardoublepage
+ \else
+ \par
+ \@tempcnta=%
+ #1%
+ \relax\ifnum\@tempcnta=1\else
+ \ClassWarning{\KOMAClassName}{%
+ Optional argument of \string\maketitle\space ignored\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@uppertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\uppertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \ifx\@lowertitleback\@empty\else
+ \ClassWarning{\KOMAClassName}{%
+ non empty \string\lowertitleback\space ignored
+ by \string\maketitle\MessageBreak
+ in `titlepage=false' mode%
+ }%
+ \fi
+ \begingroup
+ \let\titlepage@restore\relax
+ \def\thefootnote{\fnsymbol{footnote}}
+ \next@tdpage
+ \ifx\@extratitle\@empty
+ \ifx\@frontispiece\@empty\else \mbox{}\fi
+ \else
+ \@makeextratitle
+ \fi
+ \ifx\@frontispiece\@empty
+ \ifx\@extratitle\@empty\else\next@tdpage\fi
+ \else
+ \next@tpage
+ \@makefrontispiece
+ \next@tdpage
+ \fi
+ \if@twocolumn
+ \twocolumn[\@maketitle]
+ \else
+ \@maketitle
+ \fi
+ \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi
+ \global\let\@thanks\@empty
+ \endgroup
+ \fi
+}
+
+\renewcommand*{\@maketitle}{%
+ \begingroup
+ \setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
+ \thispagestyle{title.BFH}
+ \hbox_gset:Nn \g__ptxcd_title_box {
+ \bool_if:NT \g__ptxcd_title_inverted_bool {\colorlet{BFH-Title}{white}}
+ \parbox{\textwidth}{
+ \__ptxcd_print_title:
+ }
+ }
+ \null
+ \skip_vertical:n {.5\box_ht:N \g__ptxcd_logo_box}
+ \box_use:N \g__ptxcd_title_box
+ \skip_vertical:n {\g_ptxcd_rule_height_dim+.5\box_ht:N \g__ptxcd_logo_box}
+ \endgroup
+ \@thanks\let\@thanks\@empty
+}
+
+\newcommand*{\versionformat}[1]{\enskip(#1)}
+
+\cs_new:Nn \__ptxcd_print_title: {
+ \usekomafont{disposition}
+ {\usekomafont{title}\@title\par}
+ \ifx\@subtitle\@empty\else{\medskip\usekomafont{subtitle}\@subtitle\par}\fi
+ \bigskip
+ \exp_args:NV \tl_if_eq:nnTF \g_ptxcd_pubType_tl {thesis} {
+ \begin{tabular}{@{}p{0.25\linewidth}@{\quad}p{\dimexpr.75\linewidth-1em}}%
+ \ifx\@degreeprogram\@empty\else
+ \GetTranslation{Degreeprogram} & \@degreeprogram \\
+ \fi
+ \GetTranslation{Author} & \@author \\
+ \ifx\@advisor\@empty\else
+ \GetTranslation{Advisor} & \@advisor \\
+ \fi
+ \ifx\@coadvisor\@empty\else
+ \GetTranslation{Co-advisor} & \@coadvisor \\
+ \fi
+ \ifx\@projectpartner\@empty\else
+ \GetTranslation{Project~partner} & \@projectpartner \\
+ \fi
+ \ifx\@expert\@empty\else
+ \GetTranslation{Expert} & \@expert \\
+ \fi
+ \end{tabular}\par\medskip
+ }{
+ \ifx\@subject\@empty\else{\usekomafont{subject}\@subject\par\smallskip}\fi
+ \ifx\@author\@empty\else{\usekomafont{author}\@author\par\smallskip}\fi
+ }
+ {
+ \usekomafont{date}
+ \ifx\@version\@empty\@date\else\GetTranslation{version-of-date}\fi
+ \par\smallskip
+ }
+ \ifx\@publishers\@empty\else{\usekomafont{publishers}\@publishers\par}\fi
+}
+
+\ExplSyntaxOff
+
+\providecommand*{\frontmatter}{%
+ \if@twoside\cleardoublepage\else\clearpage\fi
+ \@mainmatterfalse
+ \pagenumbering{roman}%
+}
+
+\providecommand*{\mainmatter}{%
+ \if@twoside\cleardoublepage\else\clearpage\fi
+ \@mainmattertrue
+ \pagenumbering{arabic}%
+}
+
+\providecommand*{\backmatter}{%
+ \if@twoside\cleardoublepage\else\clearpage\fi
+ \@mainmatterfalse
+}
+
+
+\ExplSyntaxOn
+\msg_new:nnn {bfhlayout} {module-not-found} {
+ You~tried~to~load~the~BFH~layout~module~#1.\\
+ I~could~not~find~a~file~named~bfh-layout-#1.cfg.
+}
+
+\seq_new:N \g__ptxcd_module_seq
+
+\newcommand*\LoadBFHModule[1]{
+ \clist_map_inline:nn {#1} {
+ \seq_if_in:NnF \g__ptxcd_module_seq {##1} {
+ \file_if_exist_input:nF {bfh-layout-##1.cfg}
+ {\msg_error:nnn {bfhlayout} {module-not-found} {##1}}
+ \seq_gpush:Nn \g__ptxcd_module_seq {##1}
+ }
+ }
+}
+
+\LoadBFHModule{tabular,rules}
+%type dependent config
+\file_if_exist_input:n {bfh-\g_ptxcd_pubType_tl.cfg}
+\ExplSyntaxOff
+
+%%
+%% Variables for titlepages other than the standard ones (like \title, \date, \author, etc)
+%%
+%%
+%% AuthorVariable declarations
+%%
+%% This class exposes the following variables to authors for use in the template.
+%% All variables are optional.
+%%
+%% \institution{} --- The company name i.e. Bern University of Applied Sciences
+%% \department{} --- The department i.e. Engineering and Information Technology
+%% \institute{} --- The instidute or faculty i.e. Micro and Medical Technology
+%% \subtitle{} --- A document Subtitle used for some document types
+%% \version{} --- (optional) Document version used on some documents when supplied
+%% \titlegraphic*{} --- (optional) Document titel page image used on some documents when supplied
+%%%%%%%%%%%%%%%%%%%%%%%
+%% General Variable Definitions
+%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand*{\institution}[1]{\def\@institution{#1}}
+\institution{\GetTranslation{Bern University of Applied Sciences}}
+
+\providecommand*{\department}[1]{\def\@department{#1}}
+\department{}
+
+\providecommand*{\institute}[2][]{\def\@institute{#2}}
+\institute{}
+
+\providecommand*{\version}[1]{\def\@version{#1}}
+\version{}
+
+\providecommand{\titlefooterleft}[1]{\def\@titlefooterleft{#1}}
+\titlefooterleft{%
+ \begin{tabular}[b]{@{}l@{}}%
+ \ifx\@department\@empty\else
+ \bfhitemlabel\@department \\\par
+ \fi
+ \ifx\@institute\@empty\else
+ \bfhitemlabel\@institute
+ \fi
+ \end{tabular}%
+}
+
+\providecommand{\titlefooterright}[1]{\def\@titlefooterright{#1}}
+\titlefooterright{}
+
+\endinput
+%end of package bfhlayout.sty \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhletter.sty b/macros/latex/contrib/bfh-ci/tex/bfhletter.sty
new file mode 100644
index 0000000000..ef0393f6bc
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhletter.sty
@@ -0,0 +1,197 @@
+%% This is file `bfhletter.sty' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\ProvidesPackage{bfhletter}[2021/12/23 v2.0.0 letter layouts for BFH-CI, CI of Bern University of Applied Sciences]
+
+\PassOptionsToPackage{fromlogo=true,refline=false,addrfield=topaligned,pagenumber=botright}{scrletter}
+
+\RequirePackage{l3keys2e}
+
+\ExplSyntaxOn
+\keys_define:nn {ptxcd/letter} {
+ logofile .tl_gset:N = \g_ptxcd_letterlogofile_tl,
+ logofile .initial:n = BFH-logo_\g__ptxcd_colormode_tl,
+ colormode .code:n =\PassOptionsToPackage{colormode=#1}{bfhcolors},
+}
+\ExplSyntaxOff
+
+\ProcessKeysOptions{ptxcd/letter}
+
+\RequirePackage{scrletter}
+
+\RequirePackage{graphicx}
+\RequirePackage{bfhcolors}
+\RequirePackage{translations}
+\LoadDictionary{bfhtranslations}
+
+\ExplSyntaxOn
+\file_if_exist:nTF {\g_ptxcd_letterlogofile_tl.pdf}
+{\setkomavar{fromlogo}{\includegraphics[height=19mm]{\g_ptxcd_letterlogofile_tl}}}
+{
+ \msg_new:nnnn {bfh-ci} {missing-bfhlogo}
+ {I~could~not~find~the~bfhlogo~package.}
+ {Please~have~a~look~at~the~bfh-ci~documentation~for~more~information~or~provide~an~alternative~using~the~logofile~option.}
+ \msg_warning:nn {bfh-ci} {missing-bfhlogo}
+}
+
+
+\ExplSyntaxOff
+
+\PassOptionsToPackage{pass}{geometry}
+\RequirePackage{geometry}
+\AtBeginLetter{
+ \newgeometry{
+ includehead=false,
+ includefoot=false,
+ top=44.7mm,
+ bottom=21.8mm,
+ left=25.3mm,
+ right=36.7mm,
+ footskip=\dimexpr12.7mm-8bp\relax
+ }
+ \makeatletter
+ \input{bfhlettersize9.5pt.clo}
+ \makeatother
+}
+\AtEndLetter{\restoregeometry}
+
+\setkomavar{firsthead}{%
+ \if@logo
+ \rlap{\usekomavar{fromlogo}}%
+ \fi
+}
+
+\ExplSyntaxOn
+
+\setkomafont{placeanddate}{\small\sffamily}
+\newkomafont{ptxcd_location}{\sffamily\small}
+\setkomavar{specialmail}[]{\rule[-\dp\strutbox]{0pt}{5.9mm}}
+\setkomavar*{fromurl}{}
+\setkomavar*{fromemail}{}
+
+%DOKU neue komavars
+\newkomavar{frominstitution}
+\newkomavar{frominstitution-en}
+\newkomavar{fromfunction}
+
+\setplength{PPdatamatrixvskip}{1cm}
+\setkomavar{backaddress}{BFH\\\usekomavar{fromname}\\\usekomavar{fromaddress}}
+
+\setkomavar{backaddressseparator}{\space|\space}
+
+\@setplength{toaddrvpos}{\dimexpr51.8mm-7bp}
+\@setplength{toaddrhpos}{25.3mm}
+\@setplength{firstheadhpos}{25.3mm}
+\@setplength{locvpos}{22.9mm}
+\@setplength{refvpos}{\dimexpr94.6mm-\ht\strutbox}
+\@setplength{locwidth}{53mm}
+\@setplength{lochpos}{-139.3mm}
+
+\cs_set:Nn \__ptxcd_locfield: {%
+ \usekomafont{ptxcd_location}\usekomafont{fromaddress}
+ \raggedright
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}
+ \par@updaterelative
+ \begingroup
+ \int_compare:nT {0 < \@pageat <3} {
+ \ptxcd_letterpagemark:\\[\baselineskip]
+ }
+ \textbf{\GetTranslation{Bern~University~of~Applied~Sciences}}\\
+ \Ifkomavarempty{frominstitution}{}{%
+ {\parbox[t][2\baselineskip]{\linewidth}{\usekomavar[\raggedright]{frominstitution}}}
+ \\[.5\baselineskip]}%
+ \endgroup
+ \Ifkomavarempty{fromname}{}
+ {{\usekomafont{fromname}\usekomavar{fromname}}
+ \Ifkomavarempty{fromfunction}{}{\\\usekomavar{fromfunction}}
+ \\[\baselineskip]}%
+ \Ifkomavarempty{fromaddress}{}{\usekomavar{fromaddress}\\[\baselineskip]}%
+ \clist_map_inline:nn {fromphone, fromfax}{
+ \Ifkomavarempty{##1}{}{
+ \Ifkomavarempty*{##1}{}{\usekomavar*{##1}\space}\usekomavar{##1}\par
+ }
+ }
+ \par\vspace{.5\baselineskip}
+ \clist_map_inline:nn {fromemail, fromurl}{
+ \Ifkomavarempty{##1}{}{
+ \Ifkomavarempty*{##1}{}{\usekomavar*{##1}\space}\usekomavar{##1}\par
+ }
+ }
+ \strut\seq_use:Nn \g__ptxcd_reffields_seq {}
+}
+
+\seq_new:N \g__ptxcd_reffields_seq
+
+\tl_const:Nn \ptxcd_reffield_separator_tl {\\}
+
+\setkomavar{location}{\parbox[t][\useplength{locheight}][t]{\useplength{locwidth}}{\__ptxcd_locfield:}}
+
+\RequirePackage{bfhfonts}
+
+\cs_if_exist_use:NT \fontspec_font_if_exist:nT {{LucidaSansOT.otf} {
+ \setsansfont[
+ Ligatures=TeX,
+ ItalicFont=LucidaSansOT-Italic.otf,
+ BoldFont=LucidaSansOT-Demi.otf,
+ BoldItalicFont=LucidaSansOT-DemiItalic.otf,
+ ]{LucidaSansOT.otf}
+ }}
+
+\renewcommand*{\familydefault}{\sfdefault}
+
+\ExplSyntaxOff
+
+\if@refline
+\else
+ \renewcommand*{\@datefield}{%
+ {%
+ \setparsizes{\z@}{\z@}{\z@ plus 1fil}\par@updaterelative
+ \@setplength{refwidth}{\useplength{locwidth}}%
+ \@setplength{refhpos}{-\useplength{lochpos}}%
+ \@tempswafalse
+ \move@topt\vskip\useplength{refvpos}%
+ \@tempswafalse
+ \rlap{\noindent\move@topl\hskip\useplength{refhpos}%
+ \vbox{\hsize\useplength{refwidth}%
+ \noindent
+ {\usekomafont{placeanddate}{\Ifkomavarempty{place}{}{%
+ \usekomavar{place}\usekomavar{placeseparator}}%
+ \usekomavar{date}}}%
+ }%
+ }%
+ \vskip\useplength{refaftervskip}%
+ }%
+ }
+\fi
+
+%signature raggedright
+\let\raggedsignature\raggedright
+
+\endinput
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhlettersize9.5pt.clo b/macros/latex/contrib/bfh-ci/tex/bfhlettersize9.5pt.clo
new file mode 100644
index 0000000000..6db499de20
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhlettersize9.5pt.clo
@@ -0,0 +1,107 @@
+%% This is file `bfhlettersize9.5pt.clo' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+\ProvidesFile{%
+ bfhlettersize9.5pt.clo%
+}[bfhletter font size class option]
+
+\def\normalsize{%
+ \@setfontsize\normalsize{9.5bp}{12.2bp}%
+ \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
+ \abovedisplayshortskip \z@ \@plus3\p@
+ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
+ \belowdisplayskip \abovedisplayskip
+ \let\@listi\@listI
+}
+\def\small{%
+ \@setfontsize\small{8bp}{9.6bp}%
+ \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus2\p@
+ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 4\p@ \@plus2\p@ \@minus2\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\footnotesize{%
+ \@setfontsize\footnotesize{7.5pt}\@xpt%
+ \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
+ \abovedisplayshortskip \z@ \@plus\p@
+ \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
+ \def\@listi{\leftmargin\leftmargini
+ \topsep 3\p@ \@plus\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}%
+ \belowdisplayskip \abovedisplayskip
+}
+\def\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
+\def\tiny{\@setfontsize\tiny\@vipt\@viipt}
+\def\large{\@setfontsize\large\@xiipt{14}}
+\def\Large{\@setfontsize\Large\@xivpt{18}}
+\def\LARGE{\@setfontsize\LARGE\@xviipt{22}}
+\def\huge{\@setfontsize\huge\@xxpt{25}}
+\def\Huge{\@setfontsize\Huge\@xxvpt{30}}
+\normalsize
+\setlength\footnotesep {6.65\p@}
+\setlength{\skip\footins} {9\p@ \@plus 4\p@ \@minus 2\p@}
+\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\textfloatsep {20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@}
+\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
+\setlength\@fptop {0\p@ \@plus 1fil}
+\setlength\@fpsep {8\p@ \@plus 2fil}
+\setlength\@fpbot {0\p@ \@plus 1fil}
+\setlength\@dblfptop {0\p@ \@plus 1fil}
+\setlength\@dblfpsep {8\p@ \@plus 2fil}
+\setlength\@dblfpbot {0\p@ \@plus 1fil}
+\setlength\partopsep {2\p@ \@plus 1\p@ \@minus 1\p@}
+\def\@listi{\leftmargin\leftmargini
+ \parsep 4\p@ \@plus2\p@ \@minus\p@
+ \topsep 8\p@ \@plus2\p@ \@minus4\p@
+ \itemsep4\p@ \@plus2\p@ \@minus\p@}
+\let\@listI\@listi
+\def\@listii {\leftmargin\leftmarginii
+ \labelwidth\leftmarginii
+ \advance\labelwidth-\labelsep
+ \topsep 4\p@ \@plus2\p@ \@minus\p@
+ \parsep 2\p@ \@plus\p@ \@minus\p@
+ \itemsep \parsep}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii
+ \advance\labelwidth-\labelsep
+ \topsep 2\p@ \@plus\p@\@minus\p@
+ \parsep \z@
+ \partopsep \p@ \@plus\z@ \@minus\p@
+ \itemsep \topsep}
+\def\@listiv {\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv
+ \advance\labelwidth-\labelsep}
+\def\@listv {\leftmargin\leftmarginv
+ \labelwidth\leftmarginv
+ \advance\labelwidth-\labelsep}
+\def\@listvi {\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi
+ \advance\labelwidth-\labelsep}
+%%% From File: $Id: scrkernel-paragraphs.dtx 3064 2019-02-01 07:40:28Z kohm $
+\@ifundefined{@list@extra}{}{%
+ \expandafter\ifnum\scr@v@is@ge{3.17}\par@updaterelative\fi
+ \l@addto@macro{\@listi}{\@list@extra}%
+ \let\@listI=\@listi
+ \l@addto@macro{\@listii}{\@list@extra}%
+ \l@addto@macro{\@listiii}{\@list@extra}%
+ \l@addto@macro{\footnotesize}{\protect\add@extra@listi{ftns}}%
+ \l@addto@macro{\small}{\protect\add@extra@listi{sml}}%
+}
+\@listi
+\endinput
+%%
+%% End of file `bfhlettersize9.5pt.clo'.
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhpub.cls b/macros/latex/contrib/bfh-ci/tex/bfhpub.cls
new file mode 100644
index 0000000000..eb20168673
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhpub.cls
@@ -0,0 +1,89 @@
+%% This is file `bfhpub.cls' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas HABEGGER <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{bfhpub}
+{2021/12/23}{2.0.0}{Publications using Corporate Design of BFH (BFH-CI)}
+
+\RequirePackage{l3keys2e}
+
+\str_const:Nn \c__ptxcd_base_str {pub}
+\tl_new:N \g_ptxcd_pub_class_tl
+
+\prop_new:N \g_ptxcd_clsopts_prop
+\prop_new:N \g_ptxcd_unknown_clsopts_prop
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {titlepage} {firstiscover}
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline}
+
+\keys_define:nn {ptxcd/pub} {
+ class .choice:,
+ class/report .meta:n = {class=scrreprt},
+ class/scrreprt .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrreprt},
+ class/article .meta:n = {class=scrartcl},
+ class/scrartcl .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrartcl},
+ class/book .meta:n = {class=scrbook},
+ class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook},
+ class .initial:n = scrartcl,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ type / factsheet .meta:n = {class=scrartcl},
+ beamerarticle .code:n = \PassOptionsToPackage{type=beamerarticle}{bfhlayout},
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+}
+
+\ProcessKeysOptions{ptxcd/pub}
+
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_ptxcd_pub_class_tl}}}
+}
+
+\LoadClass{\g_ptxcd_pub_class_tl}
+
+\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
+ \cs_if_exist:cT {KV@KOMA.\g_ptxcd_pub_class_tl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}}
+ }
+}
+
+\RequirePackage{bfhlayout}
+
+%custom config depends on department_str
+\file_if_exist_input:n {bfh\g_ptxcd_department_str.cfg}
+\endinput
+%End of class bfhpub.cls
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhsciposter.cls b/macros/latex/contrib/bfh-ci/tex/bfhsciposter.cls
new file mode 100644
index 0000000000..d60284ecba
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhsciposter.cls
@@ -0,0 +1,577 @@
+%% This is file `bfhsciposter.cls' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplPackage{bfhsciposter}{2021/12/23}{2.0.0}{Scientific poster layout of BFH}
+
+\RequirePackage{l3keys2e}
+\prop_new:N \g_ptxcd_clsopts_prop
+\tl_new:N \g_ptxcd_boxstyle_tl
+\int_new:N \g_ptxcd_paper_int
+\str_new:N \g_ptxcd_department_str
+\str_const:Nn \c__ptxcd_base_str {sciposter}
+
+\dim_new:N \g_ptxcd_rule_height_dim
+\dim_new:N \g_ptxcd_rule_arc_dim
+
+\bool_new:N \g__ptxcd_ruled_footer_bool
+\bool_new:N \g__ptxcd_ruled_title_bool
+\bool_new:N \g__ptxcd_color_coated_bool
+
+\keys_define:nn {ptxcd/poster} {
+ footer .bool_gset:N = \g_ptxcd_poster_foot_bool,
+ footer .default:n = true,
+ footer .initial:n = true,
+ thanks .tl_gset:N = \g_ptxcd_footnote_label_tl,
+ thanks .initial:n = arabic*,
+ pdfa .bool_gset:N = \g_ptxcd_pdfa_bool,
+ pdfa .initial:n = false,
+ boxstyle .choice:,
+ boxstyle / plain .code:n = \tl_gset:Nn \g_ptxcd_boxstyle_tl {BFH-plain},
+ boxstyle / colored .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {BFH-colored},
+ boxstyle / framed .code:n= \tl_gset:Nn \g_ptxcd_boxstyle_tl {BFH-framed},
+ boxstyle / default .meta:n = {boxstyle=plain},
+ boxstyle .initial:n = default,
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_clsopts_prop \l_keys_key_tl {#1}},
+ paper .choices:nn = {a0,a1,a2,a3}{
+ \int_gset_eq:NN \g_ptxcd_paper_int \l_keys_choice_int
+ \exp_args:Nx \PassOptionsToPackage{\l_keys_choice_tl paper}{geometry}
+ },
+ paper .initial:n = a1,
+ fontsize .tl_gset:N = \g_ptxcd_fontsize_tl,
+ title .choice:,
+ title / default .meta:n = {title=large},
+ title / large .code:n = \bool_gset_false:N \g_ptxcd_smalltitle_bool,
+ title / small .code:n = \bool_gset_true:N \g_ptxcd_smalltitle_bool,
+ title .initial:n = default,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department .initial:n = default,
+ logo-language .tl_gset:N = \g__ptxcd_logo_language_tl,
+ invert-colors .meta:n = {invert-logo-colors,invert-title-colors,invert-footer-colors},
+ invert-logo-colors .bool_gset:N = \g__ptxcd_invert_logo_colors_bool,
+ invert-title-colors .bool_gset:N = \g__ptxcd_invert_title_colors_bool,
+ invert-footer-colors .bool_gset:N = \g__ptxcd_invert_footer_colors_bool,
+ logo-variant .tl_gset:N = \g__ptxcd_logo_variant_tl,
+ logo-file .tl_gset:N = \g__ptxcd_logo_file_tl,
+ logo .choice:,
+ logo / head .code:n = {
+ \bool_gset_true:N \g__ptxcd_LogoInHead_bool
+ \keys_set:nn {ptxcd/poster} {logo-variant=C}
+ },
+ logo / foot .code:n = {
+ \bool_gset_false:N \g__ptxcd_LogoInHead_bool
+ \keys_set:nn {ptxcd/poster} {logo-variant=B}
+ },
+ logo / top .meta:n = {logo=head},
+ logo / bottom .meta:n = {logo=foot},
+ logo .initial:n = foot,
+ logofile .tl_gset:N = \g_ptxcd_logofile_tl,
+ logofile .initial:n =,
+ coated .code:n = \bool_gset:Nn \g__ptxcd_color_coated_bool {#1}\PassOptionsToPackage{coated=#1}{bfhcolors},
+ title-style .choice:,
+ title-style / ruled .code:n = \bool_gset_true:N \g__ptxcd_ruled_title_bool,
+ title-style / plain .code:n = \bool_gset_false:N \g__ptxcd_ruled_title_bool,
+ title-style / default .meta:n = {title-style=plain},
+ title-style .initial:n = default,
+ footer-style .choice:,
+ footer-style / ruled .code:n = \bool_gset_true:N \g__ptxcd_ruled_footer_bool,
+ footer-style / plain .code:n = \bool_gset_false:N \g__ptxcd_ruled_footer_bool,
+ footer-style / default .meta:n = {footer-style=plain},
+ footer-style .initial:n = default,
+ style .meta:n = {title-style=#1,footer-style=#1},
+ style .initial:n = plain,
+ align-title .choice:,
+ align-title / left .code:n = \let\raggedtitle\raggedright,
+ align-title / right .code:n = \let\raggedtitle\raggedleft,
+ align-title / center .code:n = \let\raggedtitle\centering,
+}
+
+\let\raggedtitle\centering
+\let\raggedfooter\raggedright
+
+\ProcessKeysOptions{ptxcd/poster}
+
+\dim_new:N \g_ptxcd_margin_dim
+\bool_if:NTF \g_ptxcd_smalltitle_bool {
+ \file_input:n {bfh-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \file_input:n {bfh-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_base_sizes:
+}{
+ \int_gdecr:N \g_ptxcd_paper_int
+ \file_input:n {bfh-a\int_use:N \g_ptxcd_paper_int paper.clo}
+ \ptxcd_setup_title_sizes:
+ \ptxcd_setup_base_sizes:
+}
+
+\prop_gput:NnV \g_ptxcd_clsopts_prop {fontsize} \g_ptxcd_fontsize_tl
+
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\exp_args:NnV\PassOptionsToClass{#1}\l_tmpa_tl}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass{#1=##1}{scrartcl}}}
+}
+
+\ExplSyntaxOff
+\PassOptionsToClass{parskip=half-}{scrartcl}
+\LoadClass{scrartcl}
+
+% add switch?
+\PassOptionsToPackage{colormode=4CU}{bfhcolors}
+
+\RequirePackage{bfhfonts}
+
+\ExplSyntaxOn
+\file_if_exist:nTF {bfhlogo.sty}
+{\RequirePackage{bfhlogo}}
+{
+ \tl_if_empty:NT \g_ptxcd_logofile_tl {
+ \msg_new:nnnn {bfh-ci} {missing-bfhlogo}
+ {I~could~not~find~the~bfhlogo~package.}
+ {Please~have~a~look~at~the~bfh-ci~documentation~for~more~information~or~provide~an~alternative~using~the~logofile~option.}
+ \msg_warning:nn {bfh-ci} {missing-bfhlogo}
+ }
+ \RequirePackage{graphicx}
+}
+
+\box_if_exist:NF \g__ptxcd_logo_box {
+ \box_new:N \g__ptxcd_logo_box
+}
+
+\tl_if_empty:NF \g_ptxcd_logofile_tl {
+ \hbox_gset:Nn \g__ptxcd_logo_box {\includegraphics{\g_ptxcd_logofile_tl}}
+}
+\ExplSyntaxOff
+
+\RequirePackage{tikz}
+\usetikzlibrary{calc}
+
+\RequirePackage{tcolorbox}
+\tcbuselibrary{poster}
+
+\RequirePackage[margin=0pt]{geometry}
+\RequirePackage{xparse}% will be only necessary for old debian installations
+
+\ExplSyntaxOn
+
+%Font adjusments
+\renewcommand*{\familydefault}{\sfdefault}
+
+\setkomafont{title}{
+ \color{titlefgcolor}
+ \expandafter\fontsize\ptxcd_title_fontsize:\selectfont
+ \bfseries
+}
+
+\setkomafont{author}{\bfseries}
+\setkomafont{captionlabel}{\bfseries}
+
+\setkomafont{disposition}{\sffamily\bfseries}
+\setkomafont{section}{\large}
+\setkomafont{subsection}{\normalsize}
+
+\setkomafont{pagefoot}{\small}
+
+% end of font adjustments
+
+\RequirePackage{bfhcolors}
+\RequirePackage{qrcode}
+
+%Setup title
+\box_new:N \l_ptxcd_tmpa_box
+\box_new:N \g_ptxcd_titlegraphic_box
+\box_new:N \g_ptxcd_title_box
+\box_new:N \g_ptxcd_author_box
+\box_new:N \g_ptxcd_credit_box
+
+\tl_new:N \g_ptxcd_thanks_tl
+\newcommand*{\ptxcd_title@footnote}[2][1]{
+ \begingroup
+ \ptxcd_def_footnotelabel:
+ \footnotemark[#1]\,#2\quad
+ \endgroup
+}
+
+\tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {*} {{footnote}}
+\clist_map_inline:nn {alph, arabic, fnsymbol, Alph, roman, Roman} {
+ \tl_greplace_all:Nnn \g_ptxcd_footnote_label_tl {#1} {\use:c {#1}}
+}
+
+\cs_set:Nn \ptxcd_def_footnotelabel: {
+ \renewcommand*{\thefootnote}{\g_ptxcd_footnote_label_tl}
+}
+
+\pagestyle{empty}
+\renewcommand*{\title}[1]{\gdef \@title {#1}}
+
+\dim_new:N \g_ptxcd_footheight_dim
+\dim_gset:Nn \g_ptxcd_footheight_dim {2\g_ptxcd_margin_dim}%\dim_eval:n {}}% taken from PP template
+
+\box_new:N \g_ptxcd_footergraphics_box
+\newcommand*{\footergraphics}[1]{
+ \begingroup
+ \let\height\g_ptxcd_footheight_dim
+ \hbox_gset:Nn \g_ptxcd_footergraphics_box {#1}
+ \endgroup
+}
+
+\tl_new:N \g_ptxcd_poster_foot_tl
+\newcommand{\footer}[1]{
+ \tl_gset:Nn \g_ptxcd_poster_foot_tl {#1}
+}
+
+\tl_new:N \g_ptxcd_poster_qrcode_tl
+
+\msg_new:nnnn {bfhsciposter} {biblatex-required}{
+ You~tried~to~use~#1.\\
+ This~feature~requires~the~biblatex~package.
+} {
+ Try~to~remove~the~star~or~load~biblatex.
+}
+
+\NewDocumentCommand{\footerqrcode}{sm}{
+ \IfBooleanTF {#1} {
+ \cs_if_exist:NTF \blx@blxinit {
+ \begingroup
+ \blx@blxinit
+ \entrydata{#2}{
+ \tl_gset:Nx \g_ptxcd_poster_qrcode_tl{\thefield{url}}
+ }
+ \endgroup
+ }{
+ \msg_error:nnx {bfhsciposter} {biblatex-required} {\use:c{footerqrcode*}}
+ }
+ }{
+ \tl_gset:Nn \g_ptxcd_poster_qrcode_tl {#2}
+ }
+}
+
+%redefine \author to manage \and and \thanks
+
+\seq_new:N \g_ptxcd_author_seq
+
+\renewcommand*\author[1]{
+ \seq_gset_split:Nnn \g_ptxcd_author_seq {\and} {#1}
+}
+
+\msg_new:nnn{bfhsciposter} {unknown-language} {
+ You~selected~an~unknown~language~#1.\\
+ The~Variable~#2~does~not~have~a~predefined~value.\\
+ Ensure~to~redefine~#2~to~match~your~language.\\
+ Otherwise~the~ngerman~vaue~#3~will~be~used.
+}
+
+\providecommand*\authorandname{
+ \msg_warning:nnxxx{bfhsciposter} {unknown-language}
+ {\languagename} {\exp_not:N \authorandname} {und}
+ und
+}
+
+\defcaptionname{ngerman, german,swissgerman,nswissgerman}{\authorandname}{und}
+\defcaptionname{french}{\authorandname}{et}
+\defcaptionname{english, USenglish, american, UKenglish, british}{\authorandname}{and}
+
+\renewcommand*{\@author}{
+ \seq_use:Nnnn \g_ptxcd_author_seq {~\authorandname{}~} {,~} {~\&~}
+}
+
+\newcommand\titlegraphic[1]{\def\@titlegraphic{#1}}
+\titlegraphic{}
+
+\newcommand{\institute}[1]{\def\@institute{#1}}
+\institute{}
+
+\newlength{\contentwidth}
+\setlength{\contentwidth}{\dimexpr\paperwidth-2\g_ptxcd_margin_dim\relax}
+\newlength{\contentheight}
+
+\tcbposterset{
+ coverage =
+ {
+ spread,
+ parbox=false,
+ bottom=\dim_eval:n {
+ \g_ptxcd_margin_dim
+ \bool_if:NT \g_ptxcd_poster_foot_bool {+\g_ptxcd_footheight_dim}
+ \bool_if:NTF \g__ptxcd_ruled_footer_bool {+\g_ptxcd_margin_dim}
+ {+.5\g_ptxcd_margin_dim}
+ },
+ left=\g_ptxcd_margin_dim,
+ right=\g_ptxcd_margin_dim,
+ before= {\ptxcd_poster_setup_title_box:},
+ top= \dim_eval:n {
+ \box_ht:N \g_ptxcd_title_box
+ + \box_dp:N \g_ptxcd_title_box
+ + 1.25 \g_ptxcd_margin_dim
+ + \bool_if:NTF \g__ptxcd_ruled_title_bool {.5} {1.25} \g_ptxcd_margin_dim
+ },
+ overlay={%
+ \coordinate(topleft) at ([xshift=\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ west);
+ \coordinate(topright) at ([xshift=-\g_ptxcd_margin_dim, yshift=-\g_ptxcd_margin_dim]current~page.north~ east);
+ \coordinate(bottomleft) at ([xshift=\g_ptxcd_margin_dim, yshift=\dim_eval:n {\bool_if:NTF \g__ptxcd_ruled_footer_bool {1}{.5}\g_ptxcd_margin_dim}]current~page.south~ west);
+ \coordinate(bottomright) at ([xshift=-\g_ptxcd_margin_dim, yshift=\dim_eval:n {\bool_if:NTF \g__ptxcd_ruled_footer_bool {1}{.5}\g_ptxcd_margin_dim}]current~page.south~ east);
+ \node[anchor=north~west,inner~sep=0pt,] (title) at (topleft) {\box_use:N \g_ptxcd_title_box};
+ \bool_if:NT \g__ptxcd_ruled_title_bool {\fill[titlerulecolor]([xshift=-\g_ptxcd_margin_dim,yshift=-.5\g_ptxcd_margin_dim]title.south~west)rectangle++(\paperheight,\g_ptxcd_rule_height_dim);}
+ \bool_if:NT \g_ptxcd_poster_foot_bool {\__ptxcd_typeset_footer:}
+ }
+ }
+}
+
+\cs_new:Nn \__ptxcd_typeset_footer: {
+ \coordinate(lastpos) at (bottomright);
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl
+ {
+ \node[anchor=south~east, inner~sep=\z@] (qrcode)at (lastpos)
+ {
+ \exp_args:NnV \use:n {\qrcode[height=\dim_use:N \g_ptxcd_footheight_dim]}\g_ptxcd_poster_qrcode_tl
+ };
+ \coordinate (lastpos) at (qrcode.south~west);
+ }
+ \box_if_empty:NF \g_ptxcd_footergraphics_box {
+ \node[anchor=south~east, inner~sep=\z@] at (lastpos) {
+ \box_use:N \g_ptxcd_footergraphics_box
+ };
+ }
+ \bool_if:NTF \g__ptxcd_LogoInHead_bool {
+ \node[inner~sep=\z@,anchor=south~west] (footerlogo) at (bottomleft) {\rule{0pt}{\g_ptxcd_footheight_dim}};
+ }{
+ \box_if_empty:NF \g__ptxcd_logo_box {\box_gresize_to_ht_plus_dp:Nn \g__ptxcd_logo_box {\g_ptxcd_footheight_dim}}
+ \node[anchor=south~ west, inner~ sep=\z@] (footerlogo) at (bottomleft) {
+ \box_use:N \g__ptxcd_logo_box\rule{\footerhsep}{\z@}
+ };
+ }
+ \node[anchor=base~ west,inner~sep=0pt] (infofooter) at (footerlogo.south~east) {
+ \parbox[b]{\dim_eval:n {\contentwidth
+ -\box_wd:N \g_ptxcd_footergraphics_box
+ \bool_if:NF \g__ptxcd_LogoInHead_bool {
+ -\box_wd:N \g__ptxcd_logo_box
+ -\footerhsep
+ }
+ \tl_if_empty:NF \g_ptxcd_poster_qrcode_tl {-\g_ptxcd_footheight_dim-\footerhsep}
+ }}{
+ \raggedfooter
+ \usekomafont{pagefoot}
+ \g_ptxcd_poster_foot_tl
+ \par\medskip
+ \let\footnotetext\ptxcd_title@footnote
+ \g_ptxcd_thanks_tl}
+ };
+
+ \bool_if:NTF \g__ptxcd_ruled_footer_bool {
+ \fill[footerrulecolor](footerlogo.north~west)++(-\g_ptxcd_margin_dim,.25\g_ptxcd_footheight_dim) rectangle++(\paperwidth,.7\g_ptxcd_rule_height_dim);
+ \fill[footerrulecolor](footerlogo.south~west)++(-\g_ptxcd_margin_dim,-.25\g_ptxcd_footheight_dim) rectangle++(\paperwidth,-.7\g_ptxcd_rule_height_dim);
+ }{
+ \fill[footerrulecolor](footerlogo.north~west)++(-\g_ptxcd_margin_dim,.25\g_ptxcd_footheight_dim) rectangle++(\paperwidth,\g_ptxcd_rule_height_dim);
+ }
+}
+
+% Background Colors
+\colorlet{backgroundcolor}{white}
+\colorlet{framecolor}{BFH-Orange}
+% Title Colors
+\bool_if:NTF \g__ptxcd_invert_title_colors_bool
+{
+ \colorlet{titlefgcolor}{BFH-Gray}
+ \colorlet{titlerulecolor}{BFH-Orange}
+} {
+ \colorlet{titlefgcolor}{BFH-Orange}
+ \colorlet{titlerulecolor}{BFH-Gray}
+}
+
+%Footer colors
+\bool_if:NTF \g__ptxcd_invert_footer_colors_bool
+{
+ \addtokomafont{pagefoot}{\color{BFH-Orange}\leavevmode}
+ \bool_if:NTF \g__ptxcd_ruled_footer_bool {
+ \colorlet{footerrulecolor}{BFH-Orange}
+ }{
+ \colorlet{footerrulecolor}{BFH-Gray}
+ }
+}{
+ \addtokomafont{pagefoot}{\color{BFH-Gray}\leavevmode}
+ \bool_if:NTF \g__ptxcd_ruled_footer_bool {
+ \colorlet{footerrulecolor}{BFH-Gray}
+ }{
+ \colorlet{footerrulecolor}{BFH-Orange}
+ }
+}
+
+% Block Colors
+\colorlet{blocktitlefgcolor}{BFH-Gray}
+\colorlet{blocktitlebgcolor}{blocktitlefgcolor!10}
+\colorlet{blockbodybgcolor}{blocktitlefgcolor!10}
+\colorlet{blockbodyfgcolor}{black}
+% Innerblock Colors
+\colorlet{innerblocktitlebgcolor}{BFH-Orange}
+\colorlet{innerblocktitlefgcolor}{BFH-Gray}
+\colorlet{innerblockbodybgcolor}{BFH-Orange}
+\colorlet{innerblockbodyfgcolor}{black}
+
+\dim_new:N \g_ptxcd_titleblock_dim
+\dim_new:N \g_ptxcd_titleindent_dim
+\dim_new:N \g__ptxcd_titlegraphic_sep_dim
+\dim_gset:Nn \g__ptxcd_titlegraphic_sep_dim {1cm}
+
+\cs_new:Nn \__ptxcd_inst:n {\textsuperscript{#1}}
+
+\cs_new:Nn \ptxcd_poster_setup_title_box: {
+ \hbox_gset:Nn \g_ptxcd_titlegraphic_box {
+ \@titlegraphic
+ }
+ \hbox_gset_to_wd:Nnn \g_ptxcd_title_box {\contentwidth} {
+ \usekomafont{disposition}\usekomafont{title}
+ \bool_if:NTF \g__ptxcd_LogoInHead_bool {
+ \box_if_empty:NF \g__ptxcd_logo_box {\box_gresize_to_ht:Nn \g__ptxcd_logo_box {\g_ptxcd_footheight_dim}}
+ \dim_set:Nn \l_tmpb_dim {\dim_max:nn {\box_wd:N \g_ptxcd_titlegraphic_box} {\box_wd:N \g__ptxcd_logo_box} - \g__ptxcd_titlegraphic_sep_dim}
+ }
+ {
+ \dim_set:Nn \l_tmpb_dim {\dim_compare:nTF {\box_wd:N \g_ptxcd_titlegraphic_box = 0pt} {0pt} {\box_wd:N \g_ptxcd_titlegraphic_box - \g__ptxcd_titlegraphic_sep_dim}}
+ }
+ \dim_set:Nn \l_tmpa_dim {\cs_if_eq:NNTF \centering \raggedtitle {-2} {-1} \l_tmpb_dim +
+ \contentwidth}
+ \box_if_empty:NF \g_ptxcd_titlegraphic_box {
+ \bool_if:NTF \g__ptxcd_LogoInHead_bool
+ {\raisebox{-\height} {\box_use:N \g__ptxcd_logo_box}}
+ {\raisebox{-\height} {\box_use:N \g_ptxcd_titlegraphic_box}}
+ \hspace{\g__ptxcd_titlegraphic_sep_dim}
+ }
+ \parbox[t]{\l_tmpa_dim}{
+ \vskip0pt
+ \raggedtitle
+ \leavevmode\@title \par
+ \normalfont\normalsize\normalcolor
+ \skip_vertical:n {\baselineskip}
+ \ptxcd_def_footnotelabel:
+ \cs_set_eq:NN \inst\__ptxcd_inst:n
+ {\usekomafont{author}\@author\\}
+ \tl_gset:No \g_ptxcd_thanks_tl {\@thanks}
+ \@institute
+ }
+ \hspace{\g__ptxcd_titlegraphic_sep_dim}
+ \hfill
+ \bool_if:NT \g__ptxcd_LogoInHead_bool {
+ \hfill
+ \raisebox{-\height} {\box_use:N \g_ptxcd_titlegraphic_box}
+ }
+ }
+}
+
+%%%%%%%%%%%%%%%%%%%%%%
+%Declare TCBstyles for bfhsciposter
+
+\AtBeginDocument{
+ \dim_const:Nn \c_ptxcd_smallrule_dim {5pt}
+ \dim_const:Nn \c_ptxcd_rulesep_dim {1ex}
+ \setlength{\footerhsep}{1.5cm}
+
+}
+\newlength\footerhsep
+
+\tcbset{
+ BFH-plain/.style = {
+ enhanced,
+ coltitle=blocktitlefgcolor,
+ colbacktitle=white,
+ coltext=blockbodyfgcolor,
+ colback=white,
+ size=minimal,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ before~title={\strut},
+ bottomtitle=\c_ptxcd_rulesep_dim,
+ top=\c_ptxcd_rulesep_dim,
+ bottom=\c_ptxcd_rulesep_dim,
+ parbox=false,
+ },
+ BFH-inner/.style = {
+ BFH-plain,
+ fonttitle=\usekomafont{disposition}\usekomafont{subsection}
+ },
+ BFH-abstract/.style = {BFH-plain, coltext=BFH-Gray},
+ BFH-colored/.style = {
+ BFH-plain,
+ boxsep=\c_ptxcd_rulesep_dim,
+ colbacktitle=blocktitlebgcolor,
+ colback=blockbodybgcolor,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ titlerule=\z@,
+ },
+ BFH-framed/.style = {
+ enhanced,
+ size=minimal,
+ coltitle=blocktitlefgcolor,
+ boxsep=\c_ptxcd_rulesep_dim,
+ boxrule=\c_ptxcd_smallrule_dim,
+ colframe=framecolor,
+ titlerule=\z@,
+ arc=1ex,
+ auto~outer~arc,
+ fonttitle=\usekomafont{disposition}\usekomafont{section},
+ before~title={\strut},
+ parbox=false,
+ },
+ BFH-framed-inner/.style = {
+ BFH-framed,
+ colbacktitle=innerblocktitlebgcolor,
+ coltitle=innerblocktitlefgcolor,
+ colback=innerblockbodybgcolor,
+ coltext=innerblockbodyfgcolor,
+ sharp~corners,
+ fonttitle=\usekomafont{disposition}\usekomafont{subsection}
+ },
+ BFH-colored-inner/.style = {BFH-framed-inner},
+}
+
+%Select default box styles according to style option
+\tcbposterset{boxes ={\g_ptxcd_boxstyle_tl}, poster={spacing=\c_ptxcd_rulesep_dim}}
+\tcbset{
+ every~ box~ on~ layer~ 3/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+ every~ box~ on~ layer~ 4/.style={reset,\g_ptxcd_boxstyle_tl -inner},
+}
+
+
+\msg_new:nnn {bfhsciposter} {module-not-found} {
+ You~tried~to~load~the~BFH~layout~module~#1.\\
+ I~could~not~find~a~file~named~bfh-layout-#1.cfg.
+}
+
+\newcommand*\LoadBFHModule[1]{
+ \clist_map_inline:nn {#1} {
+ \file_if_exist_input:nF {bfh-layout-##1.cfg}
+ {\msg_error:nnn {bfhsciposter} {module-not-found} {##1}}
+ }
+}
+\LoadBFHModule{tabular}
+
+\file_if_exist_input:n {bfh\g_ptxcd_department_str.cfg}
+
+\endinput
+%end of bfhsciposter.cls
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhthesis.cls b/macros/latex/contrib/bfh-ci/tex/bfhthesis.cls
new file mode 100644
index 0000000000..4348574e1a
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhthesis.cls
@@ -0,0 +1,168 @@
+%% This is file `bfhthesis.cls' version 2.0.0 (2021/12/23),
+%% it is part of
+%% BFH-CI -- Corporate Design for Bern University of Applied Sciences
+%% ----------------------------------------------------------------------------
+%%
+%% Copyright (C) 2021 by
+%% Marei Peischl <marei@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% ============================================================================
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainers of this work are
+%% Marei Peischl <bfh-ci@peitex.de>
+%% Andreas Habegger <andreas.habegger@bfh.ch>
+%%
+%% The development respository can be found at
+%% https://gitlab.ti.bfh.ch/bfh-latex/bfh-ci/
+%% Please use the issue tracker for feedback!
+%%
+%% ============================================================================
+%%
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{expl3}
+\ProvidesExplClass{bfhthesis}{2021/12/23}{2.0.0}{Theses using Corporate Design of BFH (BFH-CI), CI of Bern University of Applied Sciences}
+
+\RequirePackage{l3keys2e}
+
+\str_const:Nn \c__ptxcd_base_str {pub}
+\tl_new:N \g_ptxcd_pub_class_tl
+
+\prop_new:N \g_ptxcd_clsopts_prop
+\prop_new:N \g_ptxcd_unknown_clsopts_prop
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {titlepage} {firstiscover}
+\prop_gput:Nnn \g_ptxcd_clsopts_prop {captions} {nooneline}
+
+\keys_define:nn {ptxcd/pub} {
+ class .choice:,
+ class/report .meta:n = {class=scrreprt},
+ class/scrreprt .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrreprt},
+ class/article .meta:n = {class=scrartcl},
+ class/scrartcl .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrartcl},
+ class/book .meta:n = {class=scrbook},
+ class/scrbook .code:n = \tl_gset:Nn \g_ptxcd_pub_class_tl {scrbook},
+ class .initial:n = scrbook,
+ department .choice:,
+ department / default .code:n = \str_gset:Nn \g_ptxcd_department_str {default},
+ department .initial:n = default,
+ department / unknown .code:n = {
+ \str_gset:Nx \g_ptxcd_department_str {\l_keys_value_tl}
+ },
+ unknown .code:n = {\prop_gput:NVn \g_ptxcd_unknown_clsopts_prop \l_keys_key_tl {#1}},
+}
+
+\ProcessKeysOptions{ptxcd/pub}
+
+\prop_map_inline:Nn \g_ptxcd_clsopts_prop {
+ \tl_if_empty:nTF {#2}
+ {\PassOptionsToClass {#1} {\g_ptxcd_pub_class_tl}}
+ {\clist_map_inline:nn {#2} {\PassOptionsToClass {#1=##1} {\g_ptxcd_pub_class_tl}}}
+}
+
+\LoadClass{\g_ptxcd_pub_class_tl}
+
+\prop_map_inline:Nn \g_ptxcd_unknown_clsopts_prop {
+ \cs_if_exist:cT {KV@KOMA.\g_ptxcd_pub_class_tl.cls@#1} {
+ \tl_if_empty:nTF {#2}
+ {\KOMAoptions{#1}}
+ {\KOMAoption{#1}{#2}}
+ }
+}
+
+\PassOptionsToPackage{type=thesis}{bfhlayout}
+\RequirePackage{bfhlayout}
+
+
+\clist_map_inline:nn {advisor, coadvisor, projectpartner, expert, degreeprogram} {
+ \cs_if_exist:cF {#1} {
+ \cs_new_nopar:cpn {#1} ##1 {\exp_args:Nc \def {@#1} {##1}}
+ \use:c {#1} {}
+ }
+}
+\ExplSyntaxOff
+
+\providecommand{\doade}{German}
+\providecommand{\doafr}{French}
+\providecommand{\doaen}{English}
+
+\DeclareTranslationFallback{doa-heading}{Declaration of Authorship}
+\DeclareTranslation{German}{doa-heading}{Eigenständigkeitserklärung}
+\DeclareTranslation{French}{doa-heading}{D\'eclaration sur l'honneur}
+
+\DeclareTranslationFallback{doa-body}{I hereby declare that I have written this thesis independently and have not used any sources or aids other than those acknowledged.\par
+ All statements taken from other writings, either literally or in essence, have been marked as such.\par
+ I hereby agree that the present work may be reviewed in electronic form using appropriate software.}
+
+\DeclareTranslation{German}{doa-body}{Hiermit erkläre ich, dass ich die hier vorliegende Arbeit selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe.\par
+ Sämtliche Ausführungen, die anderen Schriften wörtlich oder sinngemäß entnommen wurden, habe ich als solche kenntlich gemacht.\par
+ Hiermit stimme ich zu, dass die vorliegende Arbeit in elektronischer Form mit entsprechender Software überprüft wird.}
+
+\DeclareTranslation{French}{doa-body}{Je d\'eclare par la pr\'esente avoir r\'edig\'e cette thèse de mani\`ere ind\'ependante et n'avoir utilis\'e aucune autre source ou aide que celles qui sont mentionn\'ees.\par
+ Toutes les d\'eclarations tir\'ees d'autres \'ecrits, litt\'eralement ou en substance, ont \'et\'e marqu\'ees comme telles.\par
+ J'accepte par la pr\'esente que le pr\'esent travail puisse \^etre revu sous forme \'electronique \`a l'aide de logiciels appropri\'es.}
+
+%====================== Declaration of Authorship for BFH Thesis ===================================
+
+\ExplSyntaxOn
+
+\dim_new:N \l_ptxcd_signature_dim
+\dim_set:Nn \l_ptxcd_signature_dim {5cm}
+
+\skip_new:N \l_ptxcd_signature_skip
+\skip_set:Nn \l_ptxcd_signature_skip {5mm}
+
+\tl_new:N \g__ptxcd_signature_tl
+\newcommand*{\setupSignature}[1]{\tl_gset:Nn \g__ptxcd_signature_tl {#1}}
+
+\newcommand*{\SignatureBox}[1]{%
+ \keyval_parse:NNn \__ptxcd_signature_no_image:n \__ptxcd_signature_image:nn {#1}
+}
+
+\cs_new:Nn \__ptxcd_signature_no_image:n {
+ \__ptxcd_signature_image:nn {#1} {}
+}
+
+\cs_new:Nn \__ptxcd_signature_image:nn {
+ \parbox[b]{\l_ptxcd_signature_dim}{
+ \centering
+ \tl_if_empty:nF {#2} {{#2}}
+ \par\nointerlineskip\rule{\linewidth}{.3pt}\\\makebox[0pt][c]{#1}%
+ }%
+ \skip_horizontal:N \l_ptxcd_signature_skip
+}
+
+\NewDocumentCommand{\declarationOfAuthorship}{o}{
+ \clearpage
+ \thispagestyle{plain}
+ \chapter*{\GetTranslation{doa-heading}}
+ \begingroup
+ \KOMAoptions{parskip=full}
+ \GetTranslation{doa-body}
+ \begin{flushright}
+ \raisebox{1.3\baselineskip}{\@date}\hfill
+ \setlength{\baselineskip}{4\baselineskip}
+ \IfNoValueTF{#1}{
+ \tl_if_empty:NTF \g__ptxcd_signature_tl
+ {\seq_map_inline:Nn \g_ptxcd_author_seq {\SignatureBox{##1}}}
+ {\exp_args:NV \SignatureBox \g__ptxcd_signature_tl}
+ }{
+ \SignatureBox{#1}
+ }
+ \end{flushright}
+ \endgroup
+} % End declarationOfAuthorship
+
+%custom config depends on department_str
+\file_if_exist_input:n {bfh\g_ptxcd_department_str.cfg}
+
+\endinput
+%End of class bfhthesis.cls
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhtranslations-english.trsl b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-english.trsl
new file mode 100644
index 0000000000..7bf19e472b
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-english.trsl
@@ -0,0 +1,68 @@
+\ProvideDictionaryFor{English}{bfhtranslations}[2021/12/13]
+%% ==== Translations for
+\ProvideDictTranslation{Learning Objectives}{Learning Objectives}
+\ProvideDictTranslation{learning objectives}{learning objectives}
+\ProvideDictTranslation{topic of study}{topic of study}
+\ProvideDictTranslation{Topic of study}{Topic of study}
+\ProvideDictTranslation{Module name}{Module name}
+\ProvideDictTranslation{module name}{module name}
+\ProvideDictTranslation{author}{author}
+\ProvideDictTranslation{Author}{Author}
+\ProvideDictTranslation{authors}{authors}
+\ProvideDictTranslation{Authors}{Authors}
+\ProvideDictTranslation{advisor}{advisor}
+\ProvideDictTranslation{Advisor}{Advisor}
+\ProvideDictTranslation{advisors}{advisors}
+\ProvideDictTranslation{Advisors}{Advisors}
+\ProvideDictTranslation{co-advisor}{co-advisor}
+\ProvideDictTranslation{Co-advisor}{Co-advisor}
+\ProvideDictTranslation{co-advisors}{co-advisors}
+\ProvideDictTranslation{Co-advisors}{Co-advisors}
+\ProvideDictTranslation{expert}{expert}
+\ProvideDictTranslation{Expert}{Expert}
+\ProvideDictTranslation{experts}{experts}
+\ProvideDictTranslation{Experts}{Experts}
+\ProvideDictTranslation{project partner}{project partner}
+\ProvideDictTranslation{Project partner}{Project partner}
+\ProvideDictTranslation{project partners}{project partners}
+\ProvideDictTranslation{Project partners}{Project partners}
+\ProvideDictTranslation{Company}{Company}
+\ProvideDictTranslation{company}{company}
+\ProvideDictTranslation{Supervisor}{Supervisor}
+\ProvideDictTranslation{supervisor}{supervisor}
+\ProvideDictTranslation{Co-Supervisor}{Co-supervisor}
+\ProvideDictTranslation{co-supervisor}{co-supervisor}
+\ProvideDictTranslation{degreeprogram}{course of study}
+\ProvideDictTranslation{Degreeprogram}{Course of study}
+\ProvideDictTranslation{Date}{Date}
+\ProvideDictTranslation{date}{date}
+\ProvideDictTranslation{Bern University of Applied Sciences}{Bern University of Applied Sciences}
+\ProvideDictTranslation{bfh}{BUAS}
+\ProvideDictTranslation{bfhti}{Engineering and Information Technology} % Departement TI
+%%
+%% === Translations for project proposal dates
+\ProvideDictTranslation{Project start}{Project start}
+\ProvideDictTranslation{Pre-study submission}{Pre-study submission}
+\ProvideDictTranslation{Report submission}{Report submission}
+\ProvideDictTranslation{Presentation}{Presentation}
+%%
+%% ==== Translations for Exams
+\ProvideDictTranslation{bfhproblem}{Problem} % Problem, question or exercise?
+\ProvideDictTranslation{bfhexamid}{Exam-ID} % Student-ID
+\ProvideDictTranslation{bfhpoints}{Points} % Points for a problem
+\ProvideDictTranslation{bfhreachedpoints}{Reached Points} % Points reached by the student
+\ProvideDictTranslation{bfhexperiencegrade}{Experience Grade} % Grade of the experience part
+\ProvideDictTranslation{bfhmaxpoints}{Max. Points} % Maximum of points
+\ProvideDictTranslation{bfhexamgrade}{Grade} % Grade for the exam
+\ProvideDictTranslation{bfhweightedaverage}{weighted average} % Average for exam and experience
+\ProvideDictTranslation{bfhmodulegrade}{Module Grade} % Final Grade
+\ProvideDictTranslation{bfhproblemshortcut}{P} % shortcut for the execise number
+\ProvideDictTranslation{bfhadvice}{Advice} % Title for the Advice Section
+\ProvideDictTranslation{bfhcontinued}{continued} % Subtitle the backside of the exercise sheets
+\ProvideDictTranslation{name}{name}
+\ProvideDictTranslation{Name}{Name}
+%%
+%% ==== Translations for ....
+%\ProvideDictTranslation{key}{value}
+%%
+\endinput% End of file bfhtranslations-english.trsl
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhtranslations-french.trsl b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-french.trsl
new file mode 100644
index 0000000000..91d9d31c79
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-french.trsl
@@ -0,0 +1,69 @@
+\ProvideDictionaryFor{French}{bfhtranslations}[2021/12/13]
+%%
+%% ==== Translations for
+\ProvideDictTranslation{Learning Objectives}{Objectifs}
+\ProvideDictTranslation{learning objectives}{objectifs}
+\ProvideDictTranslation{topic of study}{sujet d'étude}
+\ProvideDictTranslation{Topic of study}{Sujet d'étude}
+\ProvideDictTranslation{Module name}{Nom du module}
+\ProvideDictTranslation{module name}{nom du module}
+\ProvideDictTranslation{author}{auteur}
+\ProvideDictTranslation{Author}{Auteur}
+\ProvideDictTranslation{authors}{auteurs}
+\ProvideDictTranslation{Authors}{Auteurs}
+\ProvideDictTranslation{advisor}{conseiller}
+\ProvideDictTranslation{Advisor}{Conseiller}
+\ProvideDictTranslation{advisors}{conseillers}
+\ProvideDictTranslation{Advisors}{Conseillers}
+\ProvideDictTranslation{co-advisor}{co-conseiller}
+\ProvideDictTranslation{Co-advisor}{Co-Conseiller}
+\ProvideDictTranslation{co-advisors}{co-conseiller}
+\ProvideDictTranslation{Co-advisors}{Co-Conseillers}
+\ProvideDictTranslation{expert}{expert}
+\ProvideDictTranslation{Expert}{Expert}
+\ProvideDictTranslation{experts}{experts}
+\ProvideDictTranslation{Experts}{Experts}
+\ProvideDictTranslation{project partner}{partenaire du projet}
+\ProvideDictTranslation{Project partner}{Partenaire du projet}
+\ProvideDictTranslation{project partners}{partenaires du projet}
+\ProvideDictTranslation{Project partners}{Partenaires du projet}
+\ProvideDictTranslation{Supervisor}{Superviseur}
+\ProvideDictTranslation{supervisor}{superviseur}
+\ProvideDictTranslation{Co-Supervisor}{Co-superviseur}
+\ProvideDictTranslation{co-supervisor}{co-superviseur}
+\ProvideDictTranslation{Company}{Entreprise}
+\ProvideDictTranslation{company}{entreprise}
+\ProvideDictTranslation{degreeprogram}{filière d'etude}
+\ProvideDictTranslation{Degreeprogram}{Filière d'etude}
+\ProvideDictTranslation{Date}{Date}
+\ProvideDictTranslation{date}{date}
+\ProvideDictTranslation{Bern University of Applied Sciences}{Haute \'ecole sp\'ecialis\'ee bernoise}
+\ProvideDictTranslation{bfh}{HESB}
+\ProvideDictTranslation{bfhti}{Technique et informatique} % Departement TI
+%%
+%% === Translations for project proposal dates
+\ProvideDictTranslation{Project start}{Début du projet}
+\ProvideDictTranslation{Pre-study submission}{Remise pré-étude}
+\ProvideDictTranslation{Report submission}{Remise rapport}
+\ProvideDictTranslation{Presentation}{Présentation}
+%%
+%% ==== Translations for Exams
+\ProvideDictTranslation{bfhproblem}{Probèm} % Problem, question or exercise?
+\ProvideDictTranslation{bfhexamid}{Exam-ID} % Student-ID
+\ProvideDictTranslation{bfhpoints}{Points} % Points for a problem
+\ProvideDictTranslation{bfhreachedpoints}{Points atteints} % Points reached by the student
+\ProvideDictTranslation{bfhexperiencegrade}{Note d'expérience} % Grade of the experience part
+\ProvideDictTranslation{bfhmaxpoints}{Points Max} % Maximum of points
+\ProvideDictTranslation{bfhexamgrade}{\'Echelon} % Grade for the exam
+\ProvideDictTranslation{bfhweightedaverage}{moyen pondéré} % Average for exam and experience
+\ProvideDictTranslation{bfhmodulegrade}{note de cours} % Final Grade
+\ProvideDictTranslation{bfhproblemshortcut}{P} % shortcut for the execise number
+\ProvideDictTranslation{bfhadvice}{Conseils} % Title for the Advice Section
+\ProvideDictTranslation{bfhcontinued}{suite} % Subtitle the backside of the exercise sheets
+\ProvideDictTranslation{name}{nom}
+\ProvideDictTranslation{Name}{Nom}
+%%
+%% ==== Translations for ....
+%\ProvideDictTranslation{key}{value}
+%%
+\endinput% End of file bfhtranslations-french.trsl \ No newline at end of file
diff --git a/macros/latex/contrib/bfh-ci/tex/bfhtranslations-german.trsl b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-german.trsl
new file mode 100644
index 0000000000..d5ff5eda91
--- /dev/null
+++ b/macros/latex/contrib/bfh-ci/tex/bfhtranslations-german.trsl
@@ -0,0 +1,68 @@
+\ProvideDictionaryFor{German}{bfhtranslations}[2021/12/15]
+%% ==== Translations for
+\ProvideDictTranslation{Learning Objectives}{Lernziele}
+\ProvideDictTranslation{learning objectives}{Lernziele}
+\ProvideDictTranslation{topic of study}{Studienrichtung}
+\ProvideDictTranslation{Topic of study}{Studienrichtung}
+\ProvideDictTranslation{Module name}{Modulname}
+\ProvideDictTranslation{module name}{Modulname}
+\ProvideDictTranslation{author}{Autor}
+\ProvideDictTranslation{Author}{Autor}
+\ProvideDictTranslation{authors}{Autoren}
+\ProvideDictTranslation{Authors}{Autoren}
+\ProvideDictTranslation{advisor}{Dozent}
+\ProvideDictTranslation{Advisor}{Dozent}
+\ProvideDictTranslation{advisors}{Dozenten}
+\ProvideDictTranslation{Advisors}{Dozenten}
+\ProvideDictTranslation{co-advisor}{Mitbetreuer}
+\ProvideDictTranslation{Co-advisor}{Mitbetreuer}
+\ProvideDictTranslation{co-advisors}{Mitbetreuer}
+\ProvideDictTranslation{Co-advisors}{Mitbetreuer}
+\ProvideDictTranslation{expert}{Expert}
+\ProvideDictTranslation{Expert}{Expert}
+\ProvideDictTranslation{experts}{Experten}
+\ProvideDictTranslation{Experts}{Experten}
+\ProvideDictTranslation{project partner}{Projekt Partner}
+\ProvideDictTranslation{Project partner}{Projekt Partner}
+\ProvideDictTranslation{project partners}{Projekt Partner}
+\ProvideDictTranslation{Project partners}{Projekt Partner}
+\ProvideDictTranslation{Supervisor}{Betreuer}
+\ProvideDictTranslation{supervisor}{Betreuer}
+\ProvideDictTranslation{Co-Supervisor}{Co-Betreuer}
+\ProvideDictTranslation{co-supervisor}{Co-Betreuer}
+\ProvideDictTranslation{Company}{Firma}
+\ProvideDictTranslation{company}{Firma}
+\ProvideDictTranslation{degreeprogram}{Studiengang}
+\ProvideDictTranslation{Degreeprogram}{Studiengang}
+\ProvideDictTranslation{Date}{Datum}
+\ProvideDictTranslation{date}{Datum}
+\ProvideDictTranslation{Bern University of Applied Sciences}{Berner Fachhochschule}
+\ProvideDictTranslation{bfh}{BFH}
+\ProvideDictTranslation{bfhti}{Technik und Informatik} % Departement TI
+%%
+%% === Translations for project proposal dates
+\ProvideDictTranslation{Project start}{Projektbeginn}
+\ProvideDictTranslation{Pre-study submission}{Abgabe Vorstudie}
+\ProvideDictTranslation{Report submission}{Abgabe Bericht}
+\ProvideDictTranslation{Presentation}{Präsentation}
+%%
+%% ==== Translations for Exams
+\ProvideDictTranslation{bfhproblem}{Aufgabe}% Problem, question or exercise?
+\ProvideDictTranslation{bfhexamid}{Klausur-ID} % Student-ID
+\ProvideDictTranslation{bfhpoints}{Punkte}% Points for a problem
+\ProvideDictTranslation{bfhreachedpoints}{erreichte Punkte} % Points reached by the student
+\ProvideDictTranslation{bfhmaxpoints}{Max. Punkte} % Maximum of points
+\ProvideDictTranslation{bfhexamgrade}{Note} % Grade for the exam
+\ProvideDictTranslation{bfhexperiencegrade}{Erfahrungsnote} % Grade of the experience part
+\ProvideDictTranslation{bfhweightedaverage}{Durchschnittsnote}% Average for exam and experience
+\ProvideDictTranslation{bfhmodulegrade}{Modulnote} % Final Grade
+\ProvideDictTranslation{bfhproblemshortcut}{P} % shortcut for the execise number
+\ProvideDictTranslation{bfhadvice}{Hinweise} % Title for the Advice Section
+\ProvideDictTranslation{bfhcontinued}{Fortsetzung} % Subtitle the backside of the exercise sheets
+\ProvideDictTranslation{Name}{Name}
+\ProvideDictTranslation{name}{Name}
+%%
+%% ==== Translations for ....
+%\ProvideDictTranslation{key}{value}
+%%
+\endinput% End of file bfhtranslations-german.trsl \ No newline at end of file
diff --git a/macros/latex/contrib/europecv/CHANGELOG.rst b/macros/latex/contrib/europecv/CHANGELOG.rst
index 83c0bb691b..2f3ecb0183 100644
--- a/macros/latex/contrib/europecv/CHANGELOG.rst
+++ b/macros/latex/contrib/europecv/CHANGELOG.rst
@@ -2,8 +2,9 @@
Changelog for package europecv
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-20XX.XX.XX
+2021.12.24
----------
+* Add ref and display commands for FootNote, Conference and Journal papers, Posters, Awards, Research Projects, Book Chapters and Workshop. This update mainly involves academic researchers
* Files comply with the CTAN requirements
* Update templates as required by CTAN
* Contributors: Giuseppe Silano
@@ -12,7 +13,7 @@ Changelog for package europecv
----------
* Update package documentation for new release
* Fix condensed fontseries name on the narrow option (#25)
-* Contributors: pancho horrillo, Giuseppe Silano
+* Contributors: Pancho Horrillo, Giuseppe Silano
2021.02.05
----------
diff --git a/macros/latex/contrib/europecv/README.md b/macros/latex/contrib/europecv/README.md
index 604cb62fd6..4f22d856cb 100644
--- a/macros/latex/contrib/europecv/README.md
+++ b/macros/latex/contrib/europecv/README.md
@@ -17,6 +17,8 @@ Therefore, you can independently change the content of the translation files by
Conversely, the ```.cls``` file contains the heart of the code. You can use it to redefine the package by adding your functionality. In such case, please feel free to share your code with the community members that already use EuropeCV.
+> In case you want to make changes or fix bugs in Linux distributions, you can find `europecv.cls` under the `/usr/share/texlive/texmf-dist/tex/latex/europecv` path.
+
# Pull request template
Well, if you are reading this section it means that you are thinking of helping me to make EuropeCV big! :) Before helping me, developing your features or fixing a bug, please consider the few rules listed below:
diff --git a/macros/latex/contrib/europecv/europecv.cls b/macros/latex/contrib/europecv/europecv.cls
index 6e16c42c6f..2febdbe04d 100644
--- a/macros/latex/contrib/europecv/europecv.cls
+++ b/macros/latex/contrib/europecv/europecv.cls
@@ -1,12 +1,13 @@
%!TEX encoding = UTF-8 Unicode
%
% European curriculum vitae class
-% Author: Nicola Vitacolonna (nicola.vitacolonna@uniud.it) and Giuseppe Silano (giuseppe.silano@unisannio.it)
+% Author: Nicola Vitacolonna (nicola.vitacolonna@uniud.it) and Giuseppe Silano
+%(giuseppe.silano@fel.cvut.cz)
% This material is subject to the LaTeX Project Public License, either version 1.3
% See https://ctan.mirror.garr.it/mirrors/CTAN/help/Catalogue/licenses.lppl.html
% for the details of that license
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{europecv}[05/10/2021 (Unicode TeX detection) European curriculum vitae class]
+\ProvidesClass{europecv}[24/12/2021 (Unicode TeX detection) European curriculum vitae class]
% CV models and instructions:
% http://europass.cedefop.eu.int/htm/index.htm
@@ -300,6 +301,113 @@
\PassOptionsToClass{\CurrentOption}{article}%
}
+
+%%%%%%% Counters
+%%%%%% FootNote counter for blfootnote
+\newcounter{FootNoteCounter}
+\setcounter{FootNoteCounter}{0}
+
+\newcommand{\ecvdisplayFootNoteCounter}[1][]{%
+ \stepcounter{FootNoteCounter}%
+ \hypertarget{#1}{\textsuperscript{\theFootNoteCounter}}%
+}
+
+\newcommand{\ecvrefFootNoteCounter}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Conference publications - the '%' symbol it is used to avoid undesired spaces
+\newcounter{ConferencePublications}
+\setcounter{ConferencePublications}{0}
+
+\newcommand{\ecvdisplayConferencePublications}[1][]{%
+ \stepcounter{ConferencePublications}%
+ \hypertarget{#1}{[C\theConferencePublications]}%
+}
+
+\newcommand{\ecvrefConferencePublications}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Book Chapters publications - the '%' symbol it is used to avoid undesired spaces
+\newcounter{BookChapterPublications}
+\setcounter{BookChapterPublications}{0}
+
+\newcommand{\ecvdisplayBookChapterPublications}[1][]{%
+ \stepcounter{BookChapterPublications}%
+ \hypertarget{#1}{[BC\theBookChapterPublications]}%
+}
+
+\newcommand{\ecvrefBookChapterPublications}[1][]{%
+ \myhyperlink{#1}%
+}
+
+
+%%%%%% ReferredJournals - the '%' symbol it is used to avoid undesired spaces
+\newcounter{ReferredJournalsPublications}
+\setcounter{ReferredJournalsPublications}{0}
+
+\newcommand{\ecvdisplayReferredJournalsPublications}[1][]{%
+ \stepcounter{ReferredJournalsPublications}%
+ \hypertarget{#1}{[J\theReferredJournalsPublications]}%
+}
+
+\newcommand{\ecvrefReferredJournalsPublications}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Workshop - the '%' symbol it is used to avoid undesired spaces
+\newcounter{Workshops}
+\setcounter{Workshops}{0}
+
+\newcommand{\ecvdisplayWorkshops}[1][]{%
+ \stepcounter{Workshops}%
+ \hypertarget{#1}{[W\theWorkshops]}%
+}
+
+\newcommand{\ecvrefWorkshopsPublications}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Posters - the '%' symbol it is used to avoid undesired spaces
+\newcounter{Posters}
+\setcounter{Posters}{0}
+
+\newcommand{\ecvdisplayPosters}[1][]{%
+ \stepcounter{Posters}%
+ \hypertarget{#1}{[P\thePosters]}%
+}
+
+\newcommand{\ecvrefPosters}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Research Projects - the '%' symbol it is used to avoid undesired spaces
+\newcounter{ResearchProjects}
+\setcounter{ResearchProjects}{0}
+
+\newcommand{\ecvdisplayResearchProjects}[1][]{%
+ \stepcounter{ResearchProjects}%
+ \hypertarget{#1}{[RP\theResearchProjects]}%
+}
+
+\newcommand{\ecvrefResearchProjects}[1][]{%
+ \myhyperlink{#1}%
+}
+
+%%%%%% Awards - the '%' symbol it is used to avoid undesired spaces
+\newcounter{Awards}
+\setcounter{Awards}{0}
+
+\newcommand{\ecvdisplayAwards}[1][]{%
+ \stepcounter{Awards}%
+ \hypertarget{#1}{[A\theAwards]}%%
+}
+
+\newcommand{\ecvrefAwards}[1][]{%
+ \myhyperlink{#1}%
+}
+
\ExecuteOptions{english,noflag,logo,hrule} % Default options
\ProcessOptions\relax
@@ -338,6 +446,23 @@
\ecvfootnote{}
\AtBeginDocument{%
+
+\RequirePackage{etoolbox} %important for \AfterPreamble
+
+% To user hypertargets
+\RequirePackage{hyperref}%
+\let\oldhypertarget\hypertarget%
+\renewcommand{\hypertarget}[2]{%
+ \oldhypertarget{#1}{#2}%
+ \protected@write\@mainaux{}{%
+ \string\expandafter\string\gdef%
+ \string\csname\string\detokenize{#1}\string\endcsname{#2}%
+ }%
+}%
+\newcommand{\myhyperlink}[1]{%
+ \hyperlink{#1}{\csname #1\endcsname}%
+}%
+
% Ensure that \ecv@leftcolwidth and \ecv@rightcolwidth
% are correctly defined
\ecvLeftColumnWidth{\ecv@leftcolwidth}
diff --git a/macros/latex/contrib/europecv/europecv.pdf b/macros/latex/contrib/europecv/europecv.pdf
index 4aa8db3fb8..fc46c3db77 100644
--- a/macros/latex/contrib/europecv/europecv.pdf
+++ b/macros/latex/contrib/europecv/europecv.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/europecv.tex b/macros/latex/contrib/europecv/europecv.tex
index 7a3d8518a7..753765a3bd 100644
--- a/macros/latex/contrib/europecv/europecv.tex
+++ b/macros/latex/contrib/europecv/europecv.tex
@@ -51,7 +51,7 @@
Faculty of Electrical Engineering\\
Czech Technical University in Prague, Czech Republic\\
}
-\date{May 10, 2021}
+\date{December 24, 2021}
\begin{document}
@@ -86,9 +86,16 @@ contributors list (at the end of the manual).
\textbf{\large{1\hspace{0.5cm}Overview}}
\vspace{0.25cm}
-This class is an unofficial \LaTeX\ implementation of the standard model for curricula vit\ae\ (the \emph{Europass~CV\/}) as recommended by the European Commission.\footnote{\url{http://europa.eu.int/scadplus/leg/en/cha/c11057.htm}.} The Europass~CV replaces the European CV, launched in~2002.
+This class is an unofficial \LaTeX\ implementation of the standard model for curricula vit\ae\ (the
+\emph{Europass~CV\/}) as recommended by the European
+Commission\footnote{\url{http://europa.eu.int/scadplus/leg/en/cha/c11057.htm}.}. The Europass~CV
+replaces the European CV, launched in~2002.
-The Europass~CV defines both the content and the layout of a curriculum vit\ae. The \textsf{europecv} class provides support for the latter, and for the former as far as personal information and spoken languages are concerned. If you want to know how the content of a Europass~CV must be structured you must read the documentation provided by the Europass website.\footnote{\url{http://europass.cedefop.eu.int/htm/index.htm}.}
+The Europass~CV defines both the content and the layout of a curriculum vit\ae. The
+\textsf{europecv} class provides support for the latter, and for the former as far as personal
+information and spoken languages are concerned. If you want to know how the content of a
+Europass~CV must be structured you must read the documentation provided by the Europass
+website\footnote{\url{http://europass.cedefop.eu.int/htm/index.htm}.}.
This class tries to be as close as possible to the standard model without sacrificing flexibility.
Although it is primarily intended for users of the European Union, the class can be used for any
@@ -111,7 +118,8 @@ A minimal (empty) curriculum vit\ae, quite similar to the official one, can be o
\end{verbatim}
\end{quote}
-This produces the following output, having only the \emph{title} (``Europass Curriculum Vit\ae''), and the Europass logo:\footnote{It also produces a footer with the page number, not shown here.}
+This produces the following output, having only the \emph{title} (``Europass Curriculum Vit\ae''),
+and the Europass logo\footnote{It also produces a footer with the page number, not shown here.}:
\bigskip\medskip
{
@@ -137,19 +145,29 @@ The following options can be used with the \texttt{\textbackslash documentclass}
\texttt{\textbackslash
documentclass[latin1,helvetica,narrow,italian,logo,notitle,nobranding,totpages]\{europecv\}}
\end{quote}
+
\renewcommand*{\ecvtitle}{}
\renewcommand*{\draweuropasslogo}{}
+
\begin{europecv}
\section{Input encoding}
\ecvitem[10pt]{\textbf{Important!}}{The default input encoding for the \textsf{europecv} class is UTF-8. If you have a Unicode capable text editor, you should be able to directly type text with accents, diacritics and so on (i.e., no need to use \LaTeX\ commands for special characters). In order for this to work, you must ensure that your document is saved using the UTF-8 text encoding. As an alternative, you may specify a different input encoding for your document (see options below). Please note that the \textsf{ucs} and \textsf{inputenc} packages are needed no matter which encoding you use (see Section~\ref{sec:dependencies}).}
\ecvitem{\texttt{utf8}}{Chooses UTF-8 input encoding. This is the default.}
\ecvitem[15pt]{Other options}{The other available input encodings are: \texttt{ansinew}, \texttt{applemac}, \texttt{ascii}, \texttt{cp850}, \texttt{cp852}, \texttt{cp858}, \texttt{cp437}, \texttt{cp437de}, \texttt{cp865}, \texttt{cp866}, \texttt{cp1250}, \texttt{cp1251}, \texttt{cp1252}, \texttt{cp1257}, \texttt{decmulti}, \texttt{koi8-r}, \texttt{koi8-ru}, \texttt{koi8-u}, \texttt{latin1}, \texttt{latin2}, \texttt{latin3}, \texttt{latin4}, \texttt{latin5}, \texttt{latin9}, \texttt{latin10}, \texttt{maccyr}, \texttt{macukr}, \texttt{next}.}
- \ecvitem{Notes}{Any of the above options causes the \textsf{inputenc} package to be loaded with the specified encoding,\footnote{\texttt{utf8} loads \textsf{inputenc} with the option~\texttt{utf8x}.} so that you do not have to load that package in your document.}
+ \ecvitem{Notes}{Any of the above options causes the \textsf{inputenc} package to be loaded with
+ the specified encoding\footnote{\texttt{utf8}, loads \textsf{inputenc} with the
+ option~\texttt{utf8x}.} so that you do not have to load that package in your document.}
+
\section{Font options}
\ecvitem{\texttt{helvetica}}{Uses Helvetica as the default font.}
\ecvitem{\texttt{arial}}{Uses Arial as the default font. In order for this option to take effect, the font must have been installed and must be accessible through \LaTeX.
- How to install fonts in \LaTeX\ goes beyond the scope of this document: read \emph{The Font Installation Guide} you can find on CTAN. The \textsf{europecv} class expects the font filenames to use \texttt{m} for the supplier (Monotype) and \texttt{a1} for the typeface (Arial). For more information, please refer to the \emph{Fontname} guide you can find on CTAN.}
+ How to install fonts in \LaTeX\ goes beyond the scope of this document: read \emph{The Font
+ Installation Guide} you can find on CTAN. The \textsf{europecv} class expects the font
+ filenames to use \texttt{m} for the supplier (Monotype) and \texttt{a1} for the typeface
+ (Arial). For more information, please refer to the \emph{Fontname} guide you can find on
+ CTAN.}
+
\ecvitem[15pt]{\texttt{narrow}}{Uses a condensed version of the font. This option must be used with either \texttt{helvetica} or~\texttt{arial}.}
\ecvitem{Notes}{If no font option is specified, \textsf{europecv} will use the current font.}
@@ -207,7 +225,7 @@ The following options can be used with the \texttt{\textbackslash documentclass}
\textbf{IMPORTANT:} In case some translations are wrong, please, do not hesitate to correct
the information reported in the translation files, i.e., \textsf{.def}. The suffix ``it'',
``de'', and so on, indicates the language (e.g., ``it'' means Italian, ``de'' German,
- etc.).}
+ etc.). Pull requests on the GitHub repository are always welcome. So, don't be shy ;).}
\ecvitem{About unfinished translations}{The localizations marked as ``not yet completed'' lack the translation of the following:
\begin{itemize}
\item ``Basic user''
@@ -257,6 +275,7 @@ The following options can be used with the \texttt{\textbackslash documentclass}
\vspace{0.25cm}
\begin{europecv}
+
\section{Personal information}
\ecvitem{\ecv{date}\texttt{\{}\textit{date}\texttt{\}}}{Sets CV update date to \emph{date}. To
enter the current date use the \texttt{$\setminus$}\texttt{today} command.}
@@ -365,7 +384,6 @@ The above will produce the following output:
\end{europecv}
}
-
If you do not want to use so much space, you may add some negative space with \ecv{space} in order to raise the personal information block. In this case, the picture should be put at the rightmost position. The following is an example that shows how to put your personal picture on the side of the personal information block:
\begin{quote}
\begin{verbatim}
@@ -434,6 +452,7 @@ Note that if your personal data (e.g., your address) is long enough, then some t
%\ecvNoHorRule
\begin{europecv}
+
\section{Sectioning commands}
\ecvitem{\texttt{\textbackslash}{\texttt{section}}\texttt{[}\textit{vspace}\texttt{]}\texttt{\{}\textit{title}\texttt{\}}}{Starts a new section. For example, the current section has been started with \texttt{\textbackslash}{\texttt{section}}\texttt{\{Sectioning commands\}}.}
\ecvitem{\texttt{\textbackslash}{\texttt{ecvsection}}\texttt{[}\textit{vspace}\texttt{]}\texttt{\{}\textit{title}\texttt{\}}}{\textbf{Deprecated. It is still available for backward compatibility.} Starts a new section. For example, the current section has been started with \texttt{\textbackslash}{\texttt{ecvsection}}\texttt{\{Sectioning commands\}}.
@@ -445,6 +464,7 @@ Note that if your personal data (e.g., your address) is long enough, then some t
\ecv{item}\texttt{[15pt]\{...\}\{...\}}
\end{quote}
}
+
\section{Spoken languages}
\ecvitem{\ecv{mothertongue}\texttt{[}\textit{vspace}\texttt{]} \texttt{\{}\textit{language}\texttt{\}}}{Typesets the mother tongue.}
\ecvitem{\ecv{languageheader}\texttt{\{}\textit{symbol}\texttt{\}}}{Typesets the header of the language table. The argument is a symbol used as a footnote symbol referring to the language table footer (see below).}
@@ -469,6 +489,74 @@ Note that if your personal data (e.g., your address) is long enough, then some t
\ecvitem{\ecv{BTwo}}{Predefined level description: independent user~(B2).}
\ecvitem{\ecv{COne}}{Predefined level description: proficient user~(C1).}
\ecvitem{\ecv{CTwo}}{Predefined level description: proficient user~(C2).}
+ %
+ \section{Research Activities}\label{p:alternativeBibliogrphy}
+ %
+ \ecvitem{\ecv{displayFootNote\\Counter} \texttt{[}\textit{key}\texttt{]}}
+ {As for the `$\backslash$label` command in \LaTeX. The command creates a cross link between the
+ ``key'' label and the reference command (i.e., {\ecv{refFootNoteCounter}). A counter is
+ incremented when a new label is created. \texttt{key} uniquely identifies the footnote into the
+ document text.}}
+ %
+ \ecvitem{\ecv{displayConference\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}}, but now the command is meant creating a reference to
+ conference papers.}
+ %
+ \ecvitem{\ecv{displayBookChapter\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}}, but now the command is meant creating a reference to
+ book chapter papers.}
+ %
+ \ecvitem{\ecv{displayReferredJournals\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}}, but now the command is meant creating a reference to
+ journal papers.}
+ %
+ \ecvitem{\ecv{displayWorkshops} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}, but now the command is meant creating a reference to
+ workshop papers.}}
+ %
+ \ecvitem{\ecv{displayPosters} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}, but now the command is meant creating a reference to
+ poster papers.}}
+ %
+ \ecvitem{\ecv{displayResearch\\Projects} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}}, but now the command is meant creating a reference to
+ research projects.}
+ %
+ \ecvitem{\ecv{displayAwards} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{displayFootNoteCounter}}, but now the command is meant creating a reference to
+ awards.}
+ %
+ %
+ \ecvitem{\ecv{refFootNote\\Counter} \texttt{[}\textit{key}\texttt{]}}
+ {Create a reference for the ``key'' in the {\ecv{displayFootNoteCounter}}.}
+ %
+ \ecvitem{\ecv{refConference\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference to
+ conference papers.}
+ %
+ \ecvitem{\ecv{refBookChapter\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference
+ to book chapter papers.}
+ %
+ \ecvitem{\ecv{refReferredJournals\\Publications} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{refFootNoteCounter}}, but now the command is meant creating a
+ reference to journal papers.}
+ %
+ \ecvitem{\ecv{refWorkshops} \texttt{[}\textit{key}\texttt{]}}
+ {Same as {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference to
+ workshop papers.}
+ %
+ \ecvitem{\ecv{refPosters} \texttt{[}\textit{key}\texttt{]}} {Same as
+ {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference to poster
+ papers.}
+ %
+ \ecvitem{\ecv{refResearch\\Projects} \texttt{[}\textit{key}\texttt{]}} {Same as
+ {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference to research
+ projects.}
+ %
+ \ecvitem{\ecv{refAwards} \texttt{[}\textit{key}\texttt{]}} {Same as
+ {\ecv{refFootNoteCounter}}, but now the command is meant creating a reference to awards.}
+ %
\end{europecv}
As an example, the following code inside the \texttt{europecv} environment:
@@ -539,6 +627,58 @@ If you have specified the \texttt{booktabs} class option, the spoken language ta
Note that you should use tight page margins to make the table fit comfortably.
+As an example for the ``Research Activities'' section, the following code inside the
+\texttt{europecv} environment:
+\begin{verbatim}
+\begin{europecv}
+ \section{Research Activities}
+ \ecvitem{}{\textsc{\textbf{Stability of piecewise-linear systems}}}
+ \ecvitem{}{Something related to the picewise-linear
+ systems~\ecvrefReferredJournalsPublications[keyJournalPaper1].}
+ %
+ \section{Publications}
+ \ecvitem{}{\textsc{\textbf{Referred Journals}}}
+ \ecvitem{\ecvdisplayReferredJournalsPublications[keyJournalPaper1]}{Journal paper reference.}
+ \ecvitem{\ecvdisplayReferredJournalsPublications[keyJournalPaper2]}{Journal paper reference.}
+\end{europecv}
+\end{verbatim}
+
+will produce something similar to the following:
+
+\ecvNoHorRule
+\ecvLeftColumnWidth{3.3cm}
+{
+ \fontfamily{phv}\selectfont
+ \begin{europecv}
+ \section{Research Activities}
+ \ecvitem{}{\textsc{\textbf{Stability of piecewise-linear systems}}}
+ \ecvitem{}{Something related to the picewise-linear
+ systems~\ecvrefReferredJournalsPublications[keyJournalPaper1].}
+ %
+ \section{Publications}
+ \ecvitem{}{\textsc{\textbf{Referred Journals}}}
+ \ecvitem{\ecvdisplayReferredJournalsPublications[keyJournalPaper1]}{Journal paper
+ reference.}
+ \ecvitem{\ecvdisplayReferredJournalsPublications[keyJournalPaper2]}{Journal paper
+ reference.}
+ \end{europecv}
+}
+%\ecvNoHorRule
+%\ecvLeftColumnWidth{3.3cm}
+%{
+% \fontfamily{phv}\selectfont
+% \begin{europecv}
+% \section{Research Activities}
+% \ecvitem{}{\textsc{\textbf{Research activity in short}}
+% \ecvitem{}{Research activity in long~\ecvrefReferredJournalsPublications[keyJournalPaper].}
+% %
+% \section{Publications}
+% \ecvitem{}{\textsc{\textbf{Referred Journals}}
+% \ecvitem{\ecvdisplayReferredJournalsPublications[keyJournalPaper]}{Journal paper
+% reference.}
+% \end{europecv}
+%}
+
\begin{europecv}
\section{Footer and Footnotes}
\ecvitem{\ecv{footnote}\texttt{\{}\textit{note}\texttt{\}}}{Puts a note in the footer of every page of the curriculum vit\ae.\footnote{Standard footnotes can also be used inside the \texttt{europecv} environment.} The note spans the right column width and it is justified. This command should appear in the preamble of your document.}
@@ -569,11 +709,15 @@ Some parameters can be set by using the following commands.
\ecvitem{\ecv{WithHorRule}}{Draws a horizontal rule at the beginning of the Europass~CV, which spans the first column. This is the default.}
\ecvitem{\ecv{NoHorRule}}{Does not draw the horizontal rule at the beginning of the Europass~CV. This part was typeset with \ecv{NoHorRule}.}
\ecvitem{\ecv{RuleWidth}\texttt{\{}\textit{width}\texttt{\}}}{Sets the thickness of the rules. The default is~\texttt{0.4pt}. This part has been typeset with \ecv{RuleWidth}\texttt{\{2pt\}}. The vertical rule can be omitted by setting this parameter to~\texttt{0pt}.}
- \ecvitem{\ecv{ExtraRowHeight}\texttt{\{}\textit{height}\texttt{\}}}{Puts extra space between \emph{all\/} subsequent items in the \texttt{europecv} environment (including rows of the spoken language table). The default is~\texttt{0pt}. This part has been typeset with \ecv{ExtraRowHeight}\texttt{\{10pt\}}.}
+ \ecvitem{\ecv{ExtraRowHeight}\\\texttt{\{}\textit{height}\texttt{\}}}{Puts extra space between
+ \emph{all\/} subsequent items in the \texttt{europecv} environment (including rows of the
+ spoken language table). The default is~\texttt{0pt}. This part has been typeset with
+ \ecv{ExtraRowHeight}\texttt{\{10pt\}}.}
\ecvitem{\ecv{ColSep}\texttt{\{}\textit{width}\texttt{\}}}{Sets the space between the vertical rule and the surrounding text. The default is~\texttt{12pt}. This part has been typeset with \ecv{ColSep}\texttt{\{20pt\}}.}
\ecvitem{\ecv{FlagWidth}\texttt{\{}\textit{width}\texttt{\}}}{Sets the size of the flag. The default is~\texttt{10mm}.}
\ecvitem{\ecv{LogoWidth}\texttt{\{}\textit{width}\texttt{\}}}{Sets the size of the Europass logo. The default is~\texttt{23mm}.}
- \ecvitem{\ecv{LogoOffset}\texttt{\{}\textit{offset}\texttt{\}}}{Adjusts the vertical position of the Europass logo. The default is~\texttt{1cm}.}
+ \ecvitem{\ecv{LogoOffset}\\\texttt{\{}\textit{offset}\texttt{\}}}{Adjusts the vertical position
+ of the Europass logo. The default is~\texttt{1cm}.}
\end{europecv}
\ecvExtraRowHeight{0pt}
@@ -595,11 +739,18 @@ Some parameters can be set by using the following commands.
\ecvLeftColumnWidth{5cm}
\ecvWithHorRule
+%%% END SECTION ============================================================
+
+%%% START SECTION ==========================================================
+
\vspace{0.5cm}
\textbf{\large{4\hspace{0.5cm}Bibliographies}}
\vspace{0.25cm}
-The main weakness of this class is related to bibliographies. If you insert a bibliography inside the \verb|europecv| environment with a command like:
+The main weakness of this class is related to bibliographies (an alternative solution is presented
+at page~\pageref{p:alternativeBibliogrphy}). If you insert a bibliography inside
+the \verb|europecv| environment with a command like:
+
\begin{quote}
\begin{verbatim}
\section{Additional Information}
@@ -608,9 +759,12 @@ The main weakness of this class is related to bibliographies. If you insert a bi
\bibliography{mypublications}}
\end{verbatim}
\end{quote}
+
the bibliography will flow out if it does not fit in the current page. The reason is that the \verb|europecv| environment is a \verb|longtable|, each~\ecv{item} corresponds to a row of the table, and a row cannot be split across pages. Therefore, you can safely put a bibliography using the \verb|\bibliography| command only outside the \verb|europecv| environment. Which may be or may not be what you want.
-Another possibility is to use the \textsf{bibentry} package, and put each \verb|\bibentry| command inside an \ecv{item} command:
+Another possibility is to use the \textsf{bibentry} package, and put each \verb|\bibentry| command
+inside an \ecv{item} command:
+
\begin{quote}
%\section{Additional Information}
\begin{verbatim}
@@ -620,7 +774,11 @@ Another possibility is to use the \textsf{bibentry} package, and put each \verb|
\ecvitem{}{\bibentry{pubN}}
\end{verbatim}
\end{quote}
-The drawback of this solution is that you have to use a \verb|\bibentry| command for each bibliography item you want to appear. If you have written many publications, this can be a pain in the neck. Unfortunately, the only solution I know is to write a script to perform the task automatically.
+
+The drawback of this solution is that you have to use a \verb|\bibentry| command for each
+bibliography item you want to appear. If you have written many publications, this can be a pain in
+the neck. Unfortunately, the only solution I know is to write a script to perform the task
+automatically.
Finally, you can add references to your publications using the commands (and also defining new ones following the same rules) \texttt{\textbackslash}{\texttt{conferencePublications}}\texttt{[Name of the label]} and \texttt{\textbackslash}{\texttt{refconferencePublications}} \texttt{[Name of the label]}. Below the code that you have to insert in the preamble.
diff --git a/macros/latex/contrib/europecv/examples/europass-cv.pdf b/macros/latex/contrib/europecv/examples/europass-cv.pdf
index a8b8ac3971..39fbccaac9 100644
--- a/macros/latex/contrib/europecv/examples/europass-cv.pdf
+++ b/macros/latex/contrib/europecv/examples/europass-cv.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf b/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
index 06470628a5..f20b86b552 100644
--- a/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
+++ b/macros/latex/contrib/europecv/templates/cv_template_academic_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/europecv/templates/cv_template_academic_en.tex b/macros/latex/contrib/europecv/templates/cv_template_academic_en.tex
index bbf206e9ae..d261837c5d 100644
--- a/macros/latex/contrib/europecv/templates/cv_template_academic_en.tex
+++ b/macros/latex/contrib/europecv/templates/cv_template_academic_en.tex
@@ -11,35 +11,6 @@
\renewcommand{\ttdefault}{phv} % Uses Helvetica instead of fixed width font
-\makeatletter
-\let\oldhypertarget\hypertarget
-\renewcommand{\hypertarget}[2]{%
- \oldhypertarget{#1}{#2}%
- \protected@write\@mainaux{}{%
- \string\expandafter\string\gdef
- \string\csname\string\detokenize{#1}\string\endcsname{#2}%
- }%
-}
-\newcommand{\myhyperlink}[1]{%
- \hyperlink{#1}{\csname #1\endcsname}%
-}
-\makeatother
-
-% The counters. They can be defined for each publication (journal papers, books, and so on).
-\newcounter{ConferencePublications}
-\setcounter{ConferencePublications}{0}
-
-% These commands have to be ridefined for each publication type (journal, paper, etc.)
-\newcommand{\conferencePublications}[1][]{
- \stepcounter{ConferencePublications}
- \hypertarget{#1}{[C\theConferencePublications]}
-
-}
-
-\newcommand{\refconferencesPublications}[1][]{
- \myhyperlink{#1}
-}
-
\newcommand*{\SignatureAndDate}[1]{%
\par\noindent\makebox[2.5in]{Place \textsc{(Province)}, \today}
\par\noindent\makebox[2.5in]{\hrulefill} \hfill\makebox[2.0in]{\hrulefill}%
@@ -189,7 +160,9 @@
\section{Research activities}
\ecvitem{}{\textbf{Stability of piecewise-linear systems}}
-\ecvitem{}{Something related to the piecewise-linear systems \refconferencesPublications[FirstPubLabel], \refconferencesPublications[SecondPubLabel] ad \refconferencesPublications[ThirdPubLabel].}
+\ecvitem{}{Something related to the piecewise-linear systems
+\ecvrefConferencePublications[FirstPubLabel], \ecvrefConferencePublications[SecondPubLabel] ad
+\ecvrefConferencePublications[ThirdPubLabel].}
\pdfbookmark{Publications}{Publications}
\section{Publications}
@@ -198,11 +171,14 @@
\ecvitem{}{\textbf{Refereed conference proceedings}}
\\
-\ecvitem[10pt]{\vspace{-0.25cm}\conferencePublications[FirstPubLabel]}{Details related to the conference paper}
+\ecvitem[10pt]{\vspace{-0.25cm}\ecvdisplayConferencePublications[FirstPubLabel]}{Details related to
+the conference paper}
-\ecvitem[10pt]{\vspace{-0.25cm}\conferencePublications[SecondPubLabel]}{Details related to the conference paper}
+\ecvitem[10pt]{\vspace{-0.25cm}\ecvdisplayConferencePublications[SecondPubLabel]}{Details related
+to the conference paper}
-\ecvitem[10pt]{\vspace{-0.25cm}\conferencePublications[ThirdPubLabel]}{Details related to the conference paper}
+\ecvitem[10pt]{\vspace{-0.25cm}\ecvdisplayConferencePublications[ThirdPubLabel]}{Details related to
+the conference paper}
\end{europecv}
diff --git a/macros/latex/contrib/europecv/templates/cv_template_en.pdf b/macros/latex/contrib/europecv/templates/cv_template_en.pdf
index c6b1fabda1..387817201d 100644
--- a/macros/latex/contrib/europecv/templates/cv_template_en.pdf
+++ b/macros/latex/contrib/europecv/templates/cv_template_en.pdf
Binary files differ
diff --git a/macros/latex/contrib/minted/minted.dtx b/macros/latex/contrib/minted/minted.dtx
index 3a15d7c1e6..3d2ac0219d 100644
--- a/macros/latex/contrib/minted/minted.dtx
+++ b/macros/latex/contrib/minted/minted.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-% Copyright (C) 2013-2017 by Geoffrey M. Poore <gpoore@gmail.com>
+% Copyright (C) 2013-2021 by Geoffrey M. Poore <gpoore@gmail.com>
% Copyright (C) 2010-2011 by Konrad Rudolph <konrad_rudolph@madrat.net>
% ---------------------------------------------------------------------------
% This work may be distributed and/or modified under the
@@ -31,7 +31,7 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{minted}
%<*package>
- [2017/07/19 v2.5 Yet another Pygments shim for LaTeX]
+ [2021/12/24 v2.6 Yet another Pygments shim for LaTeX]
%</package>
%<*driver>
\documentclass{ltxdoc}
@@ -49,10 +49,6 @@
\usepackage[svgnames]{xcolor}
\usepackage{textcomp}
\usepackage[cache, langlinenos]{minted}
-% Need to set the style here so that it is defined and brought in here.
-% If the style is set later, then docstrip interferes with any comments in
-% the style definition so that they appear as literal text in the document.
-\setminted{style=default}
\usepackage{environ}
\usepackage{graphicx}
@@ -61,6 +57,20 @@
\makeatletter
+% The typesetting for macrocode doesn't use \@noligs, which upquote modifies.
+% So apply the upquote fix to \verbatim@nolig@list as well, which is in macrocode.
+\begingroup
+\catcode`'=\active
+\catcode``=\active
+\g@addto@macro\verbatim@nolig@list{%
+ \let'\textquotesingle
+ \let`\textasciigrave
+ \ifx\encodingdefault\upquote@OTone
+ \ifx\ttdefault\upquote@cmtt
+ \def'{\char13 }%
+ \def`{\char18 }%
+ \fi\fi}
+\endgroup
% Create a short verbatim pipe that handles quotation marks properly
\begingroup
@@ -98,8 +108,8 @@
\g@addto@macro\changestext{\end{itemize}}%
}
\newcommand{\PrintChangelog}{%
- \addcontentsline{toc}{section}{Version History}
\section*{Version History}%
+ \addcontentsline{toc}{section}{Version History}
\label{sec:version-history}
\begin{description}%
\changestext
@@ -195,7 +205,7 @@
%</driver>
% \fi
%
-% \CheckSum{2604}
+% \CheckSum{2593}
%
% \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
@@ -216,6 +226,18 @@
%
%
%
+% \begin{changelog}{v2.6}{2021/12/24}
+% \item \texttt{autogobble} automatically uses \texttt{python} or \texttt{python3} executables, depending on availability, instead of requiring \texttt{python}. A custom executable can be specified by redefining \texttt{\string\MintedPython} (\#277, \#287).
+% \item Fixed \texttt{autogobble} compatibility with \texttt{fancyvrb} 4.0+ (\#315, \#316).
+% \item Pygments style names may now contain arbitrary non-whitespace characters. Previously, style names containing digits and some punctuation characters were incompatible (\#210, \#294, \#299, \#317). Pygments macros are now only defined just before use locally within \texttt{minted} commands and environments, rather than globally. Pygments macros now always use a \texttt{\string\PYG} prefix regardless of style, rather than a prefix of the form \texttt{\string\PYG<style>} (for example, what was previously \texttt{\string\PYGdefault} is now simply \texttt{\string\PYG}).
+% \item Removed Python-based MD5 hashing for XeTeX, which was necessary before XeTeX added \texttt{\string\mdfivesum} in 2017.
+% \item The default for \texttt{stripnl} is now \texttt{false}, so that original code is preserved exactly by default (\#198).
+% \item Added support for \texttt{fontencoding} option from \texttt{fvextra} (\#208).
+% \item Added note to FAQ about getting \texttt{texi2pdf} to work with \texttt{minted} given \texttt{texi2pdf}'s assumptions about temp files (\#186).
+% \item Reimplemented \texttt{bgcolor} option to be compatible with \texttt{color} package.
+% \end{changelog}
+%
+%
% \begin{changelog}{v2.5}{2017/07/19}
% \item The default placement for the \texttt{listing} float is now \texttt{tbp} instead of \texttt{h}, to parallel \texttt{figure} and \texttt{table} and also avoid warnings caused by \texttt{h} (\#165). The documentation now contains information about changing default placement. The \texttt{float} package is no longer loaded when the \texttt{newfloat} package option is used.
% \item Added support for \texttt{*nchars} options from \texttt{fvextra} v1.3 that allow setting \texttt{breaklines}-related indentation in terms of a number of characters, rather than as a fixed dimension.
@@ -543,6 +565,9 @@
% \item lineno
% \item framed
% \item shellesc (for luatex 0.87+)
+% \item catchfile
+%
+% ~
% \end{list}
% \endgroup
% \end{multicols}
@@ -815,6 +840,11 @@
% Compiling with the |finalizecache| option prepares the cache for use in an environment without |-shell-escape|.\footnote{Ordinarily, cache files are named using an MD5 hash of highlighting settings and highlighted text. \texttt{finalizecache} renames cache files using a \texttt{listing<number>.pygtex} scheme. This makes it simpler to match up document content and cache files, and is also necessary for the XeTeX engine since prior to TeX Live 2016 it lacked the built-in MD5 capabilities that pdfTeX and LuaTeX have.} Once this has been done, the |finalizecache| option may be swapped for the |frozencache| option, which will then use the frozen (static) cache in the future, without needing |-shell-escape|.
%
%
+% \DescribeMacro{fontencoding=\meta{encoding} (default:~\meta{doc~encoding})}
+% Set font encoding used for typesetting code.
+%
+% For example, |fontencoding=T1|.
+%
% \DescribeMacro{frozencache=\meta{boolean} (default:~false)}
% Use a frozen (static) cache created with the |finalizecache| option. When |frozencache| is on, |-shell-escape| is not needed, and Python and Pygments are not required. In addition, any external files accessed through |\inputminted| are no longer necessary.
%
@@ -1361,7 +1391,7 @@
%
% \item[stripall (boolean) (false)]
% Strip all leading and trailing whitespace from the input.
-% \item[stripnl (boolean) (true)]
+% \item[stripnl (boolean) (false)]
% Strip leading and trailing newlines from the input.
%
%
@@ -1481,7 +1511,7 @@
%
% \begin{itemize}
% \item \textbf{There are intermittent ``I can't write on file'' errors.} This can be caused by using \pkg{minted} in a directory that is synchronized with Dropbox or a similar file syncing program. These programs can try to sync \pkg{minted}'s temporary files while it still needs to be able to modify them. The solution is to turn off file syncing or use a directory that is not synced.
-% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{http://www.tug.dk/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \pkg{lmodern} package is a good place to start. The \pkg{beramono} and \pkg{courier} packages may also be good options.
+% \item \textbf{I receive a ``Font Warning: Some font shapes were not available'' message, or bold or italic seem to be missing.} This is due to a limitation in the font that is currently in use for typesetting code. In some cases, the default font shapes that \LaTeX\ substitutes are perfectly adequate, and the warning may be ignored. In other cases, the font substitutions may not clearly indicate bold or italic text, and you will want to switch to a different font. See The \LaTeX\ Font Catalogue's section on \href{http://www.tug.dk/FontCatalogue/typewriterfonts.html}{Typewriter Fonts} for alternatives. If you like the default \LaTeX\ fonts, the \pkg{lmodern} package is a good place to start. The \pkg{beramono} and \pkg{courier} packages may also be good options.
% \item \textbf{I receive a ``Too many open files'' error under OS X when using caching.} See the note on OS X under Section~\ref{sec:basic:preliminary}.
% \item \textbf{TeXShop can't find \texttt{pygmentize}.} You may need to create a symlink. See \url{https://tex.stackexchange.com/questions/279214}.
% \item \textbf{Weird things happen when I use the \pkg{fancybox} package.} \pkg{fancybox} conflicts with \pkg{fancyvrb}, which \pkg{minted} uses internally. When using \pkg{fancybox}, make sure that it is loaded before \pkg{minted} (or before \pkg{fancyvrb}, if \pkg{fancyvrb} is not loaded by \pkg{minted}).
@@ -1558,16 +1588,24 @@
% \item \textbf{I want extended characters in frame labels, but am getting errors.} This can happen with \pkg{minted} <2.0 and Python 2.7, due to a \href{https://bitbucket.org/birkenfeld/pygments-main/issue/801/python-2-fails-to-detect-terminal-encoding}{terminal encoding issue with Pygments}. It should work with any version of Python with \pkg{minted} 2.0+, which processes labels internally and does not send them to Python.
% \item \textbf{\texttt{minted} environments have extra vertical space inside \texttt{tabular}.} It is possible to \href{https://github.com/gpoore/minted/issues/82}{create a custom environment} that eliminates the extra space. However, a general solution that behaves as expected in the presence of adjacent text remains to be found.
% \item \textbf{I'm receiving a warning from \texttt{lineno.sty} that ``Command \texttt{\string\@parboxrestore} has changed.''} This can happen when \pkg{minted} is loaded after \pkg{csquotes}. Try loading \pkg{minted} first. If you receive this message when you are not using \pkg{csquotes}, you may want to experiment with the order of loading packages and might also open an issue.
+% \item \textbf{I'm using \app{texi2pdf}, and getting ``Cannot stat'' errors from \app{tar}}: This is due to the way that \app{texi2pdf} handles temporary files. \pkg{minted} automatically cleans up its temporary files, but \app{texi2pdf} assumes that any temporary file that is ever created will still exist at the end of the run, so it tries to access the files that \pkg{minted} has deleted. It's possible to disable minted's temp file cleanup by adding |\renewcommand{\DeleteFile}[2][]{}| after the |\usepackage{minted}|.
% \end{itemize}
%
%
%
%
% \section*{Acknowledgements}
+% \addcontentsline{toc}{section}{Acknowledgements}
%
-% Konrad Rudolph: Special thanks to Philipp Stephani and the rest of the guys from \texttt{comp.text.tex} and \texttt{tex.stackexchange.com}.
+% \textbf{Konrad Rudolph:} Special thanks to Philipp Stephani and the rest of the guys from \texttt{comp.text.tex} and \texttt{tex.stackexchange.com}.
%
-% Geoffrey Poore: Thanks to Marco Daniel for the code on \url{tex.stackexchange.com} that inspired automatic line breaking. Thanks to Patrick Vogt for improving TikZ externalization compatibility.
+% \textbf{Geoffrey Poore:}
+% \begin{itemize}
+% \item Thanks to Marco Daniel for the code on \url{tex.stackexchange.com} that inspired automatic line breaking.
+% \item Thanks to Patrick Vogt for improving TikZ externalization compatibility.
+% \item Thanks to \textsf{@muzimuzhi} for assistance with GitHub issues.
+% \item Thanks to \textsf{@jfbu} for suggestions and discussion regarding support for arbitrary Pygments style names (\#210, \#294, \#299, \#317), and for debugging assistance.
+% \end{itemize}
%
% \PrintChangelog
%
@@ -1601,6 +1639,7 @@
\RequirePackage{xstring}
\RequirePackage{lineno}
\RequirePackage{framed}
+\RequirePackage{catchfile}
% \end{macrocode}
%
% Make sure that either |color| or |xcolor| is loaded by the beginning of the document.
@@ -1923,7 +1962,7 @@
% \begin{macrocode}
\newboolean{AppExists}
\newread\minted@appexistsfile
-\newcommand{\TestAppExists}[1]{
+\newcommand{\TestAppExists}[1]{%
\ifwindows
% \end{macrocode}
%
@@ -1932,32 +1971,32 @@
% otherwise, it will contain the full path of the application.
%
% \begin{macrocode}
- \DeleteFile{\minted@jobname.aex}
+ \DeleteFile{\minted@jobname.aex}%
\ShellEscape{for \string^\@percentchar i in (#1.exe #1.bat #1.cmd)
do set > \minted@jobname.aex <nul: /p
- x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}
+ x=\string^\@percentchar \string~$PATH:i>> \minted@jobname.aex}%
%$ <- balance syntax highlighting
\immediate\openin\minted@appexistsfile\minted@jobname.aex
- \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}
+ \expandafter\def\expandafter\@tmp@cr\expandafter{\the\endlinechar}%
\endlinechar=-1\relax
\readline\minted@appexistsfile to \minted@apppathifexists
\endlinechar=\@tmp@cr
- \ifthenelse{\equal{\minted@apppathifexists}{}}
- {\AppExistsfalse}
- {\AppExiststrue}
+ \ifthenelse{\equal{\minted@apppathifexists}{}}%
+ {\AppExistsfalse}%
+ {\AppExiststrue}%
\immediate\closein\minted@appexistsfile
- \DeleteFile{\minted@jobname.aex}
+ \DeleteFile{\minted@jobname.aex}%
\else
% \end{macrocode}
%
% On Unix-like systems, we do a straightforward |which| test and create a file upon success, whose existence we can then check.
%
% \begin{macrocode}
- \ShellEscape{which #1 && touch \minted@jobname.aex}
- \IfFileExists{\minted@jobname.aex}
+ \ShellEscape{which #1 && touch \minted@jobname.aex}%
+ \IfFileExists{\minted@jobname.aex}%
{\AppExiststrue
- \DeleteFile{\minted@jobname.aex}}
- {\AppExistsfalse}
+ \DeleteFile{\minted@jobname.aex}}%
+ {\AppExistsfalse}%
\fi
}
% \end{macrocode}
@@ -2397,81 +2436,112 @@
% \end{macro}
%
%
-% \begin{macro}{\minted@checkstyle}
-% Make sure that style macros exist.
+% \begin{macro}{\minted@def@opt@detok}
+% Same as |\minted@def@opt|, except wraps argument in |\detokenize|.
+% \begin{macrocode}
+\newcommand{\minted@def@opt@detok}[2][]{%
+ \define@key{minted@opt@g}{#2}{%
+ \@namedef{minted@opt@g:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@g@i}{#2}{%
+ \@namedef{minted@opt@g@i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@lang@i}{#2}{%
+ \@namedef{minted@opt@lang\minted@lang @i:#2}{\detokenize{##1}}}
+ \define@key{minted@opt@cmd}{#2}{%
+ \@namedef{minted@opt@cmd:#2}{\detokenize{##1}}}
+ \ifstrempty{#1}{}{\@namedef{minted@opt@g:#2}{\detokenize{#1}}}%
+}
+% \end{macrocode}
+% \end{macro}
%
-% We have to do some tricks with |\endlinechar| to prevent |\input| from inserting unwanted whitespace. That is primarily for inline commands, where it would introduce a line break. There is also the very unorthodox |\let\def\gdef| to make sure that macros are defined globally. The catcodes for |-| and |_| must be changed during macro definition to accomodate style names like |paraiso-light|, |paraiso-dark|, and |algol_nu|. The catcode for |%| must be changed to the default value in case \pkg{minted} is being used in a |.dtx| file; otherwise, \LaTeX\ comments in the Pygments style files will appear as literal text.
%
-% If a style is not given, then revert to the |default| style, but create macros with prefix |PYG|, and create |default-pyg-prefix.pygstyle| if caching is on. This allows a graceful fallback in the event that style is empty. It is also purposefully used to create a complete set of macros with prefix |PYG|, so that the symbol macros may be used, as described next.
+% \begin{macro}{\minted@generate@PYGdef}
+% Generate Pygments style definition with |pygmentize| if a cached version does not exist. Load the style definition into a global macro of the form
+%\begin{Verbatim}
+%\csname minted@PYGdef@<style>\endcsname
+%\end{Verbatim}
+% to allow styles to be defined later. Styles are not defined globally to avoid naming issues with style names that involve punctuation characters and numbers. Rather, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix.
%
-% The typical style macros created by |\minted@checkstyle|, which are of the form |\PYG<style>|, are used indirectly. All code is highlighted with |commandprefix=PYG|, so that it uses |\PYG|. Then |\PYG| is |\let| to |\PYG<style>| as appropriate. This way, code need not be highlighted again when the style is changed. This has the disadvantage that none of the |\PYG<symbol>| macros will be defined; rather, only |\PYG<style><symbol>| macros will be defined. It would be possible to |\let| |\PYG<symbol>| to |\PYG<style><symbol>|, but it is simpler to define a complete set of symbol macros using the |PYG| prefix, so that all symbol macros will be defined by default.\footnote{It would be possible to hard-code the symbol macros in \pkg{minted} itself, but that would have the disadvantage of tying \pkg{minted} more closely to a particular version of \pkg{Pygments}. Similarly, \texttt{\string\let}ing symbol macros assumes a complete, fixed list of symbol macros. The current approach is harder to break than these alternatives; the worst-case scenario should be needing to purge the cache, rather than dealing with an undefined macro.}
+% Takes a single argument that is the detokenized style name. Getting the detokenized style name here requires expansion (|\edef|) in an earlier macro (currently |\minted@defstyle|) to convert |\minted@get@opt{style}{default}| into detokenized text. The |style| value is always wrapped in |\detokenize| when it is set, so expansion automatically detokenizes. Detokenization can be important depending on active characters. Expansion is important because the style name may be used with caching, so we need the current value retrieved by |\minted@get@opt|, not the value at the end of the document when cache data is written to the |.aux| file.
%
-% Whenever |\minted@checkstyle| is invoked with a named style and style macros need to be created, there is a check to see if the |PYG| prefix macros have been created, and they are generated if they do not yet exist. This is important when |\MintedPygmentize| is used to call a custom |pygmentize|; we want to wait as late as possible to use |pygmentize|, so we don't want to generate the |\PYG| macros until the last possible moment. When the |\PYG| macros are actually created, the single quote macro is patched after loading.
+% Certain catcodes are required when loading Pygments style definitions from file.
+% \begin{itemize}
+% \item At sign |@| would be handled by the |\makeatletter| within the Pygments style definition if the style was brought in via |\input|, but |\makeatletter| doesn't affect tokenization with the |catchfile| approach.
+% \item Percent |%| may not have its normal meaning within a |.dtx| file.
+% \item Backtick |`| is made active by some \pkg{babel} package options, such as |magyar|.
+% \end{itemize}
+% |\endlinechar| also requires special handling to avoid introducing unwanted spaces.
%
-% It isn't necessary to set the initial style to |default|, because the current style is always obtained via |\minted@get@opt{style}{default}|, so |default| is always the fallback value and need not be set explicitly. |\minted@checkstyle| is used in each command/environment, so that using |pygmentize| can be delayed as long as possible.
+% The |\ifx\PYG\relax| tests detect outdated style definitions from \pkg{minted} <2.6 and replace them when possible, and also detect missing styles. Before \pkg{minted} 2.6, style macros used a |\PYG<style>| prefix and were defined globally. Starting with 2.6, styles are redefined upon every use (within groups), and all styles use macros with a |\PYG| prefix. This allows more robust treatment of style names that involve punctuation characters and numbers.
% \begin{macrocode}
-\newcommand{\minted@checkstyle}[1]{%
- \ifcsname minted@styleloaded@\ifstrempty{#1}{default-pyg-prefix}{#1}\endcsname\else
- \ifstrempty{#1}{}{\ifcsname PYG\endcsname\else\minted@checkstyle{}\fi}%
- \expandafter\gdef%
- \csname minted@styleloaded@\ifstrempty{#1}{default-pyg-prefix}{#1}\endcsname{}%
- \ifthenelse{\boolean{minted@cache}}%
- {\IfFileExists
- {\minted@outputdir\minted@cachedir/\ifstrempty{#1}{default-pyg-prefix}{#1}.pygstyle}%
- {}%
- {%
- \ifthenelse{\boolean{minted@frozencache}}%
- {\PackageError{minted}%
- {Missing style definition for #1 with frozencache}%
- {Missing style definition for #1 with frozencache}}%
- {\ifwindows
- \ShellEscape{%
- \MintedPygmentize\space -S \ifstrempty{#1}{default}{#1} -f latex
- -P commandprefix=PYG#1
- > \minted@outputdir@windows\minted@cachedir@windows\@backslashchar%
- \ifstrempty{#1}{default-pyg-prefix}{#1}.pygstyle}%
- \else
- \ShellEscape{%
- \MintedPygmentize\space -S \ifstrempty{#1}{default}{#1} -f latex
- -P commandprefix=PYG#1
- > \minted@outputdir\minted@cachedir/%
- \ifstrempty{#1}{default-pyg-prefix}{#1}.pygstyle}%
- \fi}%
- }%
- \begingroup
- \let\def\gdef
- \catcode\string``=12
- \catcode`\_=11
- \catcode`\-=11
- \catcode`\%=14
- \endlinechar=-1\relax
- \minted@input{%
- \minted@outputdir\minted@cachedir/\ifstrempty{#1}{default-pyg-prefix}{#1}.pygstyle}%
- \endgroup
- \minted@addcachefile{\ifstrempty{#1}{default-pyg-prefix}{#1}.pygstyle}}%
- {%
- \ifwindows
- \ShellEscape{%
- \MintedPygmentize\space -S \ifstrempty{#1}{default}{#1} -f latex
- -P commandprefix=PYG#1 > \minted@outputdir@windows\minted@jobname.out.pyg}%
- \else
- \ShellEscape{%
- \MintedPygmentize\space -S \ifstrempty{#1}{default}{#1} -f latex
- -P commandprefix=PYG#1 > \minted@outputdir\minted@jobname.out.pyg}%
- \fi
- \begingroup
- \let\def\gdef
- \catcode\string``=12
- \catcode`\_=11
- \catcode`\-=11
- \catcode`\%=14
- \endlinechar=-1\relax
- \minted@input{\minted@outputdir\minted@jobname.out.pyg}%
- \endgroup}%
- \ifstrempty{#1}{\minted@patch@PYGZsq}{}%
+\newcommand{\minted@generate@PYGdef}[1]{%
+ \ifthenelse{\boolean{minted@cache}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@cachedir/#1.pygstyle}%
+ \minted@addcachefile{#1.pygstyle}}%
+ {\def\minted@pygstylepath@load{\minted@outputdir\minted@jobname.out.pyg}}%
+ \ifwindows
+ \StrSubstitute{\minted@pygstylepath@load}%
+ {/}{\@backslashchar}[\minted@pygstylepath@save]%
+ \else
+ \let\minted@pygstylepath@save\minted@pygstylepath@load
+ \fi
+ \IfFileExists{\minted@pygstylepath@load}%
+ {}%
+ {\ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Missing style definition for #1 with frozencache}%
+ {Missing style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \begingroup
+ \let\PYG\relax
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \ifthenelse{\boolean{minted@frozencache}}%
+ {\PackageError{minted}%
+ {Outdated style definition for #1 with frozencache}%
+ {Outdated style definition for #1 with frozencache}}%
+ {}%
+ \ShellEscape{%
+ \MintedPygmentize\space -S #1 -f latex -P commandprefix=PYG
+ > \minted@pygstylepath@save
+ }%
+ \CatchFileDef{\minted@tmp@filecontents}%
+ {\minted@pygstylepath@load}{\catcode`@=11\catcode`\%=14\catcode``=12\endlinechar=-1}%
+ \minted@tmp@filecontents
+ \ifx\PYG\relax
+ \PackageError{minted}%
+ {Cannot find Pygments style #1}%
+ {Cannot find Pygments style #1}%
+ \fi
\fi
+ \expandafter\global\expandafter\let\csname minted@PYGdef@#1\endcsname%
+ \minted@tmp@filecontents
+ \endgroup
}
-\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@checkstyle}[1]{}}{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\minted@defstyle}
+% Define Pygments style macros. These are defined locally rather than globally, and redefined upon every use. Patch single quote macro if needed.
+% \begin{macrocode}
+\newcommand{\minted@defstyle}[1]{%
+ \edef\minted@style{#1}%
+ \ifcsname minted@PYGdef@\minted@style\endcsname\else
+ \expandafter\minted@generate@PYGdef\expandafter{\minted@style}%
+ \fi
+ \csname minted@PYGdef@\minted@style\endcsname
+ \minted@patch@PYGZsq
+}
+\ifthenelse{\boolean{minted@draft}}{\renewcommand{\minted@defstyle}[1]{}}{}
% \end{macrocode}
% \end{macro}
%
@@ -2597,7 +2667,7 @@
\minted@def@optcl@switch{texcomments}{-P texcomments}
\minted@def@optcl@switch{mathescape}{-P mathescape}
\minted@def@optfv@switch{linenos}
-\minted@def@opt{style}
+\minted@def@opt@detok{style}
% \end{macrocode}
%
% \pkg{fancyvrb} and \pkg{fvextra} options.
@@ -2674,6 +2744,7 @@
\minted@def@optfv@switch{breakanywhere}
\minted@def@optfv{breakanywheresymbolpre}
\minted@def@optfv{breakanywheresymbolpost}
+\minted@def@optfv{fontencoding}
% \end{macrocode}
%
% Finally, options specific to \pkg{minted}.
@@ -2700,6 +2771,22 @@
%
% \subsection{Internal helpers}
%
+% \begin{environment}{minted@snugshade*}
+% Define a custom version of \pkg{framed}'s |snugshade*| that takes a color as argument. This avoids the need to redefine |shadecolor|.
+% \begin{macrocode}
+\newenvironment{minted@snugshade*}[1]{%
+ \def\FrameCommand##1{\hskip\@totalleftmargin
+ \colorbox{#1}{##1}%
+ \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+ \MakeFramed{\advance\hsize-\width
+ \@totalleftmargin\z@ \linewidth\hsize
+ \advance\labelsep\fboxsep
+ \@setminipage}%
+ }{\par\unskip\@minipagefalse\endMakeFramed}
+% \end{macrocode}
+% \end{environment}
+%
+%
% \begin{environment}{\minted@bgbox}
%
% Define an environment that may be wrapped around a |minted| environment to assign a background color. This is retained as a holdover from version 1.0. In most cases, it is probably better to use a dedicated framing package, such as \pkg{tcolorbox} or \pkg{mdframed}.
@@ -2715,13 +2802,12 @@
% \begin{macrocode}
\newenvironment{minted@colorbg}[1]{%
\setlength{\OuterFrameSep}{0pt}%
- \colorlet{shadecolor}{#1}%
\let\minted@tmp\FV@NumberSep
\edef\FV@NumberSep{%
\the\numexpr\dimexpr\minted@tmp+\number\fboxsep\relax sp\relax}%
\medskip
- \begin{snugshade*}}
- {\end{snugshade*}%
+ \begin{minted@snugshade*}{#1}}
+ {\end{minted@snugshade*}%
\medskip\noindent}
% \end{macrocode}
% \end{environment}
@@ -2804,6 +2890,73 @@
% \end{macro}
%
%
+% \begin{macro}{\MintedPython}
+% Python executable to be used for |autogobble|.
+% \begin{macrocode}
+\ifwindows
+ \newcommand{\MintedPython}{python}
+\else
+ \newcommand{\MintedPython}{python3}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\minted@check@MintedPython}
+% Check that |\MintedPython| is a valid executable before use. Swap |python| for |python3| and vice versa depending on what is available.
+% \begin{macrocode}
+\newcommand{\minted@check@MintedPython}{%
+ \ifcsname minted@MintedPython@\MintedPython\endcsname
+ \else
+ \let\minted@altpython\minted@undefined
+ \ifdefstring{\MintedPython}{python}{\def\minted@altpython{python3}}{}%
+ \ifdefstring{\MintedPython}{python3}{\def\minted@altpython{python}}{}%
+ \ifx\minted@altpython\minted@undefined\relax
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executable \MintedPython;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \else
+ \ifcsname minted@MintedPython@\minted@altpython\endcsname
+ \let\MintedPython\minted@altpython
+ \else
+ \TestAppExists{\MintedPython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\MintedPython\endcsname\relax
+ \else
+ \TestAppExists{\minted@altpython}%
+ \ifAppExists
+ \expandafter\global\expandafter\let%
+ \csname minted@MintedPython@\minted@altpython\endcsname\relax
+ \let\MintedPython\minted@altpython
+ \else
+ \PackageError{minted}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ {Failed to find Python executables python or python3;
+ check Python installation (including PATH),
+ or redefine \string\MintedPython}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
% \begin{macro}{\minted@pygmentize}
%
% Pygmentize a file (default: |\minted@outputdir\minted@jobname.pyg|) using the options provided.
@@ -2820,7 +2973,7 @@
%
% \begin{macrocode}
\newcommand{\minted@pygmentize}[2][\minted@outputdir\minted@jobname.pyg]{%
- \minted@checkstyle{\minted@get@opt{style}{default}}%
+ \minted@defstyle{\minted@get@opt{style}{default}}%
\stepcounter{minted@pygmentizecounter}%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
{\def\minted@codefile{\minted@outputdir\minted@jobname.pyg}}%
@@ -2858,50 +3011,15 @@
{%
\ifminted@frozencache
\else
- \ifx\XeTeXinterchartoks\minted@undefined
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\edef\minted@hash{\pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd autogobble(\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi-\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi)}}}%
- {\edef\minted@hash{\pdf@filemdfivesum{#1}%
- \pdf@mdfivesum{\minted@cmd}}}%
- \else
- \ifx\mdfivesum\minted@undefined
- \immediate\openout\minted@code\minted@jobname.mintedcmd\relax
- \immediate\write\minted@code{\minted@cmd}%
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\immediate\write\minted@code{autogobble(\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi-\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi)}}{}%
- \immediate\closeout\minted@code
- \edef\minted@argone@esc{#1}%
- \StrSubstitute{\minted@argone@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@argone@esc]%
- \StrSubstitute{\minted@argone@esc}{"}{\@backslashchar"}[\minted@argone@esc]%
- \edef\minted@tmpfname@esc{\minted@outputdir\minted@jobname}%
- \StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
- \StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
- %Cheating a little here by using ASCII codes to write `{` and `}`
- %in the Python code
- \def\minted@hashcmd{%
- \detokenize{python -c "import hashlib; import os;
- hasher = hashlib.sha1();
- f = open(os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.mintedcmd\detokenize{\")), \"rb\");
- hasher.update(f.read());
- f.close();
- f = open(os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\")), \"rb\");
- hasher.update(f.read());
- f.close();
- f = open(os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.mintedmd5\detokenize{\")), \"w\");
- macro = \"\\edef\\minted@hash\" + chr(123) + hasher.hexdigest() + chr(125) + \"\";
- f.write(\"\\makeatletter\" + macro + \"\\makeatother\\endinput\n\");
- f.close();"}}%
- \ShellEscape{\minted@hashcmd}%
- \minted@input{\minted@outputdir\minted@jobname.mintedmd5}%
- \else
- \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
- {\edef\minted@hash{\mdfivesum file {#1}%
- \mdfivesum{\minted@cmd autogobble(\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi-\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi)}}}%
- {\edef\minted@hash{\mdfivesum file {#1}%
- \mdfivesum{\minted@cmd}}}%
- \fi
- \fi
+ \ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd\space%
+ autogobble(\the\numexpr\FancyVerbStartNum\relax-%
+ \the\numexpr\FancyVerbStopNum\relax)}}}%
+ {\edef\minted@hash{%
+ \pdf@filemdfivesum{#1}%
+ \pdf@mdfivesum{\minted@cmd}}}%
\edef\minted@infile{\minted@cachedir/\minted@hash.pygtex}%
\IfFileExists{\minted@infile}{}{%
\ifthenelse{\equal{\minted@get@opt{autogobble}{false}}{true}}{%
@@ -2951,20 +3069,21 @@
\StrSubstitute{\minted@tmpfname@esc}{\@backslashchar}{\@backslashchar\@backslashchar}[\minted@tmpfname@esc]%
\StrSubstitute{\minted@tmpfname@esc}{"}{\@backslashchar"}[\minted@tmpfname@esc]%
%Need a version of open() that supports encoding under Python 2
+ \minted@check@MintedPython
\edef\minted@autogobblecmd{%
\ifminted@kpsewhich
\ifwindows
\detokenize{for /f "usebackq tokens=*" }\@percentchar\detokenize{a in (`kpsewhich} #1\detokenize{`) do}\space
\fi
- \fi
- \detokenize{python -c "import sys; import os;
+ \fi
+ \MintedPython\detokenize{ -c "import sys; import os;
import textwrap;
from io import open;
fname = }%
\ifminted@kpsewhich
- \detokenize{sys.argv[1];}\space%
+ \detokenize{sys.argv[1];}\space
\else
- \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space%
+ \detokenize{os.path.expanduser(os.path.expandvars(\"}\minted@argone@esc\detokenize{\"));}\space
\fi
\detokenize{f = open(fname, \"r\", encoding=\"}\minted@encoding\detokenize{\") if os.path.isfile(fname) else None;
t = f.readlines() if f is not None else None;
@@ -2972,10 +3091,10 @@
f.close() if f is not None else None;
tmpfname = os.path.expanduser(os.path.expandvars(\"}\minted@tmpfname@esc.pyg\detokenize{\"));
f = open(tmpfname, \"w\", encoding=\"}\minted@encoding\detokenize{\") if t is not None else None;
- fvstartnum = }\ifx\FancyVerbStartNum\z@ 0\else\FancyVerbStartNum\fi\detokenize{;
- fvstopnum = }\ifx\FancyVerbStopNum\z@ 0\else\FancyVerbStopNum\fi\detokenize{;
- s = fvstartnum-1 if fvstartnum != 0 else 0;
- e = fvstopnum if fvstopnum != 0 else len(t_opt);
+ fvstartnum = }\the\numexpr\FancyVerbStartNum\detokenize{;
+ fvstopnum = }\the\numexpr\FancyVerbStopNum\detokenize{;
+ s = max(0, fvstartnum-1);
+ e = min(s, fvstopnum if fvstopnum > 0 else len(t_opt));
[f.write(textwrap.dedent(\"\".join(x))) for x in (t_opt[0:s], t_opt[s:e], t_opt[e:]) if x and t is not None];
f.close() if t is not None else os.remove(tmpfname);"}%
\ifminted@kpsewhich
@@ -3000,9 +3119,7 @@
% The |bgcolor| option needs to be dealt with in different ways depending on whether we are using |\mintinline|. It is simplest to apply this option here, so that the macro redefinitions may be local and thus do not need to be manually reset later.
% \begin{macrocode}
\newcommand{\minted@inputpyg}{%
- \expandafter\let\expandafter\minted@PYGstyle%
- \csname PYG\minted@get@opt{style}{default}\endcsname
- \VerbatimPygments{\PYG}{\minted@PYGstyle}%
+ \VerbatimPygments{\PYG}{\PYG}%
\ifthenelse{\boolean{minted@isinline}}%
{\ifthenelse{\equal{\minted@get@opt{breaklines}{false}}{true}}%
{\let\FV@BeginVBox\relax
@@ -3089,10 +3206,11 @@
%
% Now that the settings macros exist, we go ahead and create any needed defaults.
%
-% PHP should use |startinline| for |\mintinline|. Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments.
+% PHP should use |startinline| for |\mintinline|. Visible tabs should have a specified color so that they don't change colors when used to indent multiline strings or comments. Leading/trailing empty lines should be preserved by default.
% \begin{macrocode}
\setmintedinline[php]{startinline=true}
\setminted{tabcolor=black}
+\setminted{stripnl=false}
% \end{macrocode}
%
% \begin{macro}{\usemintedstyle}
diff --git a/macros/latex/contrib/minted/minted.ins b/macros/latex/contrib/minted/minted.ins
index 190154a652..af12d42e4a 100644
--- a/macros/latex/contrib/minted/minted.ins
+++ b/macros/latex/contrib/minted/minted.ins
@@ -3,7 +3,7 @@
\askforoverwritefalse
\preamble
-Copyright 2013--2017 Geoffrey M. Poore
+Copyright 2013--2021 Geoffrey M. Poore
Copyright 2010--2011 Konrad Rudolph
This work may be distributed and/or modified under the
diff --git a/macros/latex/contrib/minted/minted.pdf b/macros/latex/contrib/minted/minted.pdf
index 9558879271..a66953bc0e 100644
--- a/macros/latex/contrib/minted/minted.pdf
+++ b/macros/latex/contrib/minted/minted.pdf
Binary files differ
diff --git a/macros/latex/contrib/termsim/README.md b/macros/latex/contrib/termsim/README.md
index dd32b5bade..d587418ce5 100644
--- a/macros/latex/contrib/termsim/README.md
+++ b/macros/latex/contrib/termsim/README.md
@@ -5,8 +5,8 @@ Terminal simulation based on tcolorbox and minted/listings
The `terminal`(`terminal*`) evironment create a tcolorbox to simulate terminal with the eviroment body and the `\termfile`(`\termfile*`) macro from a source file.
-The OS type was selected from win10, mac and ubuntu and
-the terminal theme was selected from dark and light with key-value option.
+The OS type was selected from win10, mac, or ubuntu and
+the terminal theme was selected from dark, light, or with key-value option.
All options can be set with `\termset` macro or `terminal`(`terminal*`) eniroment's and
`\termfile`(`\termfile*`) macro's option
@@ -32,7 +32,7 @@ Contributing
`terminal`(`terminal*`)环境根据环境内容创建一个`tcolorbox`盒子用于模拟终端窗口,
`\termfile`(`\termfile*`)命令根据载入的文件内容创建一个`tcolorbox`盒子用于模拟终端窗口。
-可以通过`terminal`(`terminal*`)环境或`\termfile`(`\termfile*`)命令的`key-value`选项设置操作系统类型(win10、mac或ubuntu),
+可以通过`terminal`(`terminal*`)环境或`\termfile`(`\termfile*`)命令的`key-value`选项设置操作系统类型(win10、mac或ubuntu),并可选择暗色(dark)、亮色(light)或白色(white)颜色主题。
所有选项即可以通过环境或命令选项设置,也可以通过`\termset`命令进行设置。
@@ -46,7 +46,7 @@ Contributing
(2). Issues和PR: [issue](https://github.com/registor/termsim/issues) or [pull request](https://github.com/registor/termsim/pulls).
2. gitee仓库:
- (1). 仓库地址: [termsim-l3](https://gitee.com/nwafu_nan/termsim)
+ (1). 仓库地址: [termsim](https://gitee.com/nwafu_nan/termsim)
(2). Issues and PR: [issue](https://gitee.com/nwafu_nan/termsim/issues) or [pull request](https://gitee.com/nwafu_nan/termsim/pulls).
Copyright and Licence
@@ -61,11 +61,7 @@ Copyright and Licence
version. This version of this license is in
http://www.latex-project.org/lppl/lppl-1-3c.txt
and the latest version of this license is in
- http://www.latex-project.org/lppl.tx \IfBooleanTF{#1}
- {
- \bool_set_true:N \l_@@_comment_bool
- }{
-t
+ http://www.latex-project.org/lppl.txt
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
diff --git a/macros/latex/contrib/termsim/termsim-en.pdf b/macros/latex/contrib/termsim/termsim-en.pdf
new file mode 100644
index 0000000000..cd46ee19ee
--- /dev/null
+++ b/macros/latex/contrib/termsim/termsim-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/termsim/termsim-zh-cn.pdf b/macros/latex/contrib/termsim/termsim-zh-cn.pdf
new file mode 100644
index 0000000000..4d472c1d58
--- /dev/null
+++ b/macros/latex/contrib/termsim/termsim-zh-cn.pdf
Binary files differ
diff --git a/macros/latex/contrib/termsim/termsim.dtx b/macros/latex/contrib/termsim/termsim.dtx
index 856192470a..dfd8010029 100644
--- a/macros/latex/contrib/termsim/termsim.dtx
+++ b/macros/latex/contrib/termsim/termsim.dtx
@@ -11,8 +11,8 @@ Terminal simulation based on tcolorbox and minted/listings
The `terminal`(`terminal*`) evironment create a tcolorbox to simulate terminal with the eviroment body and the `\termfile`(`\termfile*`) macro from a source file.
-The OS type was selected from win10, mac and ubuntu and
-the terminal theme was selected from dark and light with key-value option.
+The OS type was selected from win10, mac, or ubuntu and
+the terminal theme was selected from dark, light, or with key-value option.
All options can be set with `\termset` macro or `terminal`(`terminal*`) eniroment's and
`\termfile`(`\termfile*`) macro's option
@@ -38,7 +38,7 @@ Contributing
`terminal`(`terminal*`)环境根据环境内容创建一个`tcolorbox`盒子用于模拟终端窗口,
`\termfile`(`\termfile*`)命令根据载入的文件内容创建一个`tcolorbox`盒子用于模拟终端窗口。
-可以通过`terminal`(`terminal*`)环境或`\termfile`(`\termfile*`)命令的`key-value`选项设置操作系统类型(win10、mac或ubuntu),
+可以通过`terminal`(`terminal*`)环境或`\termfile`(`\termfile*`)命令的`key-value`选项设置操作系统类型(win10、mac或ubuntu),并可选择暗色(dark)、亮色(light)或白色(white)颜色主题。
所有选项即可以通过环境或命令选项设置,也可以通过`\termset`命令进行设置。
@@ -52,7 +52,7 @@ Contributing
(2). Issues和PR: [issue](https://github.com/registor/termsim/issues) or [pull request](https://github.com/registor/termsim/pulls).
2. gitee仓库:
- (1). 仓库地址: [termsim-l3](https://gitee.com/nwafu_nan/termsim)
+ (1). 仓库地址: [termsim](https://gitee.com/nwafu_nan/termsim)
(2). Issues and PR: [issue](https://gitee.com/nwafu_nan/termsim/issues) or [pull request](https://gitee.com/nwafu_nan/termsim/pulls).
Copyright and Licence
@@ -67,11 +67,7 @@ Copyright and Licence
version. This version of this license is in
http://www.latex-project.org/lppl/lppl-1-3c.txt
and the latest version of this license is in
- http://www.latex-project.org/lppl.tx \IfBooleanTF{#1}
- {
- \bool_set_true:N \l_@@_comment_bool
- }{
-t
+ http://www.latex-project.org/lppl.txt
and version 1.3 or later is part of all distributions of
LaTeX version 2005/12/01 or later.
@@ -161,7 +157,7 @@ t
%</internal>
%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
%<package>\RequirePackage{expl3}
-%<+package>\GetIdInfo$Id: termsim.dtx 1.0.0 2021-12-14 08:00:00 +0800 Nan Geng <nangeng@nwafu.edu.cn> $
+%<+package>\GetIdInfo$Id: termsim.dtx 1.1.0 2021-12-24 08:00:00 +0800 Nan Geng <nangeng@nwafu.edu.cn> $
%<package> {Terminal simulation with tcolorbox and minted/listings.}
%<package>\ProvidesExplPackage{\ExplFileName}
%<package> {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -172,9 +168,6 @@ t
\usepackage{xcolor}
\usepackage{xcolor-material}
\usepackage{termsim}
-\renewcommand*\marg[1]{\{\meta{#1}\}}
-\renewcommand*\oarg[1]{[\meta{#1}]}
-\renewcommand*\parg[1]{(\meta{#1})}
\NewDocumentCommand{\init}{+v}{\hspace{\fill}初始值~=~\textcolor{blue}{\bfseries#1}}
\DeclareDocumentCommand\opt{m}{\texttt{#1}}
\DeclareDocumentCommand\kvopt{mm}
@@ -283,7 +276,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=win10,theme=dark,shstretch=1.0}
%\begin{terminal}{窗口标题}
%C:\Users\Administrator 的目录
@@ -326,7 +319,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termfile{窗口标题}{test.bat}
%\end{minipage}
%\end{center}
@@ -455,7 +448,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=win10,theme=dark,shstretch=1.0}
%\begin{terminal}{窗口标题}
%C:\Users\Administrator 的目录
@@ -485,7 +478,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\begin{terminal*}[os=win10,theme=light][底线注释]{窗口标题}
%C:\Users\Administrator 的目录
%2018/07/21 15:39 <DIR> .
@@ -509,7 +502,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=win10,theme=dark}
%\termfile{窗口标题}{test.bat}
%\end{minipage}
@@ -521,7 +514,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termfile*[os=win10,theme=light][底线注释]{窗口标题}{test.bat}
%\end{minipage}
%\end{center}
@@ -543,7 +536,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=mac,theme=dark}
%\begin{terminal}{窗口标题}
%xxxxxx@xxxxxx-lap:~$ ls
@@ -565,7 +558,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\begin{terminal*}[os=mac,theme=light][底线注释]{窗口标题}
%xxxxxx@xxxxxx-lap:~$ ls
%Desktop Downloads p2 Public Templates Videos
@@ -584,7 +577,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=mac,theme=dark}
%\termfile{窗口标题}{testls}
%\end{minipage}
@@ -596,7 +589,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termfile*[os=mac,theme=light][底线注释]{窗口标题}{testls}
%\end{minipage}
%\end{center}
@@ -616,8 +609,7 @@ t
% remote: Counting objects: 100% (106/106), done.
% remote: Compressing objects: 100% (105/105), done.
% remote: Total 106 (delta 9), reused 0 (delta 0)
-% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-% 完成.
+% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
% 处理 delta 中: 100% (9/9), 完成.
% 正在检出文件: 100% (75/75), 完成.
% xxxxxx@xxxxxx-lap:~/Desktop $
@@ -625,7 +617,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=ubuntu,theme=dark}
%\begin{terminal}{窗口标题}
%xxxxxx@xxxxxx-lap:~/Desktop $
@@ -635,8 +627,7 @@ t
%remote: Counting objects: 100% (106/106), done.
%remote: Compressing objects: 100% (105/105), done.
%remote: Total 106 (delta 9), reused 0 (delta 0)
-%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-%完成.
+%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
%处理 delta 中: 100% (9/9), 完成.
%正在检出文件: 100% (75/75), 完成.
%xxxxxx@xxxxxx-lap:~/Desktop $
@@ -654,16 +645,16 @@ t
% remote: Counting objects: 100% (106/106), done.
% remote: Compressing objects: 100% (105/105), done.
% remote: Total 106 (delta 9), reused 0 (delta 0)
-% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-% 完成.
+% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
% 处理 delta 中: 100% (9/9), 完成.
% 正在检出文件: 100% (75/75), 完成.
% xxxxxx@xxxxxx-lap:~/Desktop $
% \end{terminal*}
% \end{Verbatim}
%
+%\newpage
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\begin{terminal*}[os=ubuntu,theme=light][底线注释]{窗口标题}
%xxxxxx@xxxxxx-lap:~/Desktop $
%git clone git@gitee.com:xxxxxx/xxxxxx
@@ -672,8 +663,7 @@ t
%remote: Counting objects: 100% (106/106), done.
%remote: Compressing objects: 100% (105/105), done.
%remote: Total 106 (delta 9), reused 0 (delta 0)
-%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-%完成.
+%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
%处理 delta 中: 100% (9/9), 完成.
%正在检出文件: 100% (75/75), 完成.
%xxxxxx@xxxxxx-lap:~/Desktop $
@@ -690,7 +680,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=ubuntu,theme=dark}
%\termfile{窗口标题}{testsh}
%\end{minipage}
@@ -702,7 +692,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termfile*[os=ubuntu,theme=light][底线注释]{窗口标题}{testsh}
%\end{minipage}
%\end{center}
@@ -721,8 +711,7 @@ t
% remote: Counting objects: 100% (106/106), done.
% remote: Compressing objects: 100% (105/105), done.
% remote: Total 106 (delta 9), reused 0 (delta 0)
-% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-% 完成.
+% 接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
% 处理 delta 中: 100% (9/9), 完成.
% 正在检出文件: 100% (75/75), 完成.
% xxxxxx@xxxxxx-lap:~/Desktop $
@@ -730,7 +719,7 @@ t
% \end{Verbatim}
%
%\begin{center}
-%\begin{minipage}{0.75\textwidth}
+%\begin{minipage}{0.85\textwidth}
%\termset{os=ubuntu,theme=white}
%\begin{terminal}{窗口标题}
%xxxxxx@xxxxxx-lap:~/Desktop $
@@ -740,8 +729,7 @@ t
%remote: Counting objects: 100% (106/106), done.
%remote: Compressing objects: 100% (105/105), done.
%remote: Total 106 (delta 9), reused 0 (delta 0)
-%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s,
-%完成.
+%接收对象中: 100% (106/106), 237.88 MiB | 730.00 KiB/s, 完成.
%处理 delta 中: 100% (9/9), 完成.
%正在检出文件: 100% (75/75), 完成.
%xxxxxx@xxxxxx-lap:~/Desktop $
@@ -997,6 +985,8 @@ t
}%
% \end{macrocode}
%
+% \changes{v1.1.0}{2021/12/24}{调整Win10 Logo的yshift}
+%
% 定义Win10终端盒子的tcolorbox样式
%
% \begin{macrocode}
@@ -1020,15 +1010,15 @@ t
right~color=WinBlue%
},%
overlay~unbroken = {%
- \node[inner~sep=0pt,anchor=north~west,yshift=-3pt,xshift=1.2pt,text=black]
+ \node[inner~sep=0pt,anchor=north~west,yshift=-2pt,xshift=1.2pt,text=black]
at (frame.north~west){\WindowsLogo};
- \node[inner~sep=0pt,anchor=north~east,yshift=-5pt,xshift=-8pt,text=black]
+ \node[inner~sep=0pt,anchor=north~east,yshift=-4pt,xshift=-8pt,text=black]
at (frame.north~east){\rule{0.8em}{0.6pt}\quad$\square$\quad{\Large$\times$}};
},%
overlay~first = {%
- \node[inner~sep=0pt,anchor=north~west,yshift=-3pt,xshift=1.0pt,text=black]
+ \node[inner~sep=0pt,anchor=north~west,yshift=-2pt,xshift=1.0pt,text=black]
at (frame.north~west){\WindowsLogo};
- \node[inner~sep=0pt,anchor=north~east,yshift=-5pt,xshift=-8pt,text=black]
+ \node[inner~sep=0pt,anchor=north~east,yshift=-4pt,xshift=-8pt,text=black]
at (frame.north~east){\rule{0.8em}{0.6pt}\quad$\square$\quad{\Large$\times$}};
}%
},
@@ -1249,6 +1239,8 @@ t
%
% \subsection{内部函数}
%
+% \changes{v1.1.0}{2021/12/24}{为minted宏包添加autogobble参数}
+%
% \begin{macro}{\@@_minted_tcbset:}
% 设置终端盒子minted宏包参数。
%
@@ -1259,6 +1251,7 @@ t
listing~engine=minted,%
minted~style=\tl_use:N \l_@@_shell_style_tl,%
minted~options={%
+ autogobble,
breaklines,%
fontsize=\tl_use:N \l_@@_shell_fontsize_tl,%
baselinestretch=#1,%
diff --git a/macros/latex/contrib/termsim/termsim.pdf b/macros/latex/contrib/termsim/termsim.pdf
deleted file mode 100644
index 3c904bfb98..0000000000
--- a/macros/latex/contrib/termsim/termsim.pdf
+++ /dev/null
Binary files differ