summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bfh-ci/tex/bfhlayout.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/bfh-ci/tex/bfhlayout.sty')
-rw-r--r--macros/latex/contrib/bfh-ci/tex/bfhlayout.sty777
1 files changed, 777 insertions, 0 deletions
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