From a365f4320519cd6ebeb512575849a4582aae4f45 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 17 Aug 2021 03:00:45 +0000 Subject: CTAN sync 202108170300 --- macros/latex/contrib/easybook/easybook.dtx | 144 +- macros/latex/contrib/easybook/easybook.pdf | Bin 586691 -> 587175 bytes macros/latex/contrib/easybook/easybook.tex | 34 +- macros/latex/contrib/makelabels/LICENSE.md | 19 + macros/latex/contrib/makelabels/README.md | 123 + .../makelabels/makelabels-envlab-example.pdf | Bin 0 -> 45918 bytes .../contrib/makelabels/makelabels-example.pdf | Bin 0 -> 34948 bytes macros/latex/contrib/makelabels/makelabels.dtx | 765 +++++ macros/latex/contrib/makelabels/makelabels.pdf | Bin 0 -> 686795 bytes macros/latex/contrib/siunitx/CHANGELOG.md | 21 +- macros/latex/contrib/siunitx/siunitx-code.pdf | Bin 1499904 -> 1510786 bytes macros/latex/contrib/siunitx/siunitx-number.dtx | 184 +- macros/latex/contrib/siunitx/siunitx-print.dtx | 6 +- macros/latex/contrib/siunitx/siunitx-print.pdf | Bin 484555 -> 0 bytes macros/latex/contrib/siunitx/siunitx-table.dtx | 67 +- macros/latex/contrib/siunitx/siunitx-unit.dtx | 11 + macros/latex/contrib/siunitx/siunitx-unit.pdf | Bin 627332 -> 0 bytes macros/latex/contrib/siunitx/siunitx.dtx | 2 +- macros/latex/contrib/siunitx/siunitx.pdf | Bin 636250 -> 636202 bytes macros/latex/contrib/siunitx/siunitx.tex | 4 +- macros/latex/contrib/uni-titlepage/LICENSE.md | 19 + macros/latex/contrib/uni-titlepage/README.md | 98 + .../latex/contrib/uni-titlepage/titlepage-DHBW.pdf | Bin 0 -> 43998 bytes .../uni-titlepage/titlepage-JT-Aufsaetze.pdf | Bin 0 -> 41265 bytes .../uni-titlepage/titlepage-JT-Geschichte.pdf | Bin 0 -> 38251 bytes .../uni-titlepage/titlepage-JT-Typography.pdf | Bin 0 -> 26903 bytes .../latex/contrib/uni-titlepage/titlepage-KIT.pdf | Bin 0 -> 42149 bytes .../contrib/uni-titlepage/titlepage-KOMAScript.pdf | Bin 0 -> 166494 bytes .../contrib/uni-titlepage/titlepage-Markus-1.pdf | Bin 0 -> 119780 bytes .../contrib/uni-titlepage/titlepage-Markus-2.pdf | Bin 0 -> 128796 bytes .../contrib/uni-titlepage/titlepage-Spacer.pdf | Bin 0 -> 127996 bytes .../contrib/uni-titlepage/titlepage-TU-DD.pdf | Bin 0 -> 40396 bytes .../contrib/uni-titlepage/titlepage-TU-HH.pdf | Bin 0 -> 54017 bytes .../latex/contrib/uni-titlepage/titlepage-WWUM.pdf | Bin 0 -> 58935 bytes .../latex/contrib/uni-titlepage/uni-titlepage.dtx | 3242 ++++++++++++++++++++ .../latex/contrib/uni-titlepage/uni-titlepage.pdf | Bin 0 -> 841219 bytes 36 files changed, 4605 insertions(+), 134 deletions(-) create mode 100644 macros/latex/contrib/makelabels/LICENSE.md create mode 100644 macros/latex/contrib/makelabels/README.md create mode 100644 macros/latex/contrib/makelabels/makelabels-envlab-example.pdf create mode 100644 macros/latex/contrib/makelabels/makelabels-example.pdf create mode 100644 macros/latex/contrib/makelabels/makelabels.dtx create mode 100644 macros/latex/contrib/makelabels/makelabels.pdf delete mode 100644 macros/latex/contrib/siunitx/siunitx-print.pdf delete mode 100644 macros/latex/contrib/siunitx/siunitx-unit.pdf create mode 100644 macros/latex/contrib/uni-titlepage/LICENSE.md create mode 100644 macros/latex/contrib/uni-titlepage/README.md create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf create mode 100644 macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf create mode 100644 macros/latex/contrib/uni-titlepage/uni-titlepage.dtx create mode 100644 macros/latex/contrib/uni-titlepage/uni-titlepage.pdf (limited to 'macros') diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 3672b124b9..29456c1287 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/08/15}{1.28p} +\ProvidesExplClass{easybook}{2021/08/16}{1.28q} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -95,14 +95,12 @@ { \eb_set_family:nnn { \CJKsfdefault } {#2} {#1} } \cs_new_protected:Npn \eb_setCJKmonofont:nn #1#2 { \eb_set_family:nnn { \CJKttdefault } {#2} {#1} } -\cs_new_protected:Npn \eb_font_double_engine_set:n #1 +\eb_clist_map_inline:nn + { main,sans,mono,CJKmain,CJKsans,CJKmono } { \exp_args:Nc \RenewDocumentCommand { set#1font }{O{}mO{}} {\use:c { eb_set#1font:nn } {##2} {##1,##3}} } -\eb_clist_map_function:nN - { main,sans,mono,CJKmain,CJKsans,CJKmono } - \eb_font_double_engine_set:n \RenewDocumentCommand{\newCJKfontfamily}{omO{}mO{}} { \tl_set:Nx \l_tmpa_tl @@ -299,7 +297,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/08/15}{1.28p} +\ProvidesExplPackage{easybase}{2021/08/16}{1.28q} {Typeset Chinese theses or books} \cs_generate_variant:Nn \dim_add:Nn { NV,Nv } @@ -511,20 +509,6 @@ Your~document~class~is~in~article~mode. \\ The~\string\chapter\space~command~will~not~be~used. } -\ctex_define:nn { style } - { - multoc .bool_set:N = \l__eb_toc_multi_column_bool, - multoc .default:n = true, - withpart .bool_set:N = \l__eb_chap_counter_withpart_bool, - withpart .default:n = true, - withpart .initial:n = false, - rulewidth .dim_set:N = \l__eb_rule_width_dim, - rulewidth .initial:n = 0.75pt, - uppercase .bool_set:N = \l__eb_mark_uppercase_bool, - uppercase .default:n = true, - uppercase .initial:n = true, - figurepath .tl_set:N = \l_eb_graphics_path_tl - } \LoadPackage { @@ -566,6 +550,41 @@ } { \eb_package_date_check:nn #1 } +\NewDocumentCommand{\eb_assign_tag_brackets:n} + {>{\SplitArgument{1}{,}}m} + {\eb_assign_tag_brackets_pos:nn #1} +\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2 + { + \tl_set:Nn \eb@tag@brackets@left {#1} + \tl_set:Nn \eb@tag@brackets@right {#2} + } +\cs_gset:Npn \tagform@ #1 + { + \maketag@@@ + { + \color{ctex@emph} + \eb@tag@brackets@left + \ignorespaces #1\unskip\@@italiccorr + \eb@tag@brackets@right + } + } +\ctex_define:nn { style } + { + multoc .bool_set:N = \l__eb_toc_multi_column_bool, + multoc .default:n = true, + withpart .bool_set:N = \l__eb_chap_counter_withpart_bool, + withpart .default:n = true, + withpart .initial:n = false, + rulewidth .dim_set:N = \l__eb_rule_width_dim, + rulewidth .initial:n = 0.75pt, + uppercase .bool_set:N = \l__eb_mark_uppercase_bool, + uppercase .default:n = true, + uppercase .initial:n = true, + brackets .code:n = \eb_assign_tag_brackets:n {#1}, + brackets .initial:n = { (,) }, + figurepath .tl_set:N = \l_eb_graphics_path_tl + } + \includepdfset{fitpaper = true} \geometry { @@ -1757,20 +1776,14 @@ \selectfont\ignorespaces } -\cs_new_protected:Npn \eb_float_proportion_set:nn #1#2 - { \tl_gset:cn { #1fraction } {#2} } \bool_if:NF \l__eb_float_page_bool { - \clist_map_inline:nn - { - { text } { 0.1 }, - { top } { 0.9 }, - { bottom } { 0.9 }, - { floatpage } {0.9 }, - { dbltop } { 0.9 }, - { dblfloatpage } { 0.9 } - } - { \eb_float_proportion_set:nn #1 } + \tl_gset:Nn \textfraction { 0.1 } + \tl_gset:Nn \topfraction { 0.9 } + \tl_gset:Nn \bottomfraction { 0.9 } + \tl_gset:Nn \floatpagefraction { 0.9 } + \tl_gset:Nn \dbltopfraction { 0.9 } + \tl_gset:Nn \dblfloatpagefraction { 0.9 } } \skip_set:Nn \parskip { 0pt plus 2pt minus 1pt } \skip_set:Nn \intextsep { 14pt plus 2pt minus 2pt } @@ -1816,12 +1829,6 @@ itemsep = 0.75ex plus .1ex,topsep = 0.75ex plus .1ex, partopsep = 0ex,parsep = 0ex } -\newlist{eb@outline@list}{itemize}{1} -\newlist{eb@exercise@list}{enumerate}{2} -\newlist{eb@eqcomp@list}{description}{1} -\setlist[eb@outline@list]{label = outline,itemsep = 0.5ex plus .1ex} -\setlist[eb@exercise@list]{labelsep = 0.5em,nosep} -\setlist[eb@eqcomp@list]{labelsep = 0em,nosep} \setlist[itemize,1]{label = bullet} \setlist[itemize,2]{label = endash} \setlist[itemize,3]{label = asterisk} @@ -1829,6 +1836,12 @@ \setlist[enumerate,2]{label = alph,ref = enumii,labelwidth = *} \setlist[enumerate,3]{label = roman,ref = enumiii,labelwidth = *} \setlist[description]{font = sf,labelwidth = *,leftmargin = 2em} +\newlist{eb@outline@list}{itemize}{1} +\newlist{eb@exercise@list}{enumerate}{2} +\newlist{eb@eqcomp@list}{description}{1} +\setlist[eb@outline@list]{label = outline,itemsep = 0.5ex plus .1ex} +\setlist[eb@exercise@list]{labelsep = 0.5em,nosep} +\setlist[eb@eqcomp@list]{labelsep = 0em,nosep} \cs_new:Npn \setexerlist #1 { \setlist*[eb@exercise@list]{#1} } \cs_new:Npn \seteqcomplist #1 { \setlist*[eb@eqcomp@list]{#1} } \cs_new:Npn \setoutlinelist #1 { \setlist*[eb@outline@list]{#1} } @@ -1939,7 +1952,6 @@ headindent = \l__eb_thm_headindent_tl, headfont = \l__eb_thm_headfont_tl, notefont = \l__eb_thm_notefont_tl, - notebraces = \l__eb_thm_notebraces_tl, bodyfont = \l__eb_thm_bodyfont_tl, headpunct = \l__eb_thm_headpunct_tl, postheadspace = \l__eb_thm_postheadspace_tl, @@ -1950,32 +1962,13 @@ \l__eb_thmtools_entry_prop \c__eb_thmtools_entry_clist \prop_map_inline:Nn \l__eb_thmtools_entry_prop { \ctex_define:nn { thmset } { #1 .tl_set:N = #2 } } -\NewDocumentCommand{\eb_assign_tag_brackets:n} - {>{\SplitArgument{1}{,}}m} - {\eb_assign_tag_brackets_pos:nn #1} -\cs_new_protected:Npn \eb_assign_tag_brackets_pos:nn #1#2 - { - \tl_set:Nn \eb@tag@brackets@left {#1} - \tl_set:Nn \eb@tag@brackets@right {#2} - } -\cs_gset:Npn \tagform@ #1 - { - \maketag@@@ - { - \color{ctex@emph} - \eb@tag@brackets@left - \ignorespaces #1\unskip\@@italiccorr - \eb@tag@brackets@right - } - } \ctex_define:nn { thmset } { - thmbox .bool_set:N = \l__eb_thmbox_bool, - thmbox .default:n = true, - thmbox .initial:n = false, - brackets .code:n = \eb_assign_tag_brackets:n {#1}, - brackets .initial:n = { (,) }, - unknown .code:n = \eb_msg_unknown_option:n { thmset } + thmbox .bool_set:N = \l__eb_thmbox_bool, + thmbox .default:n = true, + thmbox .initial:n = false, + notebraces .tl_set:N = \l__eb_thm_notebraces_tl, + unknown .code:n = \eb_msg_unknown_option:n { thmset } } \ctex_set:nn { thmset } { @@ -1984,27 +1977,26 @@ headindent = 0em, headfont = \color{ctex@emph}\sffamily, postheadspace = 1em, + notebraces = {(}{)}, within = \bool_if:NT \l__eb_class_book_bool { chapter }, headformat = \NAME\space\NUMBER\NOTE } \eb_at_end_preamble:n { + \clist_put_right:Nx + \c__eb_thmtools_entry_clist { notebraces = \l__eb_thm_notebraces_tl } \exp_last_unbraced:NNV \declaretheoremstyle[\c__eb_thmtools_entry_clist]{easy-theorem} \eb_thm_name_set:nnn { exercise } { Exercise } { 练习 } \cs_undefine:N \proof - \clist_map_inline:nn - { - { lemma } { 引理 }, - { example } { 例 }, - { theorem } { 定理 }, - { corollary } { 推论 }, - { definition } { 定义 }, - { proposition } { 性质 }, - { remark } { 注 } [ numbered = no ], - { { proof } { 证明 } [ numbered = no,qed = \qedsymbol ] } - } - { \DeclareTheorem #1 } + \DeclareTheorem{lemma}{引理} + \DeclareTheorem{example}{例} + \DeclareTheorem{theorem}{定理} + \DeclareTheorem{corollary}{推论} + \DeclareTheorem{definition}{定义} + \DeclareTheorem{proposition}{性质} + \DeclareTheorem{remark}{注}[numbered = no] + \DeclareTheorem{proof}{证明}[numbered = no,qed = \qedsymbol] } \setchemformula @@ -2403,7 +2395,7 @@ } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/15}{1.28p} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/08/16}{1.28q} {Customization of tcolorbox for easybook} \tl_gset:Nn \eb@tc@line@skip { 0.5\baselineskip } diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index f18fa673d2..e8462e7c52 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index 7d57ff11e8..59ad7179cd 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -12,8 +12,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK 使用手册, - version = v1.28p, - date = 2021/08/15, + version = v1.28q, + date = 2021/08/16, authors = 瞿毅, info = 排版简体中文学位论文和书籍, email = quee123@foxmail.com, @@ -174,7 +174,7 @@ \opt{newline}\Default! 部分和章标题的样式为另起一行,符合一般英文书籍的习惯。 \keychoice{scheme}{chinese,plain}\Default{chinese} - 文档主题方案选项 \option{scheme} 扩展了 C\TeX 文档类中同名选项原有的作用范围,选项值 \code{plain} 可使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。 + 文档主题方案选项 \option{scheme} 扩展了 C\TeX 文档类中同名选项原有的作用范围,选项值 \code{plain} 可使各类标题变为英文形式。包括章节标题、图表标题和定理名等。 \opt{enmode}\Default! 同时开启 \option{newline} 和 \keyis-{scheme}{plain} 选项以符合英文原生风格。 \keychoice{scheme}{a4paper,b5paper,c5paper,letterpaper,其它纸张}\Default{a4paper} @@ -367,6 +367,8 @@ 统一调整页眉、定理盒子以及代码框等线条的粗细。 \keybool{uppercase}\Default{true} 使用 \cs*{rightmark} 及 \cs*{leftmark} 标题标记命令获取标题内容时英文是否大写。 + \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} + 设置行间公式编号标签的括号,以英文逗号分隔,分别代表左右括号。 \kvsplit*{figurepath}{\meta{路径名1}\code{\}\{}\meta{路径名2}}\Default 设置插入图片的文件夹路径名,可以有多个路径名,每个路径包含在括号分隔,只有一个路径时需要包含在两层括号内。 \end{options} @@ -514,10 +516,10 @@ \subsection{定理样式} \label{subsec:theorem of style} -文档类已预置 8 个定理环境,环境名及对应的定理标题见小节 \ref{subsec:theorem},它们均使用预置的定理样式 \code{easy-theorem}。下面 \module*{thmset} 模块的选项仅对这个定理样式生效,由 \pkg*{thmtools} 宏包提供支持。 +文档类已预置 8 个定理环境,环境名及对应的定理名见小节 \ref{subsec:theorem},它们均使用预置的定理样式 \code{easy-theorem}。下面 \module*{thmset} 模块的选项仅对这个定理样式生效,由 \pkg*{thmtools} 宏包提供支持。 \begin{options} \keybool{thmbox}\Module{thmset}\Default{false} - 开启定理环境盒子的边框,需载入 \pkg*{tcolorbox} 宏包才生效。这个选项与 \pkg*{thmtools} 中并不一致,\pkg*{thmtools} 的同名选项包括 \code{L}、\code{M} 和 \code{S} 三个参数。 + 给定理环境使用彩色盒子。这个特殊选项在 \module*{thmset} 模块中使用 \pkg*{tcolorbox} 宏包来支持,\meta{盒子风格} 默认为 \code{tc-theorem}。新建定理命令的同名选项则包括 \code{L}、\code{M} 和 \code{S} 三个参数。 \keychoice{within}{chapter,section,其它环境,空置}\Default{chapter} 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器编号。 \keyval-{headpunct}{代码}\Default @@ -536,10 +538,10 @@ 定理环境后的间距,使用 \pkg*{tcolorbox} 的盒子环境包装后被覆盖。 \keyval-{postheadspace}{刚性长度}\Default{1em} 定理标题后与定理第一段内容的间距。 - \keyval-{headformat}{标题格式}\Default{\cs*{NAME}\cs*{space}\cs*{NUMBER}\cs*{NOTE}} - 定理开头部分各组成元素的排列和格式,这个选项一般不需要使用,其中 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表标题、编号和题注。 - \kvsplit{brackets}{左括号,右括号}\Default{\Marg{(,)}} - 设置行间公式编号标签的括号,以英文逗号分隔,分别为左右括号。 + \kvsplit*{notebraces}{\meta{左括号}\code{\}\{}\meta{右括号}}\Default{\Marg{(}\Marg{)}} + 设置定理题注两边的括号,两个必选参数分别代表左括号和右括号。 + \keyval-{headformat}{标题排列}\Default{\cs*{NAME}\cs*{space}\cs*{NUMBER}\cs*{NOTE}} + 定理标题各组成元素的位置排列和格式。定理标题由定理名、编号和题注组成,\meta{标题排列} 中参数 \cs*{NAME}、\cs*{NUMBER} 和 \cs*{NOTE} 分别代表定理名、编号和题注。 \end{options} \subsubsection{新建定理样式} @@ -547,8 +549,8 @@ \command{declaretheorem}[\oarg{键值列表1}\marg{定理环境}\oarg{键值列表2}] 声明新的定理环境命令,\cs{newtheorem} 命令与它等效。可选参数的 \meta{键值列表1} 与 \meta{键值列表2} 等效,用法与它们的同名命令一致。键值列表中常用的选项如下: \begin{options} - \keyval*-{name}{定理标题} - 定理标题的默认值是环境的名称,并且首字母大写(英文标题)。 + \keyval*-{name}{定理名} + 定理名的默认值是首字母大写的环境名称(英文标题)。 \keychoice*{numbered}{no,yes,unless unique}\Default{yes} 定理可以被编号、不被编号或者只有在文档中多次出现时才被编号。 \keyval*-{numberlike}{计数器}\Default @@ -560,8 +562,8 @@ 定理声明命令 \cs{DeclareTheorem} 更加便捷,同样定义一个新的定理环境,与 \cs{declaretheorem} 命令的键值列表支持相同的选项,但它们的区别有: \begin{itemize} \item 中英文模式下标题不同,英文标题为可选项,默认为首字母大写的 \meta{环境名}。 - \item 自动定义交叉引用的格式,引用标签前缀为定理标题名称。 - \item 定理盒子选项 \keyis-{thmbox}{true} 仍然生效,此时 \meta{盒子风格} 为定理盒子风格的名称,它需要由新建盒子风格命令 \cs{newtcbstyle} 定义,默认为 \code{tc-theorem}。 + \item 自动定义交叉引用的格式,引用标签前缀为定理名。 + \item 模块 \module*{thmset} 的定理盒子选项 \keyis-{thmbox}{true} 仍然生效,其中 \meta{盒子风格} 可以使用新建盒子风格命令 \cs{newtcbstyle} 定义。 \item 新建定理环境默认使用的 \meta{定理样式} 为 \code{easy-theorem},而不是 \pkg*{thmtools} 默认样式。 \end{itemize} \command{declaretheoremstyle}[\oarg{键值列表1}\marg{定理样式}\oarg{键值列表2}] @@ -853,7 +855,7 @@ \environment{example}\default{} \environment{remark}\default{} \environment{proof} - 这些是预置的定理环境,可使用选项 \module*{thmset/}\option{thmbox} 为它们添加盒子边框,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改边框样式见小节 \ref{subsec:theorem of style}。环境名与之对应的定理标题名如下: + 这些是预置的定理环境,可使用选项 \module*{thmset/}\option{thmbox} 为它们添加盒子边框,其中注与证明环境不编号,证明末尾会自动添加证明结束符,声明新的定理环境或更改边框样式见小节 \ref{subsec:theorem of style}。环境名与之对应的定理名名如下: \begin{center} \begin{tabular}{*{8}{c}} \toprule @@ -1051,7 +1053,7 @@ \begin{ctexexam} \labelformat{eb@theorem}{定理 #1} \newcommand{\theoremhead}[1]{定理 \UseCounter[chapter]{theorem}{\hspace{1em}#1}} - \theoremhead{定理标题}\label{thm:theorem} + \theoremhead{定理内容}\label{thm:theorem} \end{ctexexam} \end{commands} @@ -1091,7 +1093,7 @@ \begin{options} \keyval-{width}{符号宽度}\Default{2em} 设置适当的符号宽度可以防止文字重叠和边界溢出等问题。 - \keyval-{delim}{引导符}\Default{——} + \keyval-{delim}{引导符}\Default{\Marg{——}} 全局的符号对照引导符,\cs{symb} 局部的 \meta{引导符} 和对齐方式是基于这个符号的宽度。 \keyval-{space}{符号间隙}\Default{0.25em} 符号间隙为引导符两侧与符号和说明文字间的距离。 diff --git a/macros/latex/contrib/makelabels/LICENSE.md b/macros/latex/contrib/makelabels/LICENSE.md new file mode 100644 index 0000000000..99a6973749 --- /dev/null +++ b/macros/latex/contrib/makelabels/LICENSE.md @@ -0,0 +1,19 @@ +---------------------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of the +LaTeX Project Public License, version 1.3c of the license. 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 2005/12/01 +or later. This work has the LPPL maintenance status “maintained”. +The current maintainer and author of this work is Markus Kohm. + +---------------------------------------------------------------------------- + +Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle +Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained” +Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm. + +---------------------------------------------------------------------------- diff --git a/macros/latex/contrib/makelabels/README.md b/macros/latex/contrib/makelabels/README.md new file mode 100644 index 0000000000..988b116c4f --- /dev/null +++ b/macros/latex/contrib/makelabels/README.md @@ -0,0 +1,123 @@ +# Letter Class Option `makelabels` + +---------------------------------------------------------------------------- + +Copyright (c) Markus Kohm, 2009-2021 +Licence: LPPL 1.3c +Release: 2021/08/14 v1.0 + +---------------------------------------------------------------------------- + +Requires: KOMA-Script + +---------------------------------------------------------------------------- + +## Summary + +The standard letter class `letter` has a label feature. You can activate it +using `\makelabels`. While in Germany window envelopes are common, printing +labels is not common and `scrlttr2` never supported label printing. At the +[German KOMA-Script book](https://komascript.de/komascriptbuch) I've shown +how you can print labels simply by printing a letter with special pseudo +value settings. Doing so you can use several configuration features. Using +`makelabels.lco` in opposite does only implement a `\makelabels` feature +similar to the standard letter classes. Currently there are no +configuration features at `makelabels.lco`. But you may use package +[`envlab`](https://www.ctan.org/pkg/envlab) from CTAN after loading +`makelabels.lco` to get various configuration features. + +## Installation + +It is recommended to use the package manager of your TeX distribution to +install `makelabels.lco`. But if this is not possible of if you are a +distribution you can either use `l3build` and [sources from the git +repository](https://github.com/komascript/makelabels) or a completely manual +installation using a basic source file distribution. + +### Manual installation using `l3build` and the git sources + +First of all copy or clone the sources of the current release or the developer +code from [github](https://github.com/komascript/makelabels) and use + + l3build unpack + +to unpack the package. The unpacked files then can be found be in +`build/unpacked`. You can use + + l3build doc + +to generate the manual and the example PDFs. + + l3build install + +to install the package locally. But this will neither install the manual nor +nor the example files. Currently there are two example files, generated by +`l3build`: + + - `makelabels-example.tex` is the source of a very simple example using + `scrletter` class and `makelabels.lco` only. The result can be found in + `makelabels-example.pdf` + - `makelabels-envlab-example.tex` is the source of an example that shows + how to use package [`envlab`](https://www.ctan.org/pkg/envlab) in + combination with `scrletter` class and `makelabels.lco` to have more + versability. + +### Manual installation using a basic source distribution + +A basic source distribution consists of `makelabels.dtx` and `README.md` +only. There may be additional manual and demo files like `makelabels.pdf`, +`makelabels-example.pdf` or `makelabels-envlab-example.pdf`. + +If you have got such a basic source distribution, i.e., from CTAN, +you first have to unpack the files using: + + tex makelabels.dtx + +Don't use `latex`, `pdflatex`, `lualatex` or `xelatex` instead of `tex`! +The unpacking will produce `makelabels.lco`, `makelabels-example.tex` and +`makelabels-envlab-example.tex`. + +If your source distribution does not contain the manual `makelabels.pdf` and +the example files `makelabals-example.pdf` and `makelabels-envlab-example.pdf` +you can generate these (after the unpacking previously explained) using: + + pdflatex makelabels-example.tex + pdflatex makelabels-example.tex + pdflatex makelabels-envlab-example.tex + pdflatex makelabale-envlab-example.tex + pdflatex makelabels.dtx + mkindex makelabels + pdflatex makelabels.dtx + mkindex makelabels + pdflatex makelabels.dtx + +To install all the runtime files, make a folder `tex/latex/makelabels` in you +private or local TEXMF tree if this folder does not yet exists. Then copy +`makelabels.lco` to this folder. + +To install the manual and the demo files, make a folder `doc/latex/makelabels` +in the same TEXMF tree you've uses for the installation of +`makelabels.lco`, if the folder does not yet exists. Then copy the demo files +`makelabels-example.tex`, `makelabels-envlab-example.tex`, +`makelabels-example.pdf`, `makelabels-envlab-example.pdf` and the manual +`makelabels.pdf` to this folder. + + MiKTeX users have to additionally update the *Filename Database*. See the + manual of the *MiKTeX console* for more information. TeX Live user usually do + not need to run `texhash`, because the private and the personal TEXMF tree is + usually searched completely. + +## Usage + +Like all other LCO files you can load `makelabels.lco` using +`\LoadLetterOption{makelabels}`. For `scrlttr2` loading via optional +argument of `\documentclass` also works, but is not recommended any longer. + +After loading the LCO file, you can add `\makelabels` into your document +preamble to active the automatic generation of labels at the end of the +document while reading the `*.aux`-file. + +Note: In oposite to other LCO files you must not load `mkalelabels.lco` +after `\begin{document}`! + +See the manual for more information. diff --git a/macros/latex/contrib/makelabels/makelabels-envlab-example.pdf b/macros/latex/contrib/makelabels/makelabels-envlab-example.pdf new file mode 100644 index 0000000000..efe4882452 Binary files /dev/null and b/macros/latex/contrib/makelabels/makelabels-envlab-example.pdf differ diff --git a/macros/latex/contrib/makelabels/makelabels-example.pdf b/macros/latex/contrib/makelabels/makelabels-example.pdf new file mode 100644 index 0000000000..0259dd794b Binary files /dev/null and b/macros/latex/contrib/makelabels/makelabels-example.pdf differ diff --git a/macros/latex/contrib/makelabels/makelabels.dtx b/macros/latex/contrib/makelabels/makelabels.dtx new file mode 100644 index 0000000000..17e28cc128 --- /dev/null +++ b/macros/latex/contrib/makelabels/makelabels.dtx @@ -0,0 +1,765 @@ +% \iffalse^^A meta-comment +% ====================================================================== +% makelabels.dtx +% Copyright (c) Markus Kohm, 2009-2021 +% +% This file is part of the LaTeX2e package `makelabels'. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% 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 2005/12/01 and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of the files `makelabels.dtx' and `README.md'. +% ====================================================================== +% +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\ProvidesFile{makelabels.dtx} +% +%\ProvidesFile{makelabels.lco} +%\ProvidesFile{makelabels-example.tex} +%\ProvidesFile{makelabels-envlab-example.tex} + [2021/08/14 v1.0 provide labels with scrlttr2 and scrletter] +%<*dtx> +\ifx\documentclass\undefined + \input l3docstrip.tex + \generate{% + \usedir{tex/latex/makelabels} + \file{makelabels.lco}{\from{makelabels.dtx}{lco}} + \usedir{doc/latex/makelabels} + \file{makelabels-example.tex}{\from{makelabels.dtx}{exmpl,simple}} + \file{makelabels-envlab-example.tex}{\from{makelabels.dtx}{exmpl,envlab}} + } +\else + \let\endbatchfile\relax +\fi +\endbatchfile +\documentclass{l3doc} +\usepackage{booktabs} +\usepackage{scrlogo} +\usepackage{graphicx} +\GetFileInfo{makelabels.dtx} +\begin{document} +\title{Adding label functionality to + \texorpdfstring{\file{scrlttr2}}{scrlttr2} and + \texorpdfstring{\file{scrletter}}{scrletter} using + \texorpdfstring{\file{makelabels.lco}}{makelabels.lco}} +\date{\fileversion{} \filedate\footnote{For support and/or bug reports see + \href{https://github.com/komascript/makelabels}{the project pages}.}} +\author{Markus Kohm} +\maketitle +\begin{abstract} + In opposite to the standard letter class, the \KOMAScript{} letter class + \file{scrlttr2} and the \KOMAScript{} letter package \file{scrletter} do not + provide generation of a label page using \cs[no-index]{makelabels}. But + \KOMAScript{} provides the option to add new letter features using LCO + files. \file{makelabels.lco} is such a LCO file. It provides + \cs[no-index]{makelabels} similar to the standard letter class. The new + \cs[no-index]{makelabels} has a yet very rudimentary configurability but + much more than the standard letter class provides. However, it is also as + much compatible as needed that packages like + \href{https://www.ctan.org/pkg/enlab}{\file{envlab}} can be used. From + version 1.0 \file{makelabels.lco} is implemented using + \href{https://www.ctan.org/pkg/l3kernel}{\file{expl3}}. +\end{abstract} +\tableofcontents +\DocInput{\filename} +\end{document} +% +% \fi^^A meta-comment +% +% \changes{v0.5}{2008/01/11}{First version released as \file{mlabel.lco} at +% \url{https://komascript.de/mlabel.lco}} +% \changes{v1.0}{2021/08/11}{Reimplementation using \file{expl3} syntax} +% +% \DoNotIndex{\@ifundefined,\@mainaux,\@onlypreamble,\@spaces,\@texttop} +% \DoNotIndex{\activateareas,\AtEndLetter} +% \DoNotIndex{\begin,\blindtext,\boxmaxdepth} +% \DoNotIndex{\c_empty_tl,\c_max_dim,\c_one_int,\c_zero_dim} +% \DoNotIndex{\clearpage,\closing,\columnsep} +% \DoNotIndex{\cs:w,\cs_end:} +% \DoNotIndex{\cs_if_exist:cTF,\cs_if_exist:NTF,\cs_new:Nn,\cs_new:Npn} +% \DoNotIndex{\cs_new_nopar:Nn} +% \DoNotIndex{\cs_set:Npn,\cs_set_eq:NN,\dim_new:N,\dim_set:Nn,\dim_set_eq:NN} +% \DoNotIndex{\dim_sub:Nn,\documentclass} +% \DoNotIndex{\else:,\end,\endinput,\evensidemargin} +% \DoNotIndex{\exp_args:Nc,\ExplSyntaxOff,\ExplSyntaxOn} +% \DoNotIndex{\fi,\fi:,\fontsize,\frame,\FromAddressLeftMargin} +% \DoNotIndex{\FromAddressTopMargin} +% \DoNotIndex{\GenericError,\group_begin:,\group_end:} +% \DoNotIndex{\headheight,\headsep,\hook_gput_code:nnn} +% \DoNotIndex{\if@atdocument,\if@filesw,\if@twocolumn} +% \DoNotIndex{\if_cs_exist:N,\if_int_compare:w,\if_meaning:w} +% \DoNotIndex{\IfBooleanTF,\IfFormatAtLeastTF,\IfValueTF,\ignorespaces} +% \DoNotIndex{\int_incr:N,\int_new:N,\int_set:Nn,\int_set_eq:NN} +% \DoNotIndex{\int_step_inline:nnn} +% \DoNotIndex{\iow_char:N,\iow_now:Nn,\iow_now:Nx} +% \DoNotIndex{\l_tmpa_tl,\lineskip,\LoadLetterOptions} +% \DoNotIndex{\msg_error:nnn,\msg_fatal:nnn,\msg_new:nnn,\msg_warning:nnnn} +% \DoNotIndex{\newcommand,\NewExpandableDocumentCommand} +% \DoNotIndex{\oddsidemargin,\onecolumn,\opening} +% \DoNotIndex{\pagestyle,\paperheight,\paperwidth,\par,\parbox} +% \DoNotIndex{\prop_new:c,\prop_new:N,\prg_new_conditional:Nnn} +% \DoNotIndex{\prg_return_false:,\prg_return_true:} +% \DoNotIndex{\prop_get:cnNTF,\prop_get:NnNTF,\prop_new:N} +% \DoNotIndex{\prop_set_from_keyval:cn,\prop_set_from_keyval:Nn} +% \DoNotIndex{\providecommand} +% \DoNotIndex{\raggedright,\relax,\selectfont,\setkomavar,\setlength} +% \DoNotIndex{\skip_horizontal:N,\skip_vertical:N,\str_new:N,\str_set:Nn} +% \DoNotIndex{\textheight,\textwidth,\token_to_str:N,\topmargin} +% \DoNotIndex{\use:e,\use:n,\usepackage} +% +% \section{Installation} +% +% It is recommended to use the package installer of the \TeX{} +% distribution. If you don't use a \TeX{} distribution with package installer, +% that provides \file{makelabels.lco}, please see the advanced installation +% information in the +% \href{https://github.com/komascript/makelabels/blob/main/README.md}% +% {\file{README.md}}. +% +% \section{Basic Usage} +% +% First of all please note, that \file{makelabels.lco} needs \LaTeX{} from +% version 2020/10/01. It is recommended to use at least \LaTeX{} 2021/06/01, +% because this is the \LaTeX{} version used for development of +% \file{makelabels.lco}. Also \KOMAScript{} version 3.34 or newer is +% recommended. If you would use an older \KOMAScript{} version you would do +% this on your own risk. Please do not expect any support in this +% case. +% +% To use the \file{makelabels.lco} you have to use either \KOMAScript{} +% letter class \file{scrlttr2} or \file{scrletter} or the \KOMAScript{} +% letter package \file{scrletter}. After loading the class resp. package you +% have to load \file{makelabels.lco} using: +% \begin{verbatim} +% \LoadLetterOption{makelabels} +% \end{verbatim} +% in your document preamble. Note: This LCO cannot be loaded after +% |\begin{document}|. +% +% Loading the LCO file already activates generation of label information +% inside the \file{aux}-file of your document. Nothing else. +% +% \DescribeMacro\makelabels +% To activate the label generation you have to add +% \begin{verbatim} +% \makelabels +% \end{verbatim} +% to your document preamble after loading \file{makelabels.lco} (see +% above). Now at the end of the document, after printing all letters +% \file{makelabels} generates one or more additional sheets with address +% labels. The default label sheet is of type Avery~5162. This is a label sheet +% with seven rows and two columns of labels. It is compatible with several +% other Avery label types. +% +% \DescribeMacro\selectlabeltype +% If you need more than one label per letter or another label type you can use: +% \begin{syntax} +% \cs{selectlabeltype}\oarg{integer}\marg{string} +% \end{syntax} +% This selects \meta{integer} labels of type \meta{string} for each following +% letter (inclusive the current letter, if used between |\begin{letter}| and +% |\end{letter}|. See \autoref{tab:labeltypes} for the allowed \meta{string} +% arguments and the corresponding label types. +% +% \begin{table} +% \begin{minipage}{\linewidth} +% \centering +% \begin{tabular}{llr} +% \toprule +% \textbf{\meta{string}} & \multicolumn2l{\textbf{Specification}} \\ +% & Measure & {Value} \\ +% \midrule +% \texttt{avery\_5162}\footnote{\url{https://www.avery.com/products/labels/5162}} +% & sheet height & 11\,in\\ +% & sheet width & 8.5\,in\\ +% & sheet top margin & 0.845\,in\\ +% & sheet bottom margin & 0.845\,in\\ +% & sheet left margin & 0.167\,in\\ +% & sheet right margin & 0.167\,in\\ +% & label height & 1.330\,in\\ +% & label width & 4\,in\\ +% & horizontal distance & 0.166\,in\\ +% & vertical distance & 0\,pt\\ +% & label left margin & 5\,pt\\ +% & label right margin & 5\,pt\\ +% & label top margin & 0\,pt\\ +% & label bottom margin & 0\,pt\\ +% & rows & 7\hphantom{\,pt}\\ +% & columns & 2\hphantom{\,pt}\\ +% \bottomrule +% \end{tabular} +% \caption{Known Label Types} +% \label{tab:labeltypes} +% \end{minipage} +% \end{table} +% +% \section{Advanced Usage} +% +% \DescribeMacro\makelabels_add_label_type:nn +% Advanced users can add their own label sheet definitions. But currently +% there is only an \file{expl3} interface for this. If you do not know +% \file{expl3}, please stop reading. There is no support for this feature, +% currently. +% \begin{syntax} +% \cs{makelabels_add_label_type:nn} \meta{string} +% \{ +% sheet height = \meta{dim_1}, +% sheet width = \meta{dim_2}, +% sheet top margin = \meta{dim_3}, +% sheet bottom margin = \meta{dim_4}, +% sheet left margin = \meta{dim_5}, +% sheet right margin = \meta{dim_6}, +% vertical distance = \meta{dim_7}, +% horizontal distance = \meta{dim_8}, +% label height = \meta{dim_9}, +% label width = \meta{dim_{10}}, +% label top margin = \meta{dim_{11}}, +% label bottom margin = \meta{dim_{12}}, +% rows = \meta{int_{1}}, +% columns = \meta{int_{2}} +% \} +% \end{syntax} +% Currently all \meta{dim_x}, which are not specified, will be 0\,pt and all +% \meta{int_x}, which are not specified, will be 1. +% +% The names of the properties should be self-explaining. If not, don't use it! +% +% Note: You can participate in the development of \file{makelabels.lco} by +% posting and explaining your own label specifications. +% +% \section{Simple Example} +% \label{sec:simpleexample} +% +% A very simple example for using \file{makelabels.lco} would be: +% \iffalse^^A meta-comment +%<*exmpl&simple> +% \fi +% \begin{macrocode} +\documentclass[paper=letter]{scrletter} +\LoadLetterOptions{UScommercial9,makelabels} +\usepackage[english]{babel} +\usepackage{blindtext} +\setkomavar{fromname}{John Doe} +\setkomavar{fromaddress}{1 Lambda Street\\Anyplace, NY 12345} +\makelabels +\begin{document} +\begin{letter}{Jane Doe\\2 Alpha Street\\Otherplace, NY 12346} +\opening{Dear Jane,} +\blindtext +\closing{With love} +\end{letter} +\end{document} +% \end{macrocode} +% \iffalse^^A meta-comment +% +% \fi +% It would produce the two pages shown in \autoref{fig:example}. +% +% \begin{figure} +% \centering +% \begin{tabular}{|l|l|} +% \hline +% \includegraphics[page=1,width=.45\linewidth]{makelabels-example.pdf} & +% \includegraphics[page=2,width=.45\linewidth]{makelabels-example.pdf} \\ +% \hline +% \end{tabular} +% \caption{The letter and the label sheet of the simple example of +% \protect\autoref{sec:simpleexample}.} +% \label{fig:example} +% \end{figure} +% +% If you like, you could add an additional +% \begin{verbatim} +% \selectlabeltype[14]{avery_5162} +% \end{verbatim} +% after |\begin{document}|. In this case, you would get a whole sheet of 14 +% labels (7 rows by 2 columns). +% +% \section{Example using additional label packages} +% \label{sec:envlabexample} +% As already mentioned in the abstract you can use \file{makelabels.lco} +% together with package \href{https://ctan.org/pkg/envlab}{\file{envlab}}. In +% this case, it is important to load \file{makelabels.lco} before package +% \file{envlab}: +% \iffalse^^A meta-comment +%<*exmpl&envlab> +% \fi +% \begin{macrocode} +\documentclass[paper=letter]{scrletter} +\LoadLetterOptions{UScommercial9,makelabels} +\usepackage[english]{babel} +\usepackage{blindtext} +\setkomavar{fromname}{John Doe} +\setkomavar{fromaddress}{1 Lambda Street\\Anyplace, NY 12345} + +\usepackage[centerenvelopes,businessenvelope]{envlab} +\setlength{\FromAddressTopMargin}{0.25in} +\setlength{\FromAddressLeftMargin}{0.25in} +\makelabels + +\begin{document} + +\begin{letter}{Jane Doe\\2 Alpha Street\\Otherplace, NY 12346} +\opening{Dear Jane,} +\blindtext +\closing{With love} +\end{letter} +\end{document} +% \end{macrocode} +% \iffalse^^A meta-comment +% +% \fi +% It would produce the two pages shown in \autoref{fig:envlabexample}. +% +% \begin{figure} +% \centering +% \begin{tabular}{|l|l|} +% \hline +% \includegraphics[page=1,width=.45\linewidth]{makelabels-envlab-example.pdf} & +% \includegraphics[page=2,width=.45\linewidth]{makelabels-envlab-example.pdf} \\ +% \hline +% \end{tabular} +% \caption{The letter and the envelope sheet of the \protect\file{envlab} +% example of \protect\autoref{sec:envlabexample}.} +% \label{fig:envlabexample} +% \end{figure} +% +% Please note: package \file{envlab} redefines macro |\@toaddressfont|, which +% is also an internal macro of \file{scrlttr2} or \file{scrletter}. The +% \KOMAScript{} classes resp. the \KOMAScript{} package uses this to store the +% font of the recipient's address. So loading \file{envlab} will change the +% font of the recipient's address. To avoid this you could use additional +% preamble code: +% \begin{verbatim} +% \makeatletter +% \AtBeginDocument{% +% \immediate\write\@auxout{% +% \string\def\string\@toaddressfont{% +% \expandafter\detokenize\expandafter{\@toaddressfont}}}% +% \setkomafont{toaddress}{}% set the recepient's address font +% } +% \makeatother +% \end{verbatim} +% This delays the \file{envlab}'s redefinition of |\@toaddressfont| until the +% \emph{labels} are generated. +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementation} +% +% \begin{macrocode} +%<*lco> +%<@@=makelabels> +% \end{macrocode} +% +% \subsection*{Load time actions} +% +% We need at least \LaTeX{} 2020/10/01. +% \begin{macrocode} +\newcommand*{\makelabels@fatal@format@error}{% + \GenericError{(makelabels)\@spaces\@spaces\@spaces\@spaces}% + {Fatal makelabels.lco error: LaTeX too old.}% + {See the makelabels.lco documentation for explanation.}% + {At least LaTeX 2020/10/01 is needed}% + \endinput +} +\@ifundefined{IfFormatAtLeastTF}{% + \makelabels@fatal@format@error +}{% + \IfFormatAtLeastTF{2020/10/01}{}{\makelabels@fatal@format@error}% +} +% \end{macrocode} +% +% With this version of \LaTeX{}, we do not need to load \file{expl3} +% explicitly but can just switch to the syntax. +% \begin{macrocode} +\ExplSyntaxOn +% \end{macrocode} +% +% This LCO file can be used in the document preamble only. If we are already +% have begun the document, this would be fatal. +% \begin{macrocode} +\msg_new:nnn { makelabels } { onlypreamble } + { Sorry,~but~`makelabels.lco'~can~be~used~in~the~document~preamble~only. } +\if@atdocument + \msg_fatal:nnn { makelabels } { onlypreamble } +\fi +% \end{macrocode} +% +% \begin{macro}{\makelabels_add_label_type:nn} +% Labels have only a width and height. They are placed in a number of rows and +% columns at a label sheet. The sheet has also a width and height. There is a +% margin left of the first label, above the first label, right of the first +% label and below the last label. And there may be a horizontal and a vertical +% distance between the labels. See the definition of Avery 5162 labels for +% all properties. +% +% Note: currently all properties have to be setup correctly. +% \begin{macrocode} +\cs_new_nopar:Nn \makelabels_add_label_type:nn + { + \prop_new:c { g_@@_label_type_#1_prop } + \prop_set_from_keyval:cn { g_@@_label_type_#1_prop } { #2 } + } +% \end{macrocode} +% \end{macro} +% +% The first label type we define is \texttt{avery_5162}: +% \begin{macrocode} +\makelabels_add_label_type:nn { avery_5162 } + { + sheet height = 11 in, + sheet width = 8.5 in, + sheet top margin = 0.845 in, + sheet bottom margin = 0.845 in, + sheet left margin = 0.167 in, + sheet right margin = 0.167 in, + label height = 1.330 in, + label width = 4 in, + horizontal distance = 0.166 in, + vertical distance = 0 pt, + label left margin = 5 pt, + label right margin = 5 pt, + label top margin = 0 pt, + label bottom margin = 0 pt, + rows = 7, + columns = 2, + } +% \end{macrocode} +% +% We also have to take care that at the end of each letter the label is written +% to the \file{aux}-file. +% \begin{function}[EXP]{\@@_Ifkomavarempty} +% To be able to write to the \file{aux}-file, we need an expandable verion +% of \KOMAScript's \cs{Ifkomavarempty}. To make simple wrapping possible, we +% define it as an internal document command. +% \begin{macrocode} +\NewExpandableDocumentCommand \@@_Ifkomavarempty { s m m m } + { + \IfBooleanTF { #1 } + { + \exp_args:Nc \@@_if_empty_var_or_name:NTF{scr@#2@name}{#3}{#4} + } + { + \exp_args:Nc \@@_if_empty_var_or_name:NTF{scr@#2@var}{#3}{#4} + } + } +% \end{macrocode} +% \end{function} +% \begin{function}[pTF]{\@@_if_empty_var_or_name:N} +% This is the real internal command. Now, the first argument is not the +% variable any longer, but the macro storing the variable or name. +% \begin{macrocode} +\prg_new_conditional:Nnn \@@_if_empty_var_or_name:N { p, T, F, TF } + { + \if_cs_exist:N #1 + \if_meaning:w #1 \c_empty_tl + \prg_return_true: \else: \prg_return_false: \fi: + \else: + \prg_return_false: + \fi: + } +% \end{macrocode} +% \end{function} +% +% \begin{function}[EXP]{\@@_usekomavar} +% To be able to write to the \file{aux}-file, we need an expandable version +% of \KOMAScript's \cs{usekomavar}. To make simple wrapping possible, we +% define it as an internal document command. +% \begin{macrocode} +\NewExpandableDocumentCommand \@@_usekomavar { s o m } + { + \IfValueTF{#2}{#2}{\use:e}{\cs:w scr@#3@\IfBooleanTF{#1}{name}{var}\cs_end:} + } +% \end{macrocode} +% \end{function} +% +% Now, after defining new, expandable versions of most of the usually needed +% not expandable \KOMAScript{} user command, we can write to the +% \file{aux}-file at the end of every letter. Note, we have to write +% immediately (using \cs[no-index]{iow_now:Nx}), to use the current definition +% of the commands redefined in the local group. +% \begin{macrocode} +\AtEndLetter + { + \if@filesw + \group_begin: + \cs_set:Npn \Ifkomavarempty { \@@_Ifkomavarempty } + \cs_set:Npn \usekomavar { \@@_usekomavar } + \iow_now:Nx \@mainaux + { + \token_to_str:N \@mlabel + \iow_char:N \{ \usekomavar{backaddress} \iow_char:N \} + \iow_char:N \{ \usekomavar{toname} \iow_char:N \\ \iow_char:N \\ + \usekomavar{toaddress} \iow_char:N \} + } + \group_end: + \fi + } +% \end{macrocode} +% +% \subsection*{The preamble commands} +% +% \begin{macro}{\makelabels} +% Preamble only command to activate the label generation via the +% \file{aux}-file. +% \begin{macrocode} +\cs_new:Npn \makelabels + { + \hook_gput_code:nnn { begindocument } { makelabels.lco } + { + \cs_set_eq:NN \@startlabels \startlabels + \cs_set_eq:NN \@mlabel \mlabel + \cs_set_eq:NN \@mlabeltype \mlabeltype + \if@filesw + \iow_now:Nn \@mainaux { \@startlabels }% + \fi + } + \hook_gput_code:nnn { enddocument / afterlastpage } { makelabels.lco } + { + \if@filesw + \iow_now:Nn \@mainaux { \clearpage } % + \fi + } + } +\@onlypreamble \makelabels +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\selectlabeltype} +% Used in the document preamble or inside the document to select another label +% type. +% \begin{macrocode} +\newcommand*{\selectlabeltype}[2][1]{ + \cs_if_exist:cTF { g_@@_label_type_#2_prop } + { + \if@filesw + \iow_now:Nn \@mainaux + { + \@mlabeltype { #1 } { #2 } + } + \fi + } + { + \msg_error:nnn { makelabels } { unkown label type } { #1 } + } +} +% \end{macrocode} +% \end{macro} +% +% \subsection*{The \file{aux}-file commands} +% +% \begin{macro}{\@startlabels} +% \begin{macro}{\@mlabel} +% \begin{macro}{\@mlabeltype} +% All these are dummies until \cs{makelabels} has been used. +% \begin{macrocode} +\hook_gput_code:nnn { begindocument } { makelabels.lco } + { + \if@filesw + \iow_now:Nn \@mainaux { \providecommand* { \@startlabels } { } } + \iow_now:Nn \@mainaux { \providecommand* { \@mlabel }[2] { } } + \iow_now:Nn \@mainaux { \providecommand* { \@mlabeltype } [ 2 ] { } } + \fi + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\mlabeltype} +% Select generating \#1 labels of type \#2. +% \begin{macrocode} +\int_new:N \g_@@_label_repeat_int +\int_set_eq:NN \g_@@_label_repeat_int \c_one_int +\str_new:N \g_@@_label_type_str +\str_set:Nn \g_@@_label_type_str { avery_5162 } +\cs_new:Npn \mlabeltype #1#2 + { + \int_set:Nn \g_@@_label_repeat_int { #1 } + \str_set:Nn \g_@@_label_type_str { #2 } + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\startlabels} +% Start a new label page. We have to setup several page layout parameter +% depending on the current label type \cs{g_@@_label_type_str}. +% \begin{macrocode} +\cs_new:Npn \startlabels + { + \clearpage + \if@twocolumn \onecolumn \fi + \pagestyle{empty} + \cs_set_eq:NN \@texttop \relax + \dim_set_eq:NN \headheight \c_zero_dim + \dim_set_eq:NN \headsep \c_zero_dim + \dim_set_eq:NN \lineskip \c_zero_dim + \@@_prop_get_dim:nN { sheet height } \paperheight + \@@_prop_get_dim:nN { sheet top margin } \topmargin + \dim_sub:Nn \topmargin { 1in } + \@@_prop_get_dim:nN { sheet width } \paperwidth + \@@_prop_get_dim:nN { sheet left margin } \oddsidemargin + \dim_sub:Nn \oddsidemargin { 1in } + \dim_set_eq:NN \evensidemargin \oddsidemargin + \@@_prop_get_int:nN { rows } \g_@@_rows_int + \@@_prop_get_int:nN { columns } \g_@@_columns_int + \@@_prop_get_dim:nN { label height } \g_@@_label_height_dim + \@@_prop_get_dim:nN { label width } \g_@@_label_width_dim + \@@_prop_get_dim:nN { vertical distance } \g_@@_vertical_skip_dim + \@@_prop_get_dim:nN { horizontal distance } \columnsep + \dim_set:Nn \textheight + { + ( \g_@@_label_height_dim + \g_@@_vertical_skip_dim ) * \g_@@_rows_int + - \g_@@_vertical_skip_dim + } + \dim_set:Nn \textwidth + { + ( \g_@@_label_width_dim + \columnsep ) * \g_@@_columns_int + - \columnsep + } + \@@_prop_get_dim:nN { label top margin } \g_@@_label_top_margin_dim + \@@_prop_get_dim:nN { label bottom margin } \g_@@_label_bottom_margin_dim + \@@_prop_get_dim:nN { label left margin } \g_@@_label_left_margin_dim + \@@_prop_get_dim:nN { label right margin } \g_@@_label_right_margin_dim + \activateareas + \fontsize{10pt}{12pt}\selectfont + \dim_set_eq:NN \boxmaxdepth \c_max_dim + \int_set_eq:NN \g_@@_row_int \c_one_int + \int_set_eq:NN \g_@@_column_int \c_one_int + \dim_set:Nn \g_@@_label_height_effective_dim + { + \g_@@_label_height_dim + - \g_@@_label_top_margin_dim + - \g_@@_label_bottom_margin_dim + } + \dim_set:Nn \g_@@_label_width_effective_dim + { + \g_@@_label_width_dim + - \g_@@_label_left_margin_dim + - \g_@@_label_right_margin_dim + } + \raggedright + } + +\int_new:N \g_@@_rows_int +\int_new:N \g_@@_columns_int +\int_new:N \g_@@_row_int +\int_new:N \g_@@_column_int +\dim_new:N \g_@@_label_height_dim +\dim_new:N \g_@@_label_width_dim +\dim_new:N \g_@@_label_top_margin_dim +\dim_new:N \g_@@_label_bottom_margin_dim +\dim_new:N \g_@@_label_left_margin_dim +\dim_new:N \g_@@_label_right_margin_dim +\dim_new:N \g_@@_label_height_effective_dim +\dim_new:N \g_@@_label_width_effective_dim +\dim_new:N \g_@@_vertical_skip_dim +% \end{macrocode} +% \end{macro} +% +% \begin{function}{\@@_prop_get_dim:nN,\@@_prop_get_int:nN} +% \begin{syntax} +% \cs{@@_prop_get_dim:nN} \Arg{property string} \Arg{dimension variable} +% \cs{@@_prop_get_int:nN} \Arg{property string} \Arg{integer variable} +% \end{syntax} +% Get a property from the property list of the current label type +% \cs{g_@@_label_type_str} and store it as a dimension resp. integer. Unkown +% properties result in a warning message. Unkown dimenionss are assumed to be +% zero, unkown integers are assumed to be one. +% \begin{macrocode} +\msg_new:nnn { makelabels } { undefined property } + { Property~`#1'~undefined~for~label~type~`\g_@@_label_type_str'.~ + Value~#2~assumed. } + +\cs_new:Nn \@@_prop_get_dim:nN + { + \prop_get:cnNTF { g_@@_label_type_ \g_@@_label_type_str _prop } { #1 } \l_tmpa_tl + { \dim_set:Nn #2 \l_tmpa_tl } + { + \msg_warning:nnnn { makelabels } { undefined property } { #1 } { zero } + \dim_set_eq:NN #2 \c_zero_dim + } + } + +\cs_new:Nn \@@_prop_get_int:nN + { + \prop_get:cnNTF { g_@@_label_type_ \g_@@_label_type_str _prop } { #1 } \l_tmpa_tl + { \int_set:Nn #2 \l_tmpa_tl } + { + \msg_warning:nnnn { makelabels } { undefined property } { #1 } { one } + \int_set_eq:NN #2 \c_one_int + } + } +% \end{macrocode} +% \end{function} +% +% \begin{macro}{\@@_print_one_label:} +% Currently we do not support different output routines for different label +% types. So this command is always the same. +% \begin{macrocode} +\cs_new:Nn \@@_print_one_label:nn + { +% \frame{ + \parbox[b][\g_@@_label_height_dim]{\g_@@_label_width_dim}{ + \skip_vertical:N \g_@@_label_top_margin_dim + \skip_horizontal:N \g_@@_label_left_margin_dim + \parbox[c][\g_@@_label_height_effective_dim]{\g_@@_label_width_effective_dim}{ + \ignorespaces #2 + } + \skip_vertical:N \g_@@_label_bottom_margin_dim + } +% } + \int_incr:N \g_@@_column_int + \if_int_compare:w \g_@@_column_int > \g_@@_columns_int + \par + \skip_vertical:N \g_@@_vertical_skip_dim + \int_set_eq:NN \g_@@_column_int \c_one_int + \int_incr:N \g_@@_row_int + \if_int_compare:w \g_@@_row_int > \g_@@_rows_int + \clearpage + \int_set_eq:NN \g_@@_row_int \c_one_int + \fi: + \else: + \skip_horizontal:N \columnsep + \fi: + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mlabel} +% Output the configurated number of labels. +% \begin{macrocode} +\cs_new:Npn \mlabel #1#2 + { + \int_step_inline:nnn { 1 } { \g_@@_label_repeat_int } + { + \@@_print_one_label:nn { #1 } { #2 } + } + } +% \end{macrocode} +% \end{macro} +% +% We need to not forget to switch of \file{expl3} syntax, because this is not +% a package but a LCO. +% \begin{macrocode} +\ExplSyntaxOff +% +% \end{macrocode} +% \Finale +% +\endinput +% +% Local Variables: +% mode: doctex +% TeX-master: t +% End: diff --git a/macros/latex/contrib/makelabels/makelabels.pdf b/macros/latex/contrib/makelabels/makelabels.pdf new file mode 100644 index 0000000000..1c5f282bf0 Binary files /dev/null and b/macros/latex/contrib/makelabels/makelabels.pdf differ diff --git a/macros/latex/contrib/siunitx/CHANGELOG.md b/macros/latex/contrib/siunitx/CHANGELOG.md index 87f73526de..d02f959416 100644 --- a/macros/latex/contrib/siunitx/CHANGELOG.md +++ b/macros/latex/contrib/siunitx/CHANGELOG.md @@ -7,6 +7,24 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v3.0.25] + +### Changed +- Default to sanserif units if `\familydefault` is `\sfdefault` + (issue [#516](https://github.com/josephwright/siunitx/issues/516)) + +### Fixed +- Rounding to an uncertainty of the same magnitude as the + value (issue + [#524](https://github.com/josephwright/siunitx/issues/524)) +- Extend `propogate-math-font` to cover `\mathbf` and `\mathit` + (issue [#525](https://github.com/josephwright/siunitx/issues/525)) +- Position of non-aligned non-numeric material in table cells when + centering decimal marker (issue + [#526](https://github.com/josephwright/siunitx/issues/526)) +- Treatment of multiple tokens for `input-ignore` (issue + [#531](https://github.com/josephwright/siunitx/issues/531)) + ## [v3.0.24] ### Fixed @@ -1521,7 +1539,8 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ### Added - First public testing release (as `si`) -[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.24...HEAD +[Unreleased]: https://github.com/josephwright/siunitx/compare/v3.0.25...HEAD +[v3.0.25]: https://github.com/josephwright/siunitx/compare/v3.0.24...v3.0.25 [v3.0.24]: https://github.com/josephwright/siunitx/compare/v3.0.23...v3.0.24 [v3.0.23]: https://github.com/josephwright/siunitx/compare/v3.0.22...v3.0.23 [v3.0.22]: https://github.com/josephwright/siunitx/compare/v3.0.21...v3.0.22 diff --git a/macros/latex/contrib/siunitx/siunitx-code.pdf b/macros/latex/contrib/siunitx/siunitx-code.pdf index c0a7e9b1fe..6e575cff02 100644 Binary files a/macros/latex/contrib/siunitx/siunitx-code.pdf and b/macros/latex/contrib/siunitx/siunitx-code.pdf differ diff --git a/macros/latex/contrib/siunitx/siunitx-number.dtx b/macros/latex/contrib/siunitx/siunitx-number.dtx index 38db10d71b..924aaa3b0f 100644 --- a/macros/latex/contrib/siunitx/siunitx-number.dtx +++ b/macros/latex/contrib/siunitx/siunitx-number.dtx @@ -807,6 +807,11 @@ { \group_begin: \tl_clear:N \l_@@_parsed_tl + \tl_map_inline:Nn \l_@@_input_ignore_tl + { + \token_if_macro:NT ##1 + { \cs_set_eq:NN ##1 \scan_stop: } + } \protected@edef \l_@@_arg_tl { \bool_if:NTF \l_@@_expression_bool @@ -815,9 +820,8 @@ } \tl_set_eq:NN \l_@@_input_tl \l_@@_arg_tl \siunitx_number_normalize_symbols:N \l_@@_arg_tl - \protected@edef \l_@@_input_ignore_tl { \l_@@_input_ignore_tl } - \tl_if_empty:NF \l_@@_input_ignore_tl - { \tl_remove_all:NV \l_@@_arg_tl \l_@@_input_ignore_tl } + \tl_map_inline:Nn \l_@@_input_ignore_tl + { \tl_remove_all:Nn \l_@@_arg_tl {##1} } \tl_if_empty:NF \l_@@_arg_tl { \@@_parse_comparator: } \@@_parse_check: @@ -2201,6 +2205,9 @@ % \begin{macro}[EXP]{\@@_round_auxvi:nN} % \begin{macro}[EXP]{\@@_round_auxvii:nnN, \@@_round_auxviii:nnN} % \begin{macro}[EXP]{\@@_round_final_integer:nnw, \@@_round_final_decimal:nnw} +% \begin{macro}[EXP]{\@@_round_final_signicant:n} +% \begin{macro}[EXP]{\@@_round_final_signicant:N} +% \begin{macro}[EXP]{\@@_round_final_signicant:w} % \begin{macro}[EXP]{\@@_round_final_output:nn, \@@_round_final_output:ff} % \begin{macro}[EXP]{\@@_round_final:nn, \@@_round_final:fn} % \begin{macro}[EXP]{\@@_round_final_shift:nn, \@@_round_final_shift:ff} @@ -2259,7 +2266,10 @@ % one of which deals with the integer. In the latter, we should never hit % the end before we've dropped all the digits: the fixed-zero is a % fall-back in case something weird happens. For the integer case, we need -% to collect up zeros to pad the length back out correctly later. +% to collect up zeros to pad the length back out correctly later. We also +% have to cover the case where we round to exactly place above the length +% of the integer: that may product a value of $1\dots$: we tidy up the +% case where it comes out as $0$ later. % \begin{macrocode} \cs_new:Npn \@@_round_auxiii:nnnN #1#2#3#4 { @@ -2278,13 +2288,20 @@ \cs_new:Npn \@@_round_auxiv:nnnN #1#2#3#4 { \quark_if_recursion_tail_stop_do:Nn #4 - { { 0 } { } } + { + \int_compare:nNnTF {#1} = 0 + { + \@@_round_auxvi:nnN {#3} {#2} + 0 \q_recursion_tail \q_recursion_stop + } + { { 0 } { } } + } \int_compare:nNnTF {#1} > 0 { \exp_args:Nf \@@_round_auxiv:nnnN { \int_eval:n { #1 - 1 } } { #2 0 } { #4#3 } } - { \@@_round_auxvi:nnnN {#3} {#2} #4 } + { \@@_round_auxvi:nnN {#3} {#2} #4 } } % \end{macrocode} % The lead off to rounding proper needs to deal with the half-even rule: @@ -2312,7 +2329,7 @@ { \@@_round_auxvii:nnN } {#2} { } #3 } -\cs_new:Npn \@@_round_auxvi:nnnN #1#2#3 +\cs_new:Npn \@@_round_auxvi:nnN #1#2#3 { \quark_if_recursion_tail_stop_do:Nn #3 { { 0 } { } } @@ -2409,9 +2426,27 @@ #1#2#3 \q_recursion_tail \q_recursion_stop { \@@_round_final_output:ff - { \tl_reverse:n {#3} #2 } + { \exp_args:Ne \@@_round_final_significant:n { \tl_reverse:n {#3} #2 } } {#1} } +\cs_new:Npn \@@_round_final_significant:n #1 + { + \@@_round_final_significant:N #1 + \q_recursion_tail \q_recursion_stop + } +\cs_new:Npn \@@_round_final_significant:N #1 + { + \quark_if_recursion_tail_stop_do:Nn #1 { 0 } + \int_compare:nNnTF {#1} = 0 + { \@@_round_final_significant:N } + { + #1 + \@@_round_final_significant:w + } + } +\cs_new:Npn \@@_round_final_significant:w + #1 \q_recursion_tail \q_recursion_stop + {#1} \cs_new:Npn \@@_round_final_output:nn #1#2 { {#1} {#2} } \cs_generate_variant:Nn \@@_round_final_output:nn { ff } \cs_new:Npn \@@_round_final:nn #1#2 @@ -2442,7 +2477,6 @@ \int_compare:nNnTF { \tl_count:n {#1} } = 4 { \@@_round_engineering:NNNNn #1 {#2} - { } \@@_round_final_shift:Nw 3 } { {#1} {#2} } @@ -2467,11 +2501,13 @@ { \@@_exponent_shift:nnf { 1 } {#1} { \@@_round_truncate_direct:n {#2} } - { } \@@_round_final_shift:Nw 1 } -\cs_new:Npn \@@_round_final_shift:Nw #1#2 \@@_round_places_end:nn #3#4 - { \@@_exponent_finalise:n { #3#4 + #1 } } +\cs_new:Npn \@@_round_final_shift:Nw #1#2 \@@_round_places_end:nnn #3#4#5 + { + \exp_not:n { {#3} } + \@@_exponent_finalise:n { #4#5 + #1 } + } % \end{macrocode} % When we have rounded up to the next power of ten, we need to go back and % remove one more digit. That only happens when rounding to a number of @@ -2509,6 +2545,9 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % % \begin{macro}[EXP]{\@@_round_if_half_p:n} % \begin{macro}[EXP]{\@@_round_if_half:N} @@ -2622,7 +2661,7 @@ % \end{macro} % % \begin{macro}[EXP]{\@@_round_places:nnnnnnn} -% \begin{macro}[EXP]{\@@_round_places_end:nn} +% \begin{macro}[EXP]{\@@_round_places_end:nnn} % \begin{macro}[EXP]{\@@_round_places_decimal:nn, \@@_round_places_integer:nn} % \begin{macro}[EXP]{\@@_round_places_finalise:n} % \begin{macro}[EXP]{\@@_round_places_finalise:nnnnnnn} @@ -2644,12 +2683,12 @@ { \@@_round_places_decimal:nn } { \@@_round_places_integer:nn } {#3} {#4} - \@@_round_places_end:nn {#6} {#7} + \@@_round_places_end:nnn { } {#6} {#7} } } { \exp_not:n { {#1} {#2} {#3} {#4} {#5} {#6} {#7} } } } -\cs_new:Npn \@@_round_places_end:nn #1#2 { { } \exp_not:n { {#1} {#2} } } +\cs_new:Npn \@@_round_places_end:nnn #1#2#3 { \exp_not:n { {#1} {#2} {#3} } } \cs_new:Npn \@@_round_places_decimal:nn #1#2 { \int_compare:nNnTF @@ -2724,9 +2763,26 @@ % \end{macro} % % \begin{macro}[EXP]{\@@_round_uncertainty:nnnnnnn} +% \begin{macro}[EXP]{\@@_round_uncertainty_end:nn} % \begin{macro}[EXP]{\@@_round_uncertainty:nnn} % \begin{macro}[EXP]{\@@_round_uncertainty:nnnnn, \@@_round_uncertainty_aux:nnnnn} % \begin{macro}[EXP]{\@@_round_uncertainty_aux:nnnnnn} +% \begin{macro}[EXP]{\@@_round_uncertainty_shift:nn} +% \begin{macro}[EXP]{\@@_round_uncertainty_shift:nnnw} +% \begin{macro}[EXP]{\@@_round_uncertainty_shift:nnnn} +% \begin{macro}[EXP] +% { +% \@@_round_uncertainty_engineering:nnn , +% \@@_round_uncertainty_fixed:nnn , +% \@@_round_uncertainty_input:nnn , +% \@@_round_uncertainty_scientific:nnn +% } +% \begin{macro}[EXP] +% { +% \@@_round_uncertainty_engineering_2:n , +% \@@_round_uncertainty_engineering_3:n , +% \@@_round_uncertainty_engineering_4:n +% } % Rounding to an uncertainty can only happen where the result will have some % uncertainty left: otherwise we simply drop the uncertainty entirely. Only % |S|-type uncertainties can be used for rounding. @@ -2736,18 +2792,20 @@ \bool_lazy_or:nnTF { \tl_if_blank_p:n {#5} } { ! \int_compare_p:nNn \l_@@_round_precision_int > 0 } - { \exp_not:n { {#1} #2 {#3} {#4} { } #6 {#7} } } + { \exp_not:n { {#1} {#2} {#3} {#4} { } {#6} {#7} } } { \str_if_eq:eeTF { \tl_head:n {#5} } { S } { \exp_not:n { {#1} {#2} } \exp_args:Nnno \@@_round_uncertainty:nnn {#3} {#4} { \use_ii:nn #5 } - \exp_not:n { {#6} {#7} } + \@@_round_uncertainty_end:nn {#6} {#7} } { \exp_not:n { {#1} {#2} {#3} {#4} {#5} {#6} {#7} } } } } +\cs_new:Npn \@@_round_uncertainty_end:nn #1#2 + { \exp_not:n { {#1} {#2} } } % \end{macrocode} % Round the uncertainty first: this is needed to get the number of places % correct (for the case where the uncertainty rounds up to |1...|). Once that @@ -2796,13 +2854,97 @@ { { S } { #4 #1 } } } { - \@@_round:fnn - { \int_eval:n { #2 + 1 } } - {#5} {#6} - { { S } { #3 \@@_round_truncate_direct:n {#4} #1 } } + \exp_args:Ne \@@_round_uncertainty_shift:nn + { + \@@_round:fnn + { \int_eval:n { #2 + 1 } } + {#5} {#6} + } + { { S } { #3 #1 } } } } % \end{macrocode} +% We now have to clear up the exponent, plus deal with the case where +% rounding has resulted in the entire value being uncertain (|1(1)| with +% some exponent). The latter shows up if the uncertainty is too long or if +% we match a specific pattern. +% \begin{macrocode} +\cs_new:Npn \@@_round_uncertainty_shift:nn #1#2 + { \@@_round_uncertainty_shift:nnnw #1 {#2} } +\cs_new:Npn \@@_round_uncertainty_shift:nnnw + #1#2#3 #4 \@@_round_uncertainty_end:nn #5#6 + { + #4 + \bool_lazy_and:nnTF + { + \int_compare_p:nNn + { \tl_count:o { \use_ii:nn #3 } } = \l_@@_round_precision_int + } + { + ! \str_if_eq_p:nn { {#1} {#2} {#3} } { { 10 } { } { { S } { 1 } } } + } + { + \use:c + { @@_round_ \l_@@_exponent_mode_tl :nn } + {#1} {#2} + \@@_round_places_end:nnn {#3} {#5} {#6} + } + { + \use:c + { @@_round_uncertainty_ \l_@@_exponent_mode_tl :nnn } + {#1} {#5} {#6} + } + } +% \end{macrocode} +% With the data available, adjust the output such that the uncertainty +% is of the right length. +% \begin{macrocode} +\cs_new:Npn \@@_round_uncertainty_engineering:nnn #1#2#3 + { + \use:c + { + @@_round_uncertainty_ + \l_@@_exponent_mode_tl _ + \tl_count:n {#1} + :n + } + {#2#3} + } +\cs_new:cpn { @@_round_uncertainty_engineering_2:n } #1 + { + { 10 } { } { { S } { 10 } } + \@@_exponent_finalise:n {#1} + } +\cs_new:cpn { @@_round_uncertainty_engineering_3:n } #1 + { + { 100 } { } { { S } { 100 } } + \@@_exponent_finalise:n {#1} + } +\cs_new:cpn { @@_round_uncertainty_engineering_4:n } #1 + { + { 1 } { } { { S } { 1 } } + \@@_exponent_finalise:n { #1 + 3 } + } +\cs_new:Npn \@@_round_uncertainty_fixed:nnn #1#2#3 + { + {#1} { } + { { S } { 1 \prg_replicate:nn { \tl_count:n {#1} - 1 } { 0 } } } + {#2} {#3} + } +\cs_new_eq:NN \@@_round_uncertainty_input:nnn + \@@_round_uncertainty_fixed:nnn +\cs_new:Npn \@@_round_uncertainty_scientific:nnn #1#2#3 + { + { 1 } { } { { S } { 1 } } + \@@_exponent_finalise:n { #2#3 + \tl_count:n {#1} - 1 } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} % \end{macro} % \end{macro} diff --git a/macros/latex/contrib/siunitx/siunitx-print.dtx b/macros/latex/contrib/siunitx/siunitx-print.dtx index 25acdd306b..a38edf5c55 100644 --- a/macros/latex/contrib/siunitx/siunitx-print.dtx +++ b/macros/latex/contrib/siunitx/siunitx-print.dtx @@ -627,7 +627,11 @@ \cs_new_protected:Npn \@@_math_auxiv:n #1 { \bool_if:NTF \l_@@_math_font_bool - { \@@_math_aux:N \mathsf \mathtt \q_recursion_tail \q_recursion_stop } + { + \@@_math_aux:N + \mathbf \mathit \mathsf \mathtt + \q_recursion_tail \q_recursion_stop + } { \@@_math_auxv:n } {#1} } diff --git a/macros/latex/contrib/siunitx/siunitx-print.pdf b/macros/latex/contrib/siunitx/siunitx-print.pdf deleted file mode 100644 index e1a77edadf..0000000000 Binary files a/macros/latex/contrib/siunitx/siunitx-print.pdf and /dev/null differ diff --git a/macros/latex/contrib/siunitx/siunitx-table.dtx b/macros/latex/contrib/siunitx/siunitx-table.dtx index 64ef013e17..75a5a7f011 100644 --- a/macros/latex/contrib/siunitx/siunitx-table.dtx +++ b/macros/latex/contrib/siunitx/siunitx-table.dtx @@ -736,7 +736,8 @@ % When centering on the decimal marker, the easiest approach is to simply % re-box the two parts. That is needed whether or not we are parsing numbers, % so is best as a short auxiliary. Notice that we need to allow for the width -% of the decimal marker itself. +% of the decimal marker itself. When not aligning non-numerical material, we +% put the extra space into the boxes around the number. % \begin{macrocode} \cs_new_protected:Npn \@@_center_marker: { @@ -750,26 +751,53 @@ - \box_wd:N \l_@@_tmp_box } { - \hbox_set_to_wd:Nnn \l_@@_decimal_box + \bool_if:NTF \l_@@_align_after_bool { - \box_wd:N \l_@@_integer_box - + \box_wd:N \l_@@_tmp_box - } - { - \hbox_unpack:N \l_@@_decimal_box - \@@_fil: - } + \@@_center_marker_aux:Nnnn \l_@@_decimal_box + { + \box_wd:N \l_@@_integer_box + + \box_wd:N \l_@@_tmp_box + } + } + { + \@@_center_marker_aux:Nnnn \l_@@_after_box + { + \box_wd:N \l_@@_after_box + + \box_wd:N \l_@@_integer_box + - \box_wd:N \l_@@_decimal_box + + \box_wd:N \l_@@_tmp_box + } + } + { } { \@@_fil: } } { - \hbox_set_to_wd:Nnn \l_@@_integer_box + \bool_if:NTF \l_@@_align_before_bool { - \box_wd:N \l_@@_decimal_box - - \box_wd:N \l_@@_tmp_box + \@@_center_marker_aux:Nnnn \l_@@_integer_box + { + \box_wd:N \l_@@_decimal_box + - \box_wd:N \l_@@_tmp_box + } } { - \@@_fil: - \hbox_unpack:N \l_@@_integer_box + \@@_center_marker_aux:Nnnn \l_@@_before_box + { + \box_wd:N \l_@@_before_box + + \box_wd:N \l_@@_decimal_box + - \box_wd:N \l_@@_integer_box + - \box_wd:N \l_@@_tmp_box + } } + { \@@_fil: } { } + } + } +\cs_new_protected:Npn \@@_center_marker_aux:Nnnn #1#2#3#4 + { + \hbox_set_to_wd:Nnn #1 {#2} + { + #3 + \hbox_unpack:N #1 + #4 } } % \end{macrocode} @@ -967,10 +995,17 @@ \c_math_toggle_token \l_siunitx_number_output_decimal_tl } +% \end{macrocode} +% We set the two alignment booleans here so that a single auxiliary can +% cover this case as well as the one for centering the marker when also +% parsing. +% \begin{macrocode} \cs_new_protected:Npn \@@_direct_marker_end: { \c_math_toggle_token \hbox_set_end: + \bool_set_true:N \l_@@_align_before_bool + \bool_set_true:N \l_@@_align_after_bool \@@_center_marker: \use:c { @@_align_ \l_@@_align_text_tl :n } { @@ -1159,7 +1194,6 @@ \@@_fil: } } - \box_use_drop:N \l_@@_before_box \siunitx_number_parse:nN {#2} \l_@@_tmp_tl \siunitx_number_process:NN \l_@@_tmp_tl \l_@@_tmp_tl \tl_set:Nx \l_@@_tmp_tl @@ -1167,7 +1201,6 @@ \@@_color_check:N \l_@@_tmp_tl \exp_after:wN \@@_print_marker:w \l_@@_tmp_tl \q_stop - \box_use_drop:N \l_@@_after_box } \cs_new_protected:Npn \@@_print_marker:w #1 \q_nil #2 \q_nil #3 \q_nil #4 \q_stop @@ -1182,8 +1215,10 @@ \@@_center_marker: \use:c { @@_align_ \l_@@_align_text_tl :n } { + \box_use_drop:N \l_@@_before_box \box_use_drop:N \l_@@_integer_box \box_use_drop:N \l_@@_decimal_box + \box_use_drop:N \l_@@_after_box } } \cs_new:Npn \@@_print_marker_aux:w diff --git a/macros/latex/contrib/siunitx/siunitx-unit.dtx b/macros/latex/contrib/siunitx/siunitx-unit.dtx index be3e6eaf61..2c76156563 100644 --- a/macros/latex/contrib/siunitx/siunitx-unit.dtx +++ b/macros/latex/contrib/siunitx/siunitx-unit.dtx @@ -2826,6 +2826,17 @@ } % \end{macrocode} % +% Cover the case where the default font is sanserif. +% \begin{macrocode} +\AtBeginDocument + { + \str_if_eq:eeTF + { \exp_not:o { \familydefault } } + { \exp_not:n { \sfdefault } } + { \keys_set:nn { siunitx } { unit-font-command = \mathsf } } + } +% \end{macrocode} +% % \begin{macrocode} % % \end{macrocode} diff --git a/macros/latex/contrib/siunitx/siunitx-unit.pdf b/macros/latex/contrib/siunitx/siunitx-unit.pdf deleted file mode 100644 index 0050caf4e5..0000000000 Binary files a/macros/latex/contrib/siunitx/siunitx-unit.pdf and /dev/null differ diff --git a/macros/latex/contrib/siunitx/siunitx.dtx b/macros/latex/contrib/siunitx/siunitx.dtx index 275f824a35..d0d855e92a 100644 --- a/macros/latex/contrib/siunitx/siunitx.dtx +++ b/macros/latex/contrib/siunitx/siunitx.dtx @@ -121,7 +121,7 @@ % % Identify the package and give the over all version information. % \begin{macrocode} -\ProvidesExplPackage {siunitx} {2021-08-04} {3.0.24} +\ProvidesExplPackage {siunitx} {2021-08-16} {3.0.25} {A comprehensive (SI) units package} % \end{macrocode} % diff --git a/macros/latex/contrib/siunitx/siunitx.pdf b/macros/latex/contrib/siunitx/siunitx.pdf index 67b9a4fbee..5d7777db9c 100644 Binary files a/macros/latex/contrib/siunitx/siunitx.pdf and b/macros/latex/contrib/siunitx/siunitx.pdf differ diff --git a/macros/latex/contrib/siunitx/siunitx.tex b/macros/latex/contrib/siunitx/siunitx.tex index 136283140d..b83b72463d 100644 --- a/macros/latex/contrib/siunitx/siunitx.tex +++ b/macros/latex/contrib/siunitx/siunitx.tex @@ -3280,7 +3280,7 @@ which will then allow for the parenthesis. If a sign is applied to the number, it may not be necessary to add a \enquote{digit} for the leading bracket. If parsing is also required, this approach cannot be employed. Instead, the parsing needs to be adjusted such that |(| and |)| are not treated as part of -the number, and \opt{table-align-text-pre} is set to |false| such that these +the number, and \opt{table-align-text-before} is set to |false| such that these will be placed next to the numerical part. These methods are illustrated in Table~\ref{tab:regression}. @@ -3299,7 +3299,7 @@ Table~\ref{tab:regression}. input-close-uncertainty = , minimum-decimal-digits = 3, % ( table-format = +1.3), - table-align-text-pre = false + table-align-text-before = false ] @{} } diff --git a/macros/latex/contrib/uni-titlepage/LICENSE.md b/macros/latex/contrib/uni-titlepage/LICENSE.md new file mode 100644 index 0000000000..99a6973749 --- /dev/null +++ b/macros/latex/contrib/uni-titlepage/LICENSE.md @@ -0,0 +1,19 @@ +---------------------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of the +LaTeX Project Public License, version 1.3c of the license. 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 2005/12/01 +or later. This work has the LPPL maintenance status “maintained”. +The current maintainer and author of this work is Markus Kohm. + +---------------------------------------------------------------------------- + +Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz +in der Version 1.3c, verteilt und/oder verändert werden. Die aktuelle +Version dieser Lizenz ist http://www.latex-project.org/lppl.txt und +Version 1.3c oder später ist Teil aller Verteilungen von LaTeX 2005/12/01 +oder später. Dieses Werk hat den LPPL-Verwaltungs-Status „maintained” +Der aktuelle Verwalter und Autor dieses Werks ist Markus Kohm. + +---------------------------------------------------------------------------- diff --git a/macros/latex/contrib/uni-titlepage/README.md b/macros/latex/contrib/uni-titlepage/README.md new file mode 100644 index 0000000000..1ba65bc61f --- /dev/null +++ b/macros/latex/contrib/uni-titlepage/README.md @@ -0,0 +1,98 @@ +# `uni-titlepage` + +Copyright (c) Markus Kohm + +Release: 2021/08/16 v0.6 + +License: LPPL 1.3c + +KOMA presents the title page project + +---------------------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, version 1.3c of the license. +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 2005/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +The Current Maintainer and author of this work is Markus Kohm. + +---------------------------------------------------------------------------- + +# ABSTRACT + +Creation of title pages is something most authors should not have to do. +But reality is not perfect, so a lot of authors have to do it. In 2009 +KOMA started the title page project at +to collect real title pages and implement them with a well defined interface. +In 2021 the project has been moved to +and renamed. + +Now, changing from one title page style to another would be very +simple. Nevertheless implementation of a new title page style may be still +difficult. But maybe the guys of the title page project would help you. Just +ask! + +# Unpacking and Installation for Developers and Distributors + +To unpack and install all files, you can download the source from github +and then run: + + l3build install + +Afterwards you can build the manual and the PDFs of the examples using: + + l3build doc + +As an alternative you can use the CTAN source distribution. This already +contains the user manual and the PDFs of the example files. So you only have +to run + + tex uni-titlepage.dtx + +to generate the package file `uni-titlepage.sty`, the title definition files +`title-*.def` and the example titlepages `titlepage-*.tex`. + +Please note, the `title-*.def` files are run-time files. Together with +`uni-titlepage.sty` they have to be placed in `tex/latex/uni-titlepage` inside +a TDS tree. All files `titlepage-*.tex` and `titlepage-*.pdf` as well as +`uni-titlepage.pdf` are part of the documentation and should be placed in +`doc/latex/uni-titlepage/` of the TDS tree. + +# Unpacking and Installation for Users + +Users can use the installation described at +[Unpacking and Installation for Developers and Distributors]. However, if +your TeX distributor already distributes a ready for installation package, you +do not need and should not create files and copy them yourself. Just use the +package manager of your TeX distribution to install the package. + +# How to Contribute + +If you have made a title definition that is not specific for a single project +but could be of interest for other users, you can either + +* make your own `uni-titlepage-FOO` package with its own manual and [upload it +to ctan](https://www.ctan.org/upload), +* contribute in adding it to `uni-titlepage`. + +The first option has the advantage, that you are free. There won't be any code +reviews by the `uni-titlepage` developers. You don't need to use the same +coding style. There is not need to accept the license of `uni-titlepage` +etc. But in this case you have to take care to keep it compatible with future +releases of `uni-titlepage` and it will not be presented in the +`uni-titlepage` manual. + +The second option has the advantage, that after accepting your code, the +`uni-titlepage` developers will try to keep it working even if they change +`uni-titlepage`. But there are several restrictions to your code, before it +will be accepted. For example, you should always try to use general options, +if possible. *Static text* (not handled by options) should be configurable via +`\newcaptionname`, `\providecaptionname` and `\renewcaptionname` and should be +available at least in English and German (but if we can, we help in +translating them). The coding style and quality is also a criterion. + diff --git a/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf new file mode 100644 index 0000000000..c3d9bc881d Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf new file mode 100644 index 0000000000..518b266acd Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf new file mode 100644 index 0000000000..7eaaed4be7 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf new file mode 100644 index 0000000000..f54dfb332e Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf new file mode 100644 index 0000000000..15008ef21c Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf new file mode 100644 index 0000000000..9e6254c1f6 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf new file mode 100644 index 0000000000..c29fe66bce Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf new file mode 100644 index 0000000000..62980fb613 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf new file mode 100644 index 0000000000..0cef72436d Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf new file mode 100644 index 0000000000..f57767dbe2 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf new file mode 100644 index 0000000000..ff2ea43f52 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf new file mode 100644 index 0000000000..1b63a2e183 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf differ diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx new file mode 100644 index 0000000000..e5cea81704 --- /dev/null +++ b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx @@ -0,0 +1,3242 @@ +% \iffalse meta-comment +% ============================================================================ +% uni-titlepage.dtx +% Copyright (c) Markus Kohm, 2009-2021 +% +% This file is part of the LaTeX package `uni-titlepage' +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% 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 2005/12/01 or later. +% +% This work has the LPPL maintenance status "maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of the file `uni-titlepage.dtx'. +% +% ========================================================================== +% \fi^^A meta-comment +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \iffalse meta-comment +% ========================================================================== +%<*dtx|ins> +\expandafter\ifx\csname ProvidesFile\endcsname\relax + \def\ProvidesFile#1[#2]{\message{#1: #2}}% +\fi +% +%<*dtx|ins|doc|driver> +\ProvidesFile{% +%<*dtx|manual> + uni-titlepage% +% +% title% +% titlepage% +% -DHBW% +% -KOMAScript% +% -Markus-1% +% -Markus-2% +% -Spacer% +% -TU-DD% +% -TU-HH% +% -KIT% +% -JT-Aufsaetze% +% -JT-Geschichte% +% -JT-Typography% +% -WWUM% +%<*dtx> + .dtx% +% +% .ins% +% .tex% +% .drv% +% .def% +% +%\ProvidesPackage{uni-titlepage% +%<*dtx|ins|doc|driver|package|README> +%# `uni-titlepage` +% +%Copyright (c) Markus Kohm +%<*!README> +}[% +% +% +%Release: 2021/08/16 v0.6 +% +%License: LPPL 1.3c +%2021/08/16 v0.6 +% +KOMA presents the title page project +%<*!README> +] +% +% +% \fi^^A meta-comment +% +% \changes{v0.5f}{2021/07/29}{usage of \texttt{l3build}} +% \changes{v0.6}{2021/07/29}{package renamed from \Package{titlepage} into +% \Package{uni-titlepage}} +% +% \tableofcontents +% +% \section{Loading the Package} +% \label{sec:Loading-the-Package} +% +% You may load this package like all the other package, simply using: +% \begin{verbatim} +% \usepackage{uni-titlepage} +% \end{verbatim}\vskip-\baselineskip +% +% This package declares several options for title page manipulation. We will +% declare all those options in the following. Most of the options are package +% options as well, but some are style options only. You may use every package +% option already as optional argument of \cs{usepackage} and even of +% \cs{documentclass}. But in most cases it would be better to use them as +% optional argument of \cs{TitlePageStyle} or \cs{maketitle}. We show this way +% below. +% +% +% \section{The Title Page Styles and their Options} +% \label{sec:The-Title-Page-Style-and-their-Options} +% +% \DescribeMacro{TitlePageStyle} +% Several title page styles are supported. You may select a title page style +% using: +% \begin{quote} +% \cs{TitlePageStyle}^^A +% \texttt{[}\meta{option}\texttt{=}\meta{value},\dots\texttt{]}^^A +% \marg{style}. +% \end{quote} +% The available styles are shown at the following sub-sections. Options may be +% every package option and every style option. +% +% \DescribeMacro{maketitle} +% After loading a style you may generate title pages using: +% \begin{quote} +% \cs{maketitle}^^A +% \texttt{[}\meta{option}\texttt{=}\meta{value},\dots\texttt{]}^^A +% . +% \end{quote} +% Again, you may use every package option and every style option as optional +% argument. +% +% \DescribeMacro{TitleOption} +% \DescribeMacro{TitleOptions} +% Another way to set an option is to use either +% \begin{quote} +% \cs{TitleOption}\marg{option}\marg{value} +% \end{quote} +% or +% \begin{quote} +% \cs{TitleOptions}^^A +% \texttt{\{}\meta{option}\texttt{=}\meta{value},\dots\texttt{\}}. +% \end{quote} +% You can set every package option an every option of already loaded title +% page styles. +% +% For every option, that expects a string argument exists a corresponding +% command with the same name. So you may set, e.g., the title either using +% \cs{TitleOptions}\linebreak[2]\texttt{\{title=\{This is the Title\}\}} or +% \cs{TitleOption}\linebreak[2]\texttt{\{title\}\linebreak[2]\{This is the +% Title\}} or \cs{maketitle}\linebreak[2]\texttt{[title=\{This is the +% Title\}]} or \cs{TitlePageStyle}\linebreak[2]\texttt{[title=\{This is the +% Title\}]\{\dots\}} or \cs{title}\linebreak[2]\texttt{\{This is the +% Title\}}. The most robust way is to use the command \cs{title} instead of +% the option at one of the other commands! If you use the option you may need +% to add \cs{protect} in front of commands inside the option value! +% +% \begin{xltabular}{\linewidth}{>{\ttfamily}l>{\ttfamily\raggedright}p{.25\linewidth}>{\RaggedRight}X} +% \toprule +% \normalfont\emph{String Option} +% & \normalfont\emph{Styles} +% & \normalfont\emph{Common Meaning} \\ +% \midrule +% \endhead +% \midrule +% \multicolumn{3}{r}{\dots} +% \endfoot +% \bottomrule +% \endlastfoot +% advisor & TU-DD & if your personal advisor differs from the +% advising professor, this is the name of +% the advisor +% \\ +% author & \normalfont\emph{every style} +% & the authors, with some styles (currently +% not with \texttt{DHBW}) you may seperate +% multiple authors by \cs{and} +% \tabularnewline +% chair & TU-DD, KIT, WWUM & the chair of the faculty of the university +% where you've made or presented your work +% \tabularnewline +% company & DHBW & some works are made not only at a +% university but in cooperation with a +% company; at Duale Hochschule +% Baden-W\"urttemberg this is the default +% case +% \\ +% course & DHBW & the shortcut for your discipline or course +% \\ +% date & DHBW, KIT, KOMAScript, Markus-1, Markus-2, Spacer, TU-HH, +% TU-DD, JT-Typography, WWUM +% & the documents main date, this may by, +% e.\,g., the release date, the semester of a +% thesis or any other most valid date +% \\ +% dedication & KOMAScript, Markus-1, Markus-2, Spacer +% & sometimes it is nice to dedicate the work +% to someone, e.g., your wife, your +% children, your grandmother or your first +% love +% \\ +% academicgrade +% & DHBW, TU-HH, WUMM & the academic grade or degree you +% reach with the work +% \\ +% discipline & DHBW, TU-DD, WUMM & the discipline in which you've made your +% work or reach your academic grade +% \\ +% duration & DHBW & the processing time for your work +% \\ +% faculty & TU-DD, KIT, WUMM & the faculty of the university where you've +% made or presented your work +% \\ +% homepage & KIT & the www-address of the homepage +% \\ +% mainlogo & DHBW, KIT & a logo at the main title (currently used +% for the DHBW or the KIT logo at the +% default of \texttt{titlehead}) +% \\ +% matriculationnumber +% & DHBW, TU-DD & if you were a student while you've made +% the work, this is you number +% \\ +% oralexaminationdate +% & TU-HH, WUMM & sometimes the date of the oral examination +% is not the main date but has to be shown +% too +% \\ +% place & DHBW, TU-HH, JT-Geschichte, JT-Typography, WUMM +% & the place, in general the city, where +% you've made the work or where the Duale +% Hochschule or the publisher resides +% \\ +% professor & TU-DD, WUMM & the name of the professor who advised you +% during your work +% \\ +% publisher & KOMAScript, Markus-1, Markus-2, Spacer, JT-Aufsaetze, +% JT-Geschichte, JT-Typography +% & most written works have a publisher +% \\ +% referee & DHBW, TU-HH & every academic work will be referred; +% with some styles (currently +% \texttt{TU-HH}, \texttt{WWUM}) multiple +% referees may be seperated with \cs{and} +% \\ +% sience & WWUM & kind of sience, +% e.\,g., ``Naturwissenschaften'' +% \\ +% student & \normalfont\emph{see \texttt{author}} +% & same like \texttt{author} +% \\ +% subject & \normalfont\emph{every style} +% & the kind of work, there are special +% predefined subjects; if you use one of +% \texttt{bachelor}, \texttt{academicgrade}, +% \texttt{diploma}, \texttt{master}, +% \texttt{project}, \texttt{seminar}, or +% \texttt{studentresearch} +% a language dependend replacement will +% be done; to avoid this, you may set the +% value in parentesis +% \\ +% subtitle & KOMAScript, Markus-1, Markus-2, Spacer, TU-HH +% & the sub-title of the document +% \\ +% title & \normalfont\emph{every style} +% & the main title of the document +% \\ +% titlehead & DHBW, KOMAScript, Markus-2, Spacer, KIT +% & page head over the main title of the +% document +% \\ +% university & DHBW, TU-DD, TU-HH, KIT, WWUM +% & the university where you've made or +% presented your work +% \\ +% \end{xltabular} +% +% Let's have a look at the already defined title page styles. You should find +% an example \LaTeX{} file for each of them at the documentation folder. If +% not, ask you distributor or administrator for those! But you may find the +% code of all examples in \File{docstrip} syntax even at +% \autoref{sec:The-Examples-and-the-Manual} starting at +% \autopageref{sec:The-Examples-and-the-Manual}. At the shown examples most +% variable contents was made red. +% +% +% \clearpage +% \subsection{Style \File{DHBW}} +% \label{sec:Style-DHBW} +% +% Josef Schmidbauer asked me for a title page usable for bachelor thesis at +% the ``Duale Hochschulen Baden-W\"urttemberg''. This is a only one title page +% style. +% \begin{flushleft} +% \parbox[b][.707\linewidth][t]{.475\linewidth}{\footnotesize The +% page (in example \File{titlepage-DHBW.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{titlehead}, \texttt{mainlogo}, +% \texttt{title}, \texttt{subject}, \texttt{academicgrade}, \texttt{discipline}, +% \texttt{place}, \texttt{author}, \texttt{duration}, +% \texttt{matriculationnumber}, \texttt{course}, \texttt{company}, +% \texttt{referee}, \texttt{university}, and \texttt{date}. +% \end{enumerate} +% }\hspace{0.025\linewidth}\nobreak +% \frame{\includegraphics[page=1,width=.475\linewidth]{titlepage-DHBW}} +% \end{flushleft} +% Note: The upper right corner is the logo placeholder. If you'd download the +% logo from the DHBW homepage \url{http://www.dhbw.de} and save it with the +% name \verb|DHBW_d_MOS_195x95_rgb_300.jpg| it would be used automaticly. The +% logo file is also available from +% \url{https://de.wikipedia.org/wiki/Datei:DHBW_d_MOS_195x95_rgb_300.jpg}. This +% original logo has a large white border, so it would be much smaller than the +% red box at the example. The example file also contains comments for an +% optional company logo at the upper left corner. +% +% \clearpage +% \subsection{Style \File{KOMAScript}} +% \label{sec:Style-KOMAScript} +% +% This is a style similar to the title pages of \KOMAScript{} classes. +% \begin{flushleft} +% \noindent\parbox[b][.707\linewidth][t]{.475\linewidth}{\footnotesize The +% pages (in twoside example \File{titlepage-KOMAScript.tex}) are: +% \begin{enumerate} +% \item defined by \texttt{extratitle}, which is not a package option but a +% style option. You may set it using \cs{TitleOption} or \cs{TitleOptions} +% after loading the style or with the optional argument of \cs{maketitle} +% or \cs{TitlePageStyle}. +% \item empty and only in twoside mode with \texttt{extratitle} used. +% \item main title page with \texttt{titlehead}, \texttt{subject}, +% \texttt{title}, \texttt{subtitle}, \texttt{author}, \texttt{date}, +% \texttt{plublisher}. You may use \cs{thanks} at any of these. +% \end{enumerate} +% }\hspace{.025\linewidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \\ +% \frame{\includegraphics[page=2,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \frame{\includegraphics[page=3,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \\ +% \frame{\includegraphics[page=4,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \frame{\includegraphics[page=5,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \\ +% \frame{\includegraphics[page=6,width=.5\linewidth]{titlepage-KOMAScript}}^^A +% \parbox[b][.707\linewidth][t]{.475\linewidth}{\footnotesize +% \begin{enumerate}\setcounter{enumi}{3} +% \item only in twoside mode defined by \texttt{uppertitleback} and +% \texttt{lowertitleback}, which are not package options but style +% options. You may set them using \cs{TitleOption} or \cs{TitleOptions} +% after loading the style or with the optional argument of \cs{maketitle} +% or \cs{TitlePageStyle}. +% \item optional post title with \texttt{dedication}. +% \item empty and only in twoside mode with \texttt{dedication} used. +% \end{enumerate} +% }% +% \end{flushleft} +% +% +% \clearpage +% \subsection{Style \File{Markus-1}} +% \label{sec:Style-Markus-1} +% +% This is a style similar to the one of the title of the \KOMAScript{} book. +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% pages (in twoside example \File{titlepage-Markus-1.tex}) are: +% \begin{enumerate} +% \item defined by \texttt{publisher}; may be omitted by +% \texttt{publisher=\{\}}. +% \item only in twoside mode with \texttt{publisher} defined by +% \texttt{author}. +% \item main title page with \texttt{subject}, +% \texttt{title}, \texttt{subtitle}, and \texttt{date}. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-Markus-1}} +% +% \frame{\includegraphics[page=2,width=.5\textwidth]{titlepage-Markus-1}}^^A +% \frame{\includegraphics[page=3,width=.5\textwidth]{titlepage-Markus-1}} +% +% \frame{\includegraphics[page=4,width=.5\textwidth]{titlepage-Markus-1}}^^A +% \frame{\includegraphics[page=5,width=.5\textwidth]{titlepage-Markus-1}} +% +% \frame{\includegraphics[page=6,width=.5\textwidth]{titlepage-Markus-1}}^^A +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize +% \begin{enumerate}\setcounter{enumi}{3} +% \item only in twoside mode defined by \texttt{uppertitleback} and +% \texttt{lowertitleback}, which are not package options but style +% options. You may set them using \cs{TitleOption} or \cs{TitleOptions} +% after loading the style or with the optional argument of \cs{maketitle} +% or \cs{TitlePageStyle}. +% \item optional post title with \texttt{dedication}. +% \item empty and only in twoside mode with \texttt{dedication} used. +% \end{enumerate} +% } +% \end{flushleft} +% +% +% \clearpage +% \subsection{Style \File{Markus-2}} +% \label{sec:Style-Markus-2} +% +% This style is not a real live style, but similar styles are often used: +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% pages (in twoside example \File{titlepage-Markus-2.tex}) are: +% \begin{enumerate} +% \item defined by \texttt{extratitle}. +% \item empty and only in twoside mode with \texttt{extratitle} used. +% \item main title page with \texttt{titlehead} placed at the page head (if +% this is to high, it might be put outside the page; if it is to deep, it +% might overwrite parte of the title), \texttt{rulewidth} and +% \texttt{rulesep} for the vertical rule (these aren't package options but +% style options), \texttt{subject}, \texttt{title}, \texttt{subtitle}, +% \texttt{author}, \texttt{date}, and \texttt{plublisher}. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-Markus-2}} +% +% \frame{\includegraphics[page=2,width=.5\textwidth]{titlepage-Markus-2}}^^A +% \frame{\includegraphics[page=3,width=.5\textwidth]{titlepage-Markus-2}} +% +% \frame{\includegraphics[page=4,width=.5\textwidth]{titlepage-Markus-2}}^^A +% \frame{\includegraphics[page=5,width=.5\textwidth]{titlepage-Markus-2}} +% +% \frame{\includegraphics[page=6,width=.5\textwidth]{titlepage-Markus-2}}^^A +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize +% \begin{enumerate}\setcounter{enumi}{3} +% \item only in twoside mode defined by \texttt{uppertitleback} and +% \texttt{lowertitleback}, which are not package options but style +% options. You may set them using \cs{TitleOption} or \cs{TitleOptions} +% after loading the style or with the optional argument of \cs{maketitle} +% or \cs{TitlePageStyle}. +% \item optional post title with \texttt{dedication}. +% \item empty and only in twoside mode with \texttt{dedication} used. +% \end{enumerate} +% } +% \end{flushleft} +% +% +% \clearpage +% \subsection{Style \File{Spacer}} +% \label{sec:Style-Spacer} +% +% This style is a variant of style \File{Markus-2} from +% \autoref{sec:Style-Markus-2}. It was asked by \texttt{spacer2012} at the +% original \texttt{titlepage} project on +% \url{https://komascript.de/titlepage}. In difference to \File{Markus-2} the +% title head will not be placed at the page head but at the body. +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% pages (in twoside example \File{titlepage-Spacer.tex}) are: +% \begin{enumerate} +% \item defined by \texttt{extratitle}. +% \item empty and only in twoside mode with \texttt{extratitle} used. +% \item main title page with \texttt{titlehead} placed at the page head, +% \texttt{rulewidth} and \texttt{rulesep} for the vertical rule (these +% aren't package options but style options), \texttt{subject}, +% \texttt{title}, \texttt{subtitle}, \texttt{author}, \texttt{date}, and +% \texttt{plublisher}. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-Spacer}} +% +% \frame{\includegraphics[page=2,width=.5\textwidth]{titlepage-Spacer}}^^A +% \frame{\includegraphics[page=3,width=.5\textwidth]{titlepage-Spacer}} +% +% \frame{\includegraphics[page=4,width=.5\textwidth]{titlepage-Spacer}}^^A +% \frame{\includegraphics[page=5,width=.5\textwidth]{titlepage-Spacer}} +% +% \frame{\includegraphics[page=6,width=.5\textwidth]{titlepage-Spacer}}^^A +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize +% \begin{enumerate}\setcounter{enumi}{3} +% \item only in twoside mode defined by \texttt{uppertitleback} and +% \texttt{lowertitleback}, which are not package options but style +% options. You may set them using \cs{TitleOption} or \cs{TitleOptions} +% after loading the style or with the optional argument of \cs{maketitle} +% or \cs{TitlePageStyle}. +% \item optional post title with \texttt{dedication}. +% \item empty and only in twoside mode with \texttt{dedication} used. +% \end{enumerate} +% } +% \end{flushleft} +% +% +% \clearpage +% \subsection{Style \File{TU-DD}} +% \label{sec:Style-TU-DD} +% +% This style is used at the ``Technische Universit\"at Dresden''. I was asked +% fot this several years ago. Only one title page is defined! +% +% \noindent\parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-TU-DD.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{university}, \texttt{faculty}, +% \texttt{chair}, \texttt{professor}, \texttt{title}, \texttt{subject}, +% \texttt{author}, \texttt{discipline}, \texttt{matriculationnumber}, +% \texttt{advisor}, \texttt{place}, and \texttt{date}. +% \end{enumerate} +% }\hspace{.025\textwidth}% +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-TU-DD}} +% +% But there is another variant. If option \texttt{blackborder} was set to +% true, an black border is put around the page: +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-TU-DD.tex} with option +% \texttt{blackborder}) is: +% \begin{enumerate} +% \item main title page with \texttt{university}, \texttt{faculty}, +% \texttt{chair}, \texttt{professor}, \texttt{title}, \texttt{subject}, +% \texttt{author}, \texttt{discipline}, \texttt{matriculationnumber}, +% \texttt{advisor}, \texttt{place}, and \texttt{date}. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=3,width=.5\textwidth]{titlepage-TU-DD}} +% \end{flushleft} +% +% +% \clearpage +% \subsection{Style \File{TU-HH}} +% \label{sec:Style-TU-HH} +% +% This style is used at the ``Technische Universit\"at Hamburg-Harburg''. I +% was asked for this several years ago. Only two title pages are defined! +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% pages (in twoside example \File{titlepage-TU-HH.tex}) are: +% \begin{enumerate} +% \item main title page with \texttt{title}, \texttt{subtitle}, +% \texttt{university}, \texttt{academicgrade}, \texttt{subject}, \texttt{author}, +% \texttt{place}, and \texttt{date}. Some additional text depending on the +% selected language will be used also. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-TU-HH}} +% +% \frame{\includegraphics[page=2,width=.5\textwidth]{titlepage-TU-HH}}^^A +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize +% \begin{enumerate}\setcounter{enumi}{1} +% \item only in twoside mode with \texttt{referee} and +% \texttt{oralexaminationdate}. +% \end{enumerate} +% } +% \end{flushleft} +% The output of style \File{TU-HH} differs, if you use option +% \texttt{final}, which is a style option, not a package option. You may set +% it using \cs{TitleOption} or \cs{TitleOptions} after loading the style or +% with the optional argument of \cs{maketitle} or \cs{TitlePageStyle}. +% +% +% \clearpage +% \subsection{Style \File{KIT}} +% \label{sec:Style-KIT} +% +% This style is used at the ``KIT -- University of the State of +% Baden-W\"urttemberg and National Research Center of the Helmholtz +% Association''. I've made this because of the ugly \LaTeX{} class and +% template made by the KIT itself. Only one title page is defined! +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-KIT.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{titlehead}, \texttt{mainlogo}, +% \texttt{title}, \texttt{subject}, \texttt{author}, +% \texttt{referee}. \texttt{advisor}, \texttt{university}, +% \texttt{duration}, and \texttt{homepage}. Some +% additional text depending on the selected language will be used also. +% \end{enumerate} +% If \texttt{titlehead} is empty or unused left aligned \texttt{mainlogo} +% will be used. If \texttt{mainlogo} is empty or unused, and if you have a +% logo file \File{KITLogo\_RGB.pdf}, this will be used. As an alternative +% also \File{2560px-Logo\_KIT.svg.png}, \File{2000px-Logo\_KIT.svg.png}, +% \File{1280px-Logo\_KIT.svg.png}, \File{1024px-Logo\_KIT.svg.png}, +% \File{1000px-Logo\_KIT.svg.png}, \File{800px-Logo\_KIT.svg.png}, +% \File{640px-Logo\_KIT.svg.png}, or \File{500px-Logo\_KIT.svg.png} from +% \url{https://de.wikipedia.org/wiki/Datei:Logo\_KIT.svg} would be +% auto-detected. Several other elements will be set to defaults too, if they +% are empty. So you don't need to set all the elements, that has been set at +% the example file. +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-KIT}} +% \end{flushleft} +% +% \clearpage +% \subsection{Style \File{JT-Aufsaetze}} +% \label{sec:Style-JT-Aufsaetze} +% +% The style is based on the front cover of ``Jan Tschichold: Ausgewählte +% Aufsätze über Fragen der Gestalt des Buches und der Typüographie, Birkhäuser +% Verlag Basel, 1975, ISBN: 3-7643-1946-1''. I've made this, because the book +% is a major book of classic typography. It seems to be old fashioned and indeed +% it is. Note, that the front cover of a book an the main title of a book are +% not the same! Nevertheless, here I've made a main title from a front +% cover. Currently only one title page is defined, but you may also use +% \texttt{extratitle}, \texttt{uppertitleback}, and \texttt{lowertitleback}. +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-JT-Aufsaetze.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{author}, \texttt{title}, +% \texttt{publisher}, \texttt{rulewidth} and \texttt{rulesep} for width +% of the horizontal rules and the distance between them (these aren't +% package options but style options). +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-JT-Aufsaetze}} +% \end{flushleft} +% +% \clearpage +% \subsection{Style \File{JT-Geschichte}} +% \label{sec:Style-JT-Geschichte} +% +% The style is based on ``Jan Tschichold: Geschichte der +% Schrift in Bildern; Holbein-Verlag, 1947''. This is another major book of +% classic typography. I seems to be old fashioned and indeed +% it is. Currently only one title page is defined, but you may also use +% \texttt{extratitle}, \texttt{uppertitleback}, and \texttt{lowertitleback}. +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-JT-Geschichte.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{author}, \texttt{title}, +% \texttt{publisher}, \texttt{place}, \texttt{rulewidth} and +% \texttt{rulesep} for width of the horizontal rules and the distance +% between them (these aren't package options but style options). +% \end{enumerate} +% Note, that the default for \texttt{titlepagefont} prints everything but the +% \texttt{title} with ad-hoc letterspacing in upper-case letters if +% \cs{lsstyle} is available and without letterspacing but in small capitals +% otherwise. Changing the default of \texttt{titlepagefont} will also change +% this automatism. +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-JT-Geschichte}} +% \end{flushleft} +% +% \clearpage +% \subsection{Style \File{JT-Typography}} +% \label{sec:Style-JT-Typography} +% +% The style is based on ``Jan Tschichold: The New Typography; University of +% California Press, Berkley and Los Angeles, California 1995''. This is the +% English translation of another major book of +% classic typography. Some things like missing letterspacing at the upper-case +% title seems to be wrong. Currently only one title page is defined, but you +% may also use \texttt{extratitle}, \texttt{uppertitleback}, and +% \texttt{lowertitleback}. +% \begin{flushleft} +% \parbox[b][.707\textwidth][t]{.475\textwidth}{\footnotesize The +% page (in example \File{titlepage-JT-Geschichte.tex}) is: +% \begin{enumerate} +% \item main title page with \texttt{author}, \texttt{title}, +% \texttt{subtitle}, \texttt{place}, \texttt{date}, \texttt{publisher}. +% \end{enumerate} +% }\hspace{.025\textwidth}\nobreak +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-JT-Typography}} +% \end{flushleft} +% +% \clearpage +% \subsection{Style \File{WWUM}} +% \label{sec:Style-WWUM} +% +% Tobias S\"udkamp asked me for that title for the +% Westf\"alischen Wilhelms-Universit\"at M\"unster. The +% \texttt{professor} is more likely the \texttt{chairman}. Female +% referees should be prefixed by \textsf{[f]}. You can omit the examination +% date defining an empty \cs{examinationdatename}. +% \begin{flushleft} +% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-WWUM}}\nobreak +% \hspace{.025\textwidth}\nobreak +% \parbox[b][.7\textwidth][t]{.475\textwidth}{\footnotesize +% The pages (in example \File{tilepage-WWUM.tex}) are: +% \begin{enumerate} +% \item cover page with \texttt{author}, \texttt{title}, \cs{the}\cs{year} +% \item the backside of the cover page is empty if it exists +% \item main title page with \texttt{chair}, \texttt{title}, +% \texttt{subject}, \texttt{academicgrade}, \texttt{sience}, \texttt{discipline}, +% \texttt{faculty} +% \item main title back side with \texttt{professor}, \texttt{referee}, +% \texttt{oralexaminationdate} (normaly empty) +% \end{enumerate} +% }\\ +% \frame{\includegraphics[page=3,width=.5\textwidth]{titlepage-WWUM}}%^^A +% \frame{\includegraphics[page=4,width=.5\textwidth]{titlepage-WWUM}}%^^A +% \end{flushleft} + +% +% \clearpage +% +% \section{Additonal Commands} +% \label{sec:Additional-Commands} +% +% \DescribeMacro{\NowButAfterBeginDocument} +% Command +% \begin{quote} +% \cs{NowButAfterBeginDocument}\marg{code} +% \end{quote} +% is something like \cs{AtBeginDocument}, but if you call it somewhere after +% \cs{begin\{document\}} argument \meta{code} will be used immediately. This +% command is used inside some of the title page styles, because you may load +% them either at the preamle or even after \cs{begin\{document\}}, but some +% code should not be executed before \cs{begin\{document\}}. +% +% \DescribeEnv{titlepage} +% In oposite to the \texttt{titlepage} environment of the standard classes, +% \begin{quote} +% \cs{begin\{titlepage\}}\oarg{options}\\ +% \dots\\ +% \cs{end\{titlepage\}} +% \end{quote} +% knows some options. These are \texttt{pagestyle=}\meta{style} and +% \texttt{pagenumber=}\meta{number}. The first one changes the page style of +% the generated title page to the given \meta{style}. If the option is not +% set, the default \texttt{empty} will be used. The second one sets the +% logical page number of the generated title page to the given \meta{number} +% and sets the counter \texttt{pagenumber} to this value. If the option is +% not used, the value of counter \texttt{pagenumber} will be increased by one +% and the result is used for the logical page number. +% +% \DescribeEnv{fullsizetitle} +% Using +% \begin{quote} +% \cs{begin\{fullsizetitle\}}\oarg{options}\\ +% \dots\\ +% \cs{end\{fullsizetitle\}} +% \end{quote} +% is almost the same like above. But \texttt{fullsizetitle} removes the +% margins from the generated title page. Nevertheless if binding correction +% (aka binding offset) of package \File{typearea} or \File{geometry} could be +% recognized, it will not be removed. Some of the title page styles use this +% environment instead of \texttt{titlepage} inside \cs{maketitle}. With this +% the margins of the title page do not depend on the type area of the +% document. +% +% \DescribeMacro{\usetitleelement} +% Command +% \begin{quote} +% \cs{usetitleelement}\marg{element} +% \end{quote} +% gives the content of the corresponding title \meta{element}. Each main +% \meta{element} defined by the package may be used. Those are currently: +% \texttt{advisor}, \texttt{author}, \texttt{chair}, \texttt{company}, +% \texttt{course}, \texttt{date}, \texttt{dedication}, \texttt{academicgrade}, +% \texttt{discipline}, \texttt{duration}, \texttt{faculty}, \texttt{homepage}, +% \texttt{mainlogo}, \texttt{matriculationnumber}, +% \texttt{oralexaminationdate}, \texttt{place}, \texttt{professor}, +% \texttt{publisher}, \texttt{referee}, \texttt{subject}, \texttt{subtitle}, +% \texttt{title}, \texttt{titlehead}, and \texttt{university}. Note: +% \texttt{student} isn't a main \meta{element}, because it's only an alias for +% \texttt{author}. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \section{Implementation} +% \label{sec:Implementation} +% \changes{v0.1}{2009/01/01}{Start of project} +% \changes{v0.2}{2011/06/03}{First version using \texttt{docstrip}} +% +% Note: To generate all files, developers and beta testers should simply use +% the source from \url{https://github.com/komascript/uni-titlepage} and call +% \begin{verbatim} +% l3build unpack +% l3build doc +% \end{verbatim} +% The resulting documentation will be placed in the main folder. The unpacked +% style file are in \texttt{build/unpacked}, You can use +% \begin{verbatim} +% l3build install +% \end{verbatim} +% to install them in \texttt{TEXMFHOME}. See the manual of \Package{l3build} +% for more information. +% +% As an alternative you can use the source distribution from CTAN and run: +% \begin{verbatim} +% tex uni-titlepage.dtx +% \end{verbatim} +% The documentation is usually part of the source distribution at CTAN. Note, +% that all the generated \texttt{tex} files are example files. Do not copy +% them to the run-time files but the documentation folder! +% +% \subsection{The Installation Driver `\File{uni-titlepage.ins}'} +% \label{sec:The-Installation-Driver-uni-titlepage.ins} +% \iffalse meta-comment +%<*dtx|ins> +% \fi ^^A meta-comment +% First of all we produce \File{uni-titlepage.ins}, the installation driver. It +% starts very common with loading \File{docstrip}, preamble declaration and +% start of generation. +% \begin{macrocode} +\def\batchfile{uni-titlepage.dtx} +\input docstrip.tex +\ifToplevel{% + \Msg{********************************************************************} + \Msg{*} + \Msg{* Steps of uni-titlepage generation:} + \Msg{* ==============================} + \Msg{*} + \Msg{* - Generation of all needed files:} + \keepsilent + \askforoverwritefalse +} + +\preamble +Copyright (c) 2009-2021 by Markus Kohm + +This file was generated from file(s) of uni-titlepage distribution. + +---------------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, version 1.3c of the license. +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 2005/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +The Current Maintainer and author of this work is Markus Kohm. + +This file may only be distributed together with +the file `uni-titlepage.dtx'. +You may however distribute the file `uni-titlepage.dtx' without this file. + +\endpreamble + +\generate{% +% \end{macrocode} +% But while the dtx file is the ins file itself, we will never generate this +% file. +% \begin{macrocode} +% \file{uni-titlepage.ins}{\from{uni-titlepage.dtx}{ins}}% not needed + \file{uni-titlepage.drv}{\from{uni-titlepage.dtx}{doc,manual}}% + \file{uni-titlepage.sty}{\from{uni-titlepage.dtx}{package}}% + \file{title-DHBW.def}{\from{uni-titlepage.dtx}{driver,DHBW}}% + \file{title-KOMAScript.def}{\from{uni-titlepage.dtx}{driver,KOMAScript}}% + \file{title-Markus-1.def}{\from{uni-titlepage.dtx}{driver,Markus,1}}% + \file{title-Markus-2.def}{\from{uni-titlepage.dtx}{driver,Markus,2}}% + \file{title-Spacer.def}{\from{uni-titlepage.dtx}{driver,Spacer}}% + \file{title-TU-DD.def}{\from{uni-titlepage.dtx}{driver,TU-DD}}% + \file{title-TU-HH.def}{\from{uni-titlepage.dtx}{driver,TU-HH}}% + \file{title-KIT.def}{\from{uni-titlepage.dtx}{driver,KIT}}% + \file{title-JT-Aufsaetze.def}{\from{uni-titlepage.dtx}{driver,JT-Aufsaetze}}% + \file{title-JT-Geschichte.def}{\from{uni-titlepage.dtx}{driver,JT-Geschichte}}% + \file{title-JT-Typography.def}{\from{uni-titlepage.dtx}{driver,JT-Typography}}% + \file{title-WWUM.def}{\from{uni-titlepage.dtx}{driver,WWUM}}% + \file{titlepage-DHBW.tex}{\from{uni-titlepage.dtx}{doc,example,DHBW}}% + \file{titlepage-KOMAScript.tex}{\from{uni-titlepage.dtx}{doc,example,KOMAScript}}% + \file{titlepage-Markus-1.tex}{\from{uni-titlepage.dtx}{doc,example,Markus,1}}% + \file{titlepage-Markus-2.tex}{\from{uni-titlepage.dtx}{doc,example,Markus,2}}% + \file{titlepage-Spacer.tex}{\from{uni-titlepage.dtx}{doc,example,Spacer}}% + \file{titlepage-TU-DD.tex}{\from{uni-titlepage.dtx}{doc,example,TU-DD}}% + \file{titlepage-TU-HH.tex}{\from{uni-titlepage.dtx}{doc,example,TU-HH}}% + \file{titlepage-KIT.tex}{\from{uni-titlepage.dtx}{doc,example,KIT}}% + \file{titlepage-JT-Aufsaetze.tex}{\from{uni-titlepage.dtx}{doc,example,JT-Aufsaetze}}% + \file{titlepage-JT-Geschichte.tex}{\from{uni-titlepage.dtx}{doc,example,JT-Geschichte}}% + \file{titlepage-JT-Typography.tex}{\from{uni-titlepage.dtx}{doc,example,JT-Typography}}% + \file{titlepage-WWUM.tex}{\from{uni-titlepage.dtx}{doc,example,WWUM}}% + \nopreamble\nopostamble + \file{README.md}{\from{uni-titlepage.dtx}{README}}% +}% + +\ifToplevel{% + \Msg{* \space\space done.} + \Msg{*} + \Msg{* You may install all the files now.} + \Msg{*} + \Msg{********************************************************************} +} +% \end{macrocode} +% At docstrip run we like to finish the file know: +% \begin{macrocode} +\csname endinput\endcsname +% \end{macrocode} +% \iffalse meta-comment +% +% \fi^^A meta-comment +% +% \subsection{The Package `\File{scrbase.sty}'} +% \label{sec:The-Package-scrbase.sty} +% \iffalse meta-comment +%<*package> +% \fi^^A meta-comment +% +% \begin{macro}{\TitleOptions} +% \begin{macro}{\TitleOption} +% We use the extended option handling of \KOMAScript, so we load package +% \File{scrbase} and declare a family, a member and a something like +% \verb|\KOMAoptions| and \verb|\KOMAoption| but for this package. +% \begin{macrocode} +\RequirePackage{scrbase}[2014/12/03] +\DefineFamily{title} +\DefineFamilyMember{title} +\newcommand*{\TitleOptions}{\FamilyOptions{title}} +\newcommand*{\TitleOption}{\FamilyOption{title}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{option}{pagenumber} +% \begin{macrocode} +\newcounter{titlepage}\setcounter{titlepage}{\@ne} +\DefineFamilyKey{title}{pagenumber}{% + \setcounter{titlepage}{#1}\FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% +% \begin{macro}{\titlepagestyle} +% \begin{option}{pagestyle} +% \begin{macrocode} +\providecommand*{\titlepagestyle}{} +\renewcommand*{\titlepagestyle}{empty} +\DefineFamilyKey{title}{pagestyle}{% + \renewcommand*{\titlepagestyle}{#1}\FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% \end{macro} +% +% \begin{macro}{\if@resonecol} +% \begin{macrocode} +\ifcsname @restonecolfalse\endcsname + \expandafter\@gobble +\else + \expandafter\@firstofone +\fi +{\newif\if@restonecol} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{titlepage} +% \begin{macrocode} +\scr@ifundefinedorrelax{titlepage}{\def\titlepage{}}{} +\scr@ifundefinedorrelax{endtitlepage}{\def\endtitlepage{}}{} +\providecommand*{\maketitle}[1][]{} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\inittitle} +% \begin{macro}{\makepretitle} +% \begin{macro}{\makepretitleback} +% \begin{macro}{\makemaintitle} +% \begin{macro}{\makemaintitleback} +% \begin{macro}{\makeposttitle} +% \begin{macro}{\makeposttitleback} +% \begin{macro}{\exittitle} +% \begin{macro}{\tp@undefinedtitle} +% Set of commands, that define a title style: +% \begin{macrocode} +\newcommand*{\tp@undefinedtitle}[1]{% + \PackageInfo{uni-titlepage}{leaving not defined #1-title page empty}% +} +\newcommand*{\inittitle}{} +\newcommand*{\makepretitle}{\tp@undefinedtitle{pre}} +\newcommand*{\makepretitleback}{\tp@undefinedtitle{back of pre}} +\newcommand*{\makemaintitle}{\tp@undefinedtitle{main}} +\newcommand*{\makemaintitleback}{\tp@undefinedtitle{back of main}} +\newcommand*{\makeposttitle}{\tp@undefinedtitle{post}} +\newcommand*{\makeposttitleback}{\tp@undefinedtitle{back of post}} +\newcommand*{\exittitle}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\inittitlestyle} +% Will be called before loading a title style: +% \begin{macrocode} +\newcommand*{\inittitlestyle}{% + \renewenvironment{titlepage}[1][]{% + \TitleOptions{##1}% + \clearpage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + \if@twoside% im einseitigen Satz ist mir alles egal + \ifodd\value{page}% aktuelle Seite ist ungerade +% \end{macrocode} +% Current page number is odd \dots +% \begin{macrocode} + \ifodd\value{titlepage}% + \else +% \end{macrocode} +% \dots\ wanted page number is even: put in empty page. +% \begin{macrocode} + \null\newpage + \fi + \else +% \end{macrocode} +% Current page number is even \dots +% \begin{macrocode} + \ifodd\value{titlepage}% +% \end{macrocode} +% \dots\ wanted page number is off: put in empty page. +% \begin{macrocode} + \null\newpage % Leerseite + \fi + \fi + \fi + \setcounter{page}{\value{titlepage}}% + \ifx\titlepagestyle\@empty\else\thispagestyle{\titlepagestyle}\fi + }{% + \if@restonecol\twocolumn \else \newpage\fi + \stepcounter{titlepage}% + }% + + \renewcommand*{\maketitle}[1][]{% + \begingroup + \TitleOptions{##1}% + \inittitle + \makepretitle\if@twoside\makepretitleback\fi + \makemaintitle\if@twoside\makemaintitleback\fi + \makeposttitle\if@twoside\makeposttitleback\fi + \exittitle + \endgroup + }% + + \renewcommand*{\inittitle}{}% + \renewcommand*{\makepretitle}{\tp@undefinedtitle{pre}}% + \renewcommand*{\makepretitleback}{\tp@undefinedtitle{back of pre}}% + \renewcommand*{\makemaintitle}{\tp@undefinedtitle{main}}% + \renewcommand*{\makemaintitleback}{\tp@undefinedtitle{back of main}}% + \renewcommand*{\makeposttitle}{\tp@undefinedtitle{post}}% + \renewcommand*{\makeposttitleback}{\tp@undefinedtitle{back of post}}% + \renewcommand*{\exittitle}{}% +} +\inittitlestyle +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\titlebox} +% \begin{macro}{fullsizetitle} +% New environment for full page titles (with respect to BCOR or +% Gm@bindingoffset if defined) +% \begin{macrocode} +\newsavebox\titlebox +\newenvironment{fullsizetitle}[1][]{% + \TitleOptions{#1}% + \begin{lrbox}{\titlebox} + \hsize\paperwidth + \scr@ifundefinedorrelax{ta@bcor}{% + \scr@ifundefinedorrelax{Gm@bindingoffset}{}{% + \advanve\hsize-\Gm@bindingoffset}% + }{% + \advance\hsize-\ta@bcor + \scr@ifundefinedorrelax{Gm@bindingoffset}{}{% + \ifdim \Gm@bindingoffset=\ta@bcor\else + \PackageWarning{uni-titlepage}{Ignorring geometry's binding + correction,\MessageBreak + using typearea's binding correction.\MessageBreak + If you're using geometry and typearea,\MessageBreak + you should set both options to the same value,\MessageBreak + e.g. \string\KOMAoptions{BCOR=\the\ta@bcor}\MessageBreak + \space\space\space\space\space + \string\geometry{bindingoffset=\the\ta@bcor}\MessageBreak + to make uni-titlepage use this value% + }% + \fi + }% + }% + \vsize\paperheight + \linewidth\hsize + \columnwidth\hsize + \textwidth\hsize + \textheight\vsize + \noindent\minipage{\hsize} +}{% + \endminipage + \end{lrbox} + \begin{titlepage}% + \vspace*{-1in}\vskip-\topmargin\vskip-\headheight\vskip-\headsep + \vskip-\topskip + \raggedright + \leavevmode + \hskip-1in + \ifodd\c@page + \hskip-\oddsidemargin + \scr@ifundefinedorrelax{ta@bcor}{% + \scr@ifundefinedorrelax{Gm@bindingoffset}{}{% + \hskip\Gm@bindingoffset}% + }{\hskip\ta@bcor}% + \else + \hskip-\evensidemargin + \fi + \vbox to\z@{\hsize\z@ + \vskip-\baselineskip + \makebox[0pt][l]{\usebox\titlebox}% + \vss + }% + \end{titlepage} +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DefineSimpleTitleKey} +% \begin{macro}{\DefineReplaceTitleKey} +% \begin{macro}{\tp@replacewarning} +% \begin{macro}{\tp@dokeys} +% Define title page ``variables'': +% \begin{macrocode} +\newcommand*{\tp@replacewarning}[2]{% + \PackageWarning{uni-titlepage}{% + Using `#2' instead of `#1',\MessageBreak + because `#1' not defined% + }% +} +\newcommand*{\tp@dokeys}{} +\newcommand*{\DefineSimpleTitleKey}[2][.\@currname.\@currext]{% + \l@addto@macro\tp@dokeys{\do{#2}}% + \expandafter\newcommand\expandafter*\csname @#2\endcsname{}% + \expandafter\newcommand\expandafter*\csname #2\endcsname[1]{% + \expandafter\gdef\csname @#2\endcsname{##1}}% + \DefineFamilyKey[{#1}]{title}{#2}{% + \csname #2\endcsname{##1}% + \FamilyKeyStateProcessed + }% +} +\newcommand*{\DefineReplaceTitleKey}[3][.\@currname.\@currext]{% + \DefineFamilyKey[{#1}]{title}{#2}{% + \tp@replacewarning{#2}{#3}% + \FamilyOptions{title}{#3=##1}% + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\titlehead} +% \begin{macro}{\@titlehead} +% \begin{option}{titlehead} +% \begin{macrocode} +\providecommand*{\@titlehead}{} +\providecommand{\titlehead}[1]{\gdef\@titlehead{#1}} +\DefineFamilyKey{title}{titlehead}{\titlehead{#1}\FamilyKeyStateProcessed} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\homepage} +% \changes{v0.3}{2012/07/05}{new command} +% \begin{macro}{\@homepage} +% \changes{v0.3}{2012/07/05}{new internal} +% \begin{option}{homepage} +% \changes{v0.3}{2012/07/05}{new option} +% \begin{macrocode} +\providecommand*{\@homepage}{} +\providecommand{\homepage}[1]{\gdef\@homepage{#1}} +\DefineFamilyKey{title}{homepage}{\homepage{#1}\FamilyKeyStateProcessed} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\title} +% \begin{macro}{\@title} +% \begin{option}{title} +% \begin{macrocode} +\let\@title\relax\let\title\relax\DefineSimpleTitleKey{title} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\author} +% \begin{macro}{\@author} +% \begin{option}{author} +% \begin{macrocode} +\let\@author\relax\let\author\relax\DefineSimpleTitleKey{author} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\date} +% \begin{macro}{\@date} +% \begin{option}{date} +% \begin{macrocode} +\let\@date\relax\let\date\relax\DefineSimpleTitleKey{date} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\duration} +% \begin{macro}{\@duration} +% \begin{option}{duration} +% \begin{macrocode} +\DefineSimpleTitleKey{duration} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\course} +% \begin{macro}{\@course} +% \begin{option}{course} +% \begin{macrocode} +\DefineSimpleTitleKey{course} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\company} +% \begin{macro}{\@company} +% \begin{option}{company} +% \begin{macrocode} +\DefineSimpleTitleKey{company} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\subtitle} +% \begin{macro}{\@subtitle} +% \begin{option}{subtitle} +% \begin{macrocode} +\let\@subtitle\relax\let\subtitle\relax\DefineSimpleTitleKey{subtitle} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\university} +% \begin{macro}{\@university} +% \begin{option}{university} +% \begin{macrocode} +\DefineSimpleTitleKey{university} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\faculty} +% \begin{macro}{\@faculty} +% \begin{option}{faculty} +% \begin{macrocode} +\DefineSimpleTitleKey{faculty} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\chair} +% \begin{macro}{\@chair} +% \begin{option}{chair} +% \begin{macrocode} +\DefineSimpleTitleKey{chair} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\professor} +% \begin{macro}{\@professor} +% \begin{option}{professor} +% \begin{macrocode} +\DefineSimpleTitleKey{professor} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\subject} +% \begin{macro}{\@subject} +% \begin{option}{subject} +% \changes{v0.4c}{2012/12/18}{typing error fixed (mrpiggi)} +% \changes{v0.5e}{2019/11/20}{\cs{ifstr} in \textsf{scrbase} renamed to +% \cs{Ifstr}} +% \begin{macrocode} +\providecommand*{\@subject}{} +\providecommand*{\subject}[1]{\gdef\@subject{#1}} +\l@addto@macro\tp@dokeys{\do{subject}}% +\DefineFamilyKey{title}{subject}{% + \Ifstr{#1}{project}{\subject{\projectpapername}}{% + \Ifstr{#1}{seminar}{\subject{\seminarpapername}}{% + \Ifstr{#1}{studentresearch}{\subject{\studentresearchname}}{% + \Ifstr{#1}{diploma}{\subject{\diplomathesisname}}{% + \Ifstr{#1}{degree}{\subject{\degreethesisname}}{% + \Ifstr{#1}{master}{\subject{\masterthesisname}}{% + \Ifstr{#1}{bachelor}{\subject{\bachelorthesisname}}{% + \subject{#1}% + }% + }% + }% + }% + }% + }% + }% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\Ifstr} +% For compatibility with old versions of \textsf{scrbase} the macro is +% provided based on \cs{ifstr} if it has not been defined by \textsf{scrbase}. +% \begin{macrocode} +\providecommand*{\Ifstr}{\ifstr} +% \end{macrocode} +% \end{macro} +% \begin{option}{student} +% \begin{macrocode} +\DefineReplaceTitleKey{student}{author} +% \end{macrocode} +% \end{option} +% \begin{macro}{\sience} +% \changes{v0.5}{2016/06/21}{new} +% \begin{macro}{\@sience} +% \changes{v0.5}{2016/06/21}{new} +% \begin{option}{sience} +% \changes{v0.5}{2016/06/21}{new} +% \begin{macrocode} +\DefineSimpleTitleKey{sience} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\discipline} +% \begin{macro}{\@discipline} +% \begin{option}{discipline} +% \begin{macrocode} +\DefineSimpleTitleKey{discipline} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\academicgrade} +% \changes{v0.6}{2021/07/29}{renamed ``degree'' to ``academic grade'' to avoid +% name clash with the degree symbol} +% \begin{macro}{\@academicgrade} +% \changes{v0.6}{2021/07/29}{renamed ``degree'' to ``academic grade'' to avoid +% name clash with the degree symbol} +% \begin{option}{academicgrade} +% \changes{v0.6}{2021/07/29}{renamed ``degree'' to ``academic grade'' to avoid +% name clash with the degree symbol} +% \begin{macrocode} +\DefineSimpleTitleKey{academicgrade} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\matriculationnumber} +% \begin{macro}{\@matriculationnumber} +% \begin{option}{matriculationnumber} +% \begin{macrocode} +\DefineSimpleTitleKey{matriculationnumber} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\advisor} +% \begin{macro}{\@advisor} +% \begin{option}{advisor} +% \begin{macrocode} +\DefineSimpleTitleKey{advisor} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\referee} +% \begin{macro}{\@referee} +% \begin{option}{referee} +% \begin{macrocode} +\DefineSimpleTitleKey{referee} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\place} +% \begin{macro}{\@place} +% \begin{option}{place} +% \begin{macrocode} +\DefineSimpleTitleKey{place} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\publisher} +% \begin{macro}{\@publisher} +% \begin{option}{publisher} +% \begin{macrocode} +\DefineSimpleTitleKey{publisher} +\renewcommand*{\@publisher}{\csname @publishers\endcsname} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\mainlogo} +% \changes{v0.4}{2012/07/24}{new} +% \begin{macro}{\@mainlogo} +% \changes{v0.4}{2012/07/24}{new (internal)} +% \begin{option}{mainlogo} +% \changes{v0.4}{2012/07/24}{new} +% \begin{macrocode} +\DefineSimpleTitleKey{mainlogo} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\oralexaminationdate} +% \begin{macro}{\@oralexaminationdate} +% \begin{option}{oralexaminationdate} +% \begin{macrocode} +\DefineSimpleTitleKey{oralexaminationdate} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% \begin{macro}{\dedication} +% \begin{macro}{\@dedication} +% \begin{option}{dedication} +% \begin{macrocode} +\providecommand*{\@dedication}{} +\providecommand{\dedication}[1]{\gdef\@dedication{#1}} +\DefineFamilyKey{title}{dedication}{\dedication{#1}\FamilyKeyStateProcessed} +% \end{macrocode} +% \end{option} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\usetitleelement} +% \changes{v0.4}{2012/04/24}{new} +% \begin{macro}{\@usetitleelement@error} +% \changes{v0.4}{2012/04/24}{new (internal)} +% Users cannot simply use, e.g., \cs{@title}, \cs{@mainlogo} etc. So we need a +% command to get them: +% \begin{macrocode} +\newcommand*{\usetitleelement}[1]{% + \scr@ifundefinedorrelax{#1}{% + \@usetitleelement@error{#1}% + }{% + \scr@ifundefinedorrelax{@#1}{% + \@usetitleelement@error{#1}% + }{% + \@nameuse{@#1}% + }% + }% +} +\newcommand*{\@usetitleelement@error}[1]{% + \PackageError{uni-titlepage}{`#1' isn't a title element}{% + You should use \string\usetitleelement\space for title elements + only!\MessageBreak + If you'll continue, command will be ignored.}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% Some variables use their own configurable font: +% \begin{option}{titlepagefont} +% \begin{macro}{\@titlepagefont} +% \begin{macrocode} +\scr@ifundefinedorrelax{newkomafont}{% + \newcommand*{\@titlepagefont}{}% +}{% + \newkomafont{titlepage}{}% +} +\DefineFamilyKey{title}{titlepagefont}{% + \renewcommand*{\@titlepagefont}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{subjectfont} +% \begin{macro}{\subject@font} +% \begin{macrocode} +\providecommand*{\subject@font}{\bfseries} +\DefineFamilyKey{title}{subjectfont}{% + \renewcommand*{\subject@font}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{titlefont} +% \begin{macro}{\title@font} +% \begin{macrocode} +\providecommand*{\titlefont}{\bfseries} +\DefineFamilyKey{title}{titlefont}{% + \renewcommand*{\titlefont}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{option}{subtitlefont} +% \begin{macro}{\@subtitlefont} +% \begin{macrocode} +\providecommand*{\@subtitlefont}{\bfseries} +\DefineFamilyKey{title}{subtitlefont}{% + \renewcommand*{\@subtitlefont}{#1}% + \FamilyKeyStateProcessed +} +% \end{macrocode} +% \end{macro} +% \end{option} +% +% \begin{macro}{\TitlePageStyle} +% Load a title page style from file +% \begin{macrocode} +\newcommand*{\TitlePageStyle}[2][]{% + \IfFileExists{title-#2.def}{% + \begingroup + \edef\@tempa{\endgroup + \noexpand\inittitlestyle + \noexpand\makeatletter + \noexpand\input{title-#2.def}% + \noexpand\catcode`\noexpand\@=\the\catcode`\@ + }% + \@tempa + \TitleOptions{#1}% + }{% + \PackageError{uni-titlepage}{No title definition for `#2' found}{% + You've tried to set title page style `#2', but no title page + style definition file\MessageBreak + `title-#2.def' may be found% + }% + } +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NowButAfterBeginDocument} +% Nice shortcut: +% \begin{macrocode} +\newcommand*{\NowButAfterBeginDocument}{% + \if@atdocument + \expandafter\@firstofone + \else + \expandafter\AtBeginDocument + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\DeclareOption*{\expandafter\TitlePageStyle\expandafter{\CurrentOption}} +\FamilyProcessOptions*\relax +% \end{macrocode} +% +% \begin{macro}{\chairmanname} +% \changes{v0.5}{2016/06/21}{new}%^^A +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\projectpapername} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\seminarpapername} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\studentreserchname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\diplomathesisname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\degreethesisname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\masterthesisname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\bachelorthesisname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\presentedbyname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\advisorname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\thename} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\ofthename} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\fromname} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\fromplacename} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\malerefereename} +% \changes{v0.5}{2016/06/21}{new}%^^A +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\femalerefereename} +% \changes{v0.5}{2016/06/21}{new}%^^A +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\refereename} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\oralexaminationdatename} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\ordinal} +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% \begin{macro}{\maleordinal} +% \changes{v0.5}{2016/06/21}{new}%^^A +% \begin{macro}{\femaleordinal} +% \changes{v0.5}{2016/06/21}{new}%^^A +% \changes{v0.5c}{2019/05/27}{not needed \cs{AtBeginDocument} removed}%^^A +% Language dependent terms: +% \begin{macrocode} +\providecommand*{\chairmanname}{Chairman} +\providecommand*{\projectpapername}{Project Paper} +\providecommand*{\seminarpapername}{Seminar Paper} +\providecommand*{\studentresearchname}{Student Research Project} +\providecommand*{\diplomathesisname}{Diploma Thesis} +\providecommand*{\degreethesisname}{Degree Thesis} +\providecommand*{\masterthesisname}{Master Thesis} +\providecommand*{\bachelorthesisname}{Bachelor Thesis} +\providecommand*{\presentedbyname}{presented by} +\providecommand*{\advisorname}{Advisor} +\providecommand*{\thename}{} +\providecommand*{\ofthename}{of the} +\providecommand*{\fromname}{from} +\providecommand*{\fromplacename}{from} +\providecommand*{\refereename}{Referee} +\providecommand*{\femalerefereename}{\refereename} +\providecommand*{\malerefereename}{\refereename} +\providecommand*{\oralexaminationdatename}{Date of Oral Examination} +\providecommand*{\atthename}{at} +\providecommand*{\durationname}{Processing Time} +\providecommand*{\matriculationnumbername}{Matriculationnumber} +\providecommand*{\coursename}{Course} +\providecommand*{\companyname}{Training Company} +\providecommand*{\examinationname}{Examination} +\providecommand*{\examinationdatename}{Date of Examination} +\newcommand*{\ordinal}{\englishordinal} +\newcommand*{\femaleordinal}{\ordinal} +\newcommand*{\maleordinal}{\ordinal} +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\chairmanname}{Chairmain}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\projectpapername}{Project Paper}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\seminarpapername}{Seminar Paper}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\studentresearchname}{Student + Research Project}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\diplomathesisname}{Diploma Thesis}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\degreethesisname}{Degree Thesis}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\masterthesisname}{Master Thesis}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\bachelorthesisname}{Bachelor + Thesis}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\ordinal}{\englishordinal}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\presentedbyname}{presented by}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\advisorname}{Advisor}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\thename}{}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\ofthename}{of the}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\fromname}{from}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\fromplacename}{from}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\refereename}{Referee}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\oralexaminationdatename}{Date of + Oral Examination}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\durationname}{Processing Time}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\matriculationnumbername}{Matriculationnumber}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\coursename}{Course}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\companyname}{Training Company}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\examinationname}{Examination}% +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\examinationdatename}{Date of + Examination}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\chairmanname}{Dekan/Dekanin}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\projectpapername}{Projektarbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\seminarpapername}{Seminararbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\studentresearchname}{Studienarbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\diplomathesisname}{Diplomarbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\degreethesisname}{Dissertation}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\masterthesisname}{Master-Arbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\bachelorthesisname}{Bachelor-Arbeit}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\ordinal}{\germanordinal}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\femaleordinal}{\germanfemaleordinal}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\maleordinal}{\germanmaleordinal}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\presentedbyname}{eingereicht von}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\advisorname}{Betreuer}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\thename}{den}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\ofthename}{der}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\fromname}{von}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\fromplacename}{aus}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\refereename}{Gutachter}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\femalerefereename}{Gutachterin}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\oralexaminationdatename}{Datum der m\"undlichen + Pr\"ufung}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\durationname}{Bearbeitungszeitraum}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\matriculationnumbername}{Matrikelnummer}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\coursename}{Kurs}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\companyname}{Ausbildungsfirma}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\examinationname}{Pr\"ufung}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\examinationdatename}{Tag der Pr\"ufung}% +% \end{macrocode} +% \begin{macro}{\englishordinal} +% \begin{macrocode} +\newcommand*{\englishordinal}[1]{% + \ifcsname engordnumber\endcsname + \engordnumber{#1}% + \else + \ifnum #1<\@ne + \PackageError{uni-titlepage}{Ordinal of `#1' not defined}{% + This package does only define english ordinals from 1}% + \else + \ifcase #1\or 1st\or 2nd\or 3rd\or 4th\or 5th\or 6th\or 7th\or 8th\or + 9th\or 10th\else + \PackageError{uni-titlepage}{Ordinal of `#1' not defined}{% + This package does only define english ordinals from 1 to + 10.\MessageBreak + You may load package `engord' to improve support of english + ordinals}% + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\germanordinal} +% \begin{macro}{\germanmaleordinal} +% \begin{macro}{\germanfemaleordinal} +% \begin{macrocode} +\newcommand*{\germanordinal}[1]{% + \ifnum #1<\@ne + \PackageError{uni-titlepage}{Ordinal of `#1' not defined}{% + This package does only define german ordinals from 1}% + \else + #1.% + \fi +} +\newcommand*{\germanmaleordinal}[1]{% + \ifcase #1 + \PackageError{uni-titlepage}{Male ordinal of `#1' not defined}{% + This package does only define german male ordinals from 1}% + \or Erster\or Zweiter\or Dritter\or Vierter\or F\"unfter\or Sechster% + \or Siebter\or Achter\or Neunter\or Zehnter\else + \PackageError{uni-titlepage}{Male ordinal of `#1' not defined}{% + This package does only define german male ordinals up to 10}% + \fi +} +\newcommand*{\germanfemaleordinal}[1]{% + \ifcase #1 + \PackageError{uni-titlepage}{Female ordinal of `#1' not defined}{% + This package does only define german female ordinals from 1}% + \or Erste\or Zweite\or Dritte\or Vierte\or F\"unfte\or Sechste% + \or Siebte\or Achte\or Neunte\or Zehnte\else + \PackageError{uni-titlepage}{Female ordinal of `#1' not defined}{% + This package does only define german female ordinals up to 10}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \iffalse meta-comment +% +% \fi^^A meta-comment +% +% \subsection{The \texttt{titlepage} Drivers} +% \label{sec:The-titlepage-Drivers} +% +% \changes{v0.2}{2011/06/07}{new style \texttt{DHBW}} +% \changes{v0.2}{2011/06/07}{new style \texttt{Spacer}} +% \changes{v0.3}{2012/07/05}{new style \texttt{KIT}} +% \changes{v0.4}{2012/07/24}{new style \texttt{JT-Aufsaetze}} +% \changes{v0.4}{2012/07/24}{new style \texttt{JT-Geschichte}} +% \changes{v0.4}{2012/07/24}{new style \texttt{JT-Typography}} +% \iffalse meta-comment +%<*driver> +% \fi^^A meta-comment +% \begin{macrocode} +\begingroup + \def\PackageNotLoadedError#1{% + \GenericError{% + (#1)\@spaces\@spaces\@spaces\@spaces + }{% + File `#1' Error: package `uni-titlepage' hasn't been loaded% + }{% + This definition file was made to be loaded by package + `uni-titlepage'.\MessageBreak + You may not use it without package `uni-titlepage'!\MessageBreak + See the documentation of package `uni-titlepage' for explanation.% + }% + }% + \ifx\csname uni-titlepage.sty@vers\endcsname\relax + \PackageNotLoadedError{% +% title-DHBW.def% +% title-KOMAScript.def% +% title-TU-DD.def% +% title-TU-HH.def% +% title-Markus-1.def% +% title-Markus-2.def% +% title-Spacer.def% +% title-KIT.def% +% title-JT-Aufsaetze.def% +% title-JT-Geschichte.def% +% title-JT-Typography.def% +% title-WWUM.def% + }% + \fi +\endgroup +% \end{macrocode} +% +% Each style corresponds with an own member. Nevertheless most styles will not +% have options in their own, because string options should be global to make +% change of style very easy. +% \begin{macrocode} +\DefineFamilyMember[% +% DHBW% +% KOMAScript% +% TU-DD% +% TU-HH% +% Markus-1% +% Markus-2% +% Spacer% +% KIT% +% JT-Aufsaetze% +% JT-Geschichte% +% JT-Typography% +% WWUM% +]{title} +% \end{macrocode} +% +% Nevertheless some style has their own switches: +% \begin{option}{blackborder} +% \emph{Trauerrand} at style \File{TU-DD}: +% \begin{macrocode} +%\FamilyBoolKey[TU-DD]{title}{blackborder}{blackborder} +% \end{macrocode} +% \end{option} +% \begin{option}{final} +% Style \File{TU-HH} distinguishes between drafts and final thesis. +% \begin{macrocode} +%\FamilyBoolKey[TU-HH]{title}{final}{final} +% \end{macrocode} +% \end{option} +% \begin{option}{rulewidth} +% \begin{macro}{\title@rulewidth} +% \begin{option}{rulesep} +% \begin{macro}{\title@rulesep} +% Some styles have some variable rules at the title: +% \begin{macrocode} +%<*Spacer|JT-Aufsaetze|JT-Geschichte|Markus&2> +\providecommand*{\title@rulewidth}{% +% 0pt% +% .25\textwidth +} +\providecommand*{\title@rulesep}{% +% \ifdim \title@rulewidth>\z@ 10pt\else \z@\fi +% 1.5pt% +} +\DefineFamilyKey[% +% Markus-2% +% JT-Aufsaetze% +% JT-Geschichte% +% Spacer% +]{title}{rulewidth}{% + \gdef\title@rulewidth{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +\DefineFamilyKey[% +% Markus-2% +% JT-Aufsaetze% +% JT-Geschichte% +% Spacer% +]{title}{rulesep}{% + \gdef\title@rulesep{\dimexpr #1\relax}% + \FamilyKeyStateProcessed +} +% +% \end{macrocode} +% \end{macro} +% \end{option} +% \end{macro} +% \end{option} +% +% An some has their own terms: +% \begin{macro}{\presentationinformationWWUM} +% \changes{v0.5}{2016/06/21}{new style WWUM} +% \begin{macro}{\presentationinformationTUHH} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German +% languages}^^A +% \begin{macro}{\presentationinformationDHBW} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German languages}^^A +% \changes{0.5e}{2019/11/20}{\cs{if} replaced by \cs{ifx}} +% \begin{macro}{\presentationinformationKIT} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German languages}^^A +% \begin{macrocode} +%<*DHBW> +\providecommand*{\presentationinformationDHBW}{% + for the \examinationname{} of\\[.5\baselineskip] + \@academicgrade\\[0pt plus 1fill] + of \@discipline\\[.5\baselineskip] + at the \@university{} \@place\\ +} +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\presentationinformationDHBW}{% + for the \examinationname\\[.5\baselineskip] + \@academicgrade\\[0pt plus 1fill] + of degree course \@discipline\\[.5\baselineskip] + at the \@university\ifx\@place\@empty\else\space\@place\fi +}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\presentationinformationDHBW}{% + f\"ur die \examinationname{} zum\\[.5\baselineskip] + \@academicgrade\\[0pt plus 1fill] + des Studienganges \@discipline\\[.5\baselineskip] + an der \@university{}\ifx\@place\@empty\else\space\@place\fi +}% +% +%<*TU-HH> +\providecommand*{\presentationinformationTUHH}{% + \iffinal Of the \else The \fi Graduation Committee of the\\ + \@university\\[.5ex] + to the Acquisition of the Academic Degree\\[.5ex] + \@academicgrade\\[.5ex] + \iffinal approved \else submitted \fi\@subject} +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\presentationinformationTUHH}{% + \iffinal Of the \else The \fi Graduation Committee of the\\ + \@university\\[.5ex] + to the Acquisition of the Academic Degree\\[.5ex] + \@academicgrade\\[.5ex] + \iffinal approved \else submitted \fi\@subject} +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\presentationinformationTUHH}{% + \iffinal Vom \else Dem \fi Promotionsausschuss der\\ + \@university\\[.5ex] + zur Erlangung des akademischen Grades\\[.5ex] + \@academicgrade\\[.5ex] + \iffinal genehmigte \else vorgelegte \fi\@subject}% +% +%<*KIT> +\providecommand*{\presentationinformationKIT}{% + At the \@faculty\\ + \strut\ignorespaces\@chair\\ +} +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\presentationinformationKIT}{% + At the \@faculty\\ + \strut\ignorespaces\@chair\\ +}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\presentationinformationKIT}{% + An der \@faculty\\ + \strut\ignorespaces\@chair\\ +}% +% +%<*WWUM> +\providecommand*{\presentationinformationWWUM}{% + \@subject\\ + to the Aquisition of the Academic Degree\\ + \@academicgrade\\ + of the \@sience{} of \@discipline\\ + of the \@faculty{} faculty\\ + of the \@university +} +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\presentationinformationWWUM}{% + \@subject\\ + to the Aquisition of the Academic Degree\\ + \@academicgrade\\ + of the \@sience{} of \@discipline\\ + of the \@faculty{} faculty\\ + of the \@university +} +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\presentationinformationWWUM}{% + \@subject\\ + zur Erlangung des \@academicgrade\\ + der \@sience{} im Fachbereich \@discipline\\ + der \@faculty{} Fakult\"at\\ + der \@university +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\KITlongname} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German +% languages}^^A +% \begin{macro}{\fromname} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German +% languages}^^A +% \begin{macro}{\refereename} +% \changes{v0.5}{2016/06/21}{\cs{NowButAfterBeginDocument} not needed any +% more}^^A +% \changes{v0.5}{2016/06/21}{provide sevaral English and German +% languages}^^A +% \begin{macro}{\KITurl} +% \begin{macrocode} +%<*KIT> +\providecaptionname{american,australian,british,canadian,% + english,newzealand,UKenglish,USenglish}{\KITlongname}{% + University of the State of Baden-W\"urttemberg and National Research Center + of the Helmholtz Association% +}% +\providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}{\KITlongname}{% + Universit\"at des Landes Baden-W\"urttemberg und nationales + Forschungszentrum in der Helmholtz-Gemeinschaft +}% +\scr@ifundefinedorrelax{captionsamerican}{}{% + \renewcaptionname{american}{\fromname}{of}% + \renewcaptionname{american}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsaustralian}{}{% + \renewcaptionname{australian}{\fromname}{of}% + \renewcaptionname{australian}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsbritish}{}{% + \renewcaptionname{british}{\fromname}{of}% + \renewcaptionname{british}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionscanadian}{}{% + \renewcaptionname{canadian}{\fromname}{of}% + \renewcaptionname{canadian}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsenglish}{}{% + \renewcaptionname{english}{\fromname}{of}% + \renewcaptionname{english}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsnewzealand}{}{% + \renewcaptionname{newzealand}{\fromname}{of}% + \renewcaptionname{newzealand}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsUKenglish}{}{% + \renewcaptionname{UKenglish}{\fromname}{of}% + \renewcaptionname{UKenglish}{\refereename}{Reviewer}% +}% +\scr@ifundefinedorrelax{captionsUSenglish}{}{% + \renewcaptionname{USenglish}{\fromname}{of}% + \renewcaptionname{USenglish}{\refereename}{Reviewer}% +}% +\newcommand*{\KITurl}{www.kit.edu} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \begin{macro}{\presentedbyname} +% \changes{v0.5}{2016/06/21}{changed value for `WWUM'}%^^A +% \changes{v0.5a}{2016/06/22}{fixed \texttt{swissgerman} instead of +% \texttt{swiss}}%^^A +% \changes{v0.5b}{2018/08/31}{changes have to be delayed}%^^A +% \begin{macrocode} +%<*WWUM> +\NowButAfterBeginDocument +{% + \providecaptionname{german,ngerman,austrian,naustrian, + swissgerman,nswissgerman}{\presentedbyname}{vorgelegt von}% + \scr@ifundefinedorrelax{captionsgerman}{}{% + \renewcaptionname{german}{\presentedbyname}{vorgelegt von}% + }% + \scr@ifundefinedorrelax{captionsngerman}{}{% + \renewcaptionname{ngerman}{\presentedbyname}{vorgelegt von}% + }% + \scr@ifundefinedorrelax{captionsaustrian}{}{% + \renewcaptionname{austrian}{\presentedbyname}{vorgelegt von}% + }% + \scr@ifundefinedorrelax{captionsnaustrian}{}{% + \renewcaptionname{naustrian}{\presentedbyname}{vorgelegt von}% + }% + \scr@ifundefinedorrelax{captionsswissgerman}{}{% + \renewcaptionname{swissgerman}{\presentedbyname}{vorgelegt von}% + }% + \scr@ifundefinedorrelax{captionsnswissgerman}{}{% + \renewcaptionname{nswissgerman}{\presentedbyname}{vorgelegt von}% + }% +} +% +% \end{macrocode} +% \end{macro} +% +% While style initialization, something may change: +% \begin{macrocode} +\renewcommand*{\inittitle}{% +% \end{macrocode} +% style \File{KOMAScript} redefines some footnote macros: +% \begin{macrocode} +%<*KOMAScript> + \let\footnotesize\small + \let\footnoterule\relax + \let\footnote\thanks + \renewcommand*\thefootnote{\@fnsymbol\c@footnote}% + \let\@oldmakefnmark\@makefnmark + \renewcommand*{\@makefnmark}{\rlap\@oldmakefnmark}% +% +% \end{macrocode} +% styles \File{DHBW}, \File{TU-DD}, \File{TU-HH}, and \File{KIT} sets some +% variable if not already done +% \begin{macrocode} +%<*DHBW|TU-DD|TU-HH|KIT|WWUM> + \ifx\@university\@empty + \university{% +% Dualen Hochschule% +% Technische\nobreakspace Universit\"at\nobreakspace Dresden% +% Technische\nobreakspace Universit\"at\nobreakspace +% Hamburg-Harburg% +% KIT -- \KITlongname +% Westf\"alischen Wilhelms-Universit\"at M\"unster% + }% + \fi + \ifx\@place\@empty + \place{% +% Baden-W\"urttemberg% +% Dresden% +% Hamburg% +% Karlsruhe% +%<*WWUM> + \PackageWarning{uni-titlepage}{Birth place missing.\MessageBreak + Style `WWUM' needs the birth place of\MessageBreak + the student}% +% + } + \fi +%<*DHBW> + \ifx\@mainlogo\@empty + \IfFileExists{DHBW_d_MOS_195x95_rgb_300.jpg}{% + \scr@ifundefinedorrelax{includegraphics}{% + \if@atdocument\else\RequirePackage{graphicx}\fi + }{}% + \scr@ifundefinedorrelax{includegraphics}{}{% + \mainlogo{% + \includegraphics[width=57mm,height=27mm]% + {DHBW_d_MOS_195x95_rgb_300.jpg}% + }% + }% + }{}% + \fi + \ifx\@titlehead\@empty + \titlehead{\hspace*{\fill}\@mainlogo}% + \fi + \ifx\@titlepagefont\@empty + \renewcommand*{\@titlepagefont}{\normalfont\sffamily}% + \fi +% +%<*KIT> + \ifx\@homepage\@empty + \homepage{\KITurl}% + \fi + \ifx\@mainlogo\@empty +% \end{macrocode} +% \changes{v0.5f}{2021/07/29}{autodetect several logo picture files} +% Try to detect one of the suitable PNGs of the KIT logo from +% \url{https://de.wikipedia.org/wiki/Datei:Logo_KIT.svg}. +% \begin{macrocode} + \def\KIT@logo{KITLogo_RGB.pdf}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{2560px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{2000px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{1280px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{1024px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{1000px-Logo_KIT.svg.png}\IfFileExists{KIT@logo}{}{% + \def\KIT@logo{800px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{640px-Logo_KIT.svg.png}\IfFileExists{\KIT@logo}{}{% + \def\KIT@logo{500px-Logo_KIT.svg.png}% + }}}}}}}}% + \IfFileExists{\KIT@logo}{% + \scr@ifundefinedorrelax{includegraphics}{% + \if@atdocument\else\RequirePackage{graphicx}\fi + }{}% + \scr@ifundefinedorrelax{includegraphics}{}{% + \mainlogo{% + \includegraphics[width=40mm,height=18.5mm]{\KIT@logo}% + }% + }% + }{}% + \fi + \ifx\@titlehead\@empty + \titlehead{\@mainlogo\hspace*{\fill}}% + \fi + \ifx\@titlepagefont\@empty + \renewcommand*{\@titlepagefont}{\usefont{T1}{phv}{m}{n}}% + \fi +% +%<*WWUM> + \ifx\@titlepagefont\@empty + \renewcommand*{\@titlepagefont}{\normalfont\large}% + \fi +% +% +% \end{macrocode} +% style \File{Markus-2} uses it's own pagestyle at the first title page +% \begin{macrocode} +%<*Markus&2> + \def\ps@maintitle{% + \ps@empty + \def\@oddhead{% + \parbox[b][\headheight][b]{\hsize}{\@titlepagefont{% + \csname @titlehead\endcsname}}% + }% + \let\@evenhead\@oddhead + }% +% +% \end{macrocode} +% styles \File{JT-Aufsaetze} and \File{JT-Geschichte} set some font defaults: +% \begin{macrocode} +%<*JT-Aufsaetze|JT-Geschichte> + \ifx\@titlepagefont\@empty +% \renewcommand*{\@titlepagefont}{\normalfont\Huge\itshape}% +%<*JT-Geschichte> + \scr@ifundefinedorrelax{lsstyle}{% + \renewcommand*{\@titlepagefont}{\normalfont\let\@tpf@extra\scshape}% + }{% + \renewcommand*{\@titlepagefont}{% + \normalfont\def\@tpf@extra{\lsstyle\MakeUppercase}% + }% + } +% + \fi + \ifx\titlefont\@empty + \renewcommand*{\titlefont}{\normalfont}% + \fi +% +%<*JT-Typography> + \ifx\@titlepagefont\@empty + \renewcommand*{\@titlepagefont}{\normalfont\sffamily\bfseries}% + \fi +% +% \end{macrocode} +% \begin{macrocode} +} +% \end{macrocode} +% +% \begin{macro}{\publishers} +% \KOMAScript{} defines this macro. But we use \verb|\publisher| instead. +% \begin{macrocode} +%\providecommand*{\publishers}{\publisher} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makemaintitle} +% \changes{v0.2a}{2012/03/20}{\texttt{Markus-2}: \cs{leavevmode} added +% before \cs{subject@font} to avoid line break after \cs{subject@font} +% using package \textsf{color} or \textsf{xcolor}} +% This differs from style to style: +% \begin{macrocode} +\renewcommand*{\makemaintitle}{% + \begin{% +% fullsizetitle} +%<*KOMAScript|Markus|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography|WWUM> + titlepage} +% + \setlength{\parskip}{\z@}% + \setlength{\parindent}{\z@}% + \setlength{\parfillskip}{\z@\@plus 1fil}% + \linespread{1}\selectfont + \@titlepagefont +%<*DHBW> + \vspace*{12mm}% + \centering + \begin{minipage}[t][\dimexpr\vsize-36mm\relax]{\dimexpr\hsize-40mm\relax}% + \@titlehead\par + \centering + \Large + \vfill + {\titlefont{\Large\@title}}\par + \vfill + {\subject@font{\Large\@subject\par}}% + \vfill + \presentationinformationDHBW\par + \vfill + \fromname\\[.5\baselineskip] + \@author\par + \vfill + \@date\par + \vfill + \begin{tabular}{*2{p{.5\dimexpr\linewidth-3\tabcolsep\relax}}@{}} + \durationname & \@duration \\[.5ex] + \matriculationnumbername, \coursename & \@matriculationnumber, + \@course\\[.5ex] + \companyname & \@company \\[.5ex] + \advisorname{} \ofthename{} \companyname & \@advisor \\[.5ex] + \refereename{} \ofthename{} \@university & \@referee + \end{tabular} + \end{minipage} +% +%<*KOMAScript> + \ifx\@titlehead\@empty \else + \begin{minipage}[t]{\textwidth}% + \@titlehead + \end{minipage}\par + \fi + \null\vfill + \begingroup + \centering + \ifx\@subject\@empty \else + {\subject@font{\@subject \par}}% + \vskip 3em + \fi + {\titlefont{\huge \@title\par}}% + \vskip 1em + {\ifx\@subtitle\@empty\else\@subtitlefont{\@subtitle}\par\fi}% + \vskip 2em + {\Large \lineskip 0.75em + \begin{tabular}[t]{c} + \@author + \end{tabular}\par + }% + \vskip 1.5em + {\Large \@date \par}% + \vskip \z@ \@plus3fill + {\Large \@publisher \par}% + \vskip 3em + \endgroup + \@thanks + \vfill\null\vskip-\baselineskip +% +%<*TU-DD> + \rule{0pt}{5mm}\par + \ifblackborder + \leavevmode\hskip 1cm + \setlength{\fboxrule}{1pt}% + \expandafter\fbox + \else + \expandafter\mbox + \fi + {% + \begin{minipage}[t][\dimexpr\textheight-2.5cm\relax][t]{% + \dimexpr\linewidth\ifblackborder-3cm\fi\relax} + \sffamily + \centering + \vskip 3cm + {\fontsize{28pt}{34pt}\selectfont + \strut\ignorespaces\@university\unskip\strut\\} + {\fontsize{24pt}{28pt}\selectfont + \strut\ignorespaces\@faculty\unskip\strut\\} + {\fontsize{20pt}{24pt}\selectfont + \strut\ignorespaces\@chair\unskip\strut\\ + \strut\ignorespaces\@professor\unskip\strut\\ + \vfill + {\bfseries\strut\ignorespaces\@title\unskip\strut\\} + \strut\ignorespaces\@subject\unskip\strut\\ + \vfill + \raggedright + \hspace*{.25\linewidth}% + \strut\ignorespaces\presentedbyname\unskip\strut\\ + \hspace*{.25\linewidth}\quad + \begin{tabular}{@{}l@{}} + \strut\ignorespaces\@author\unskip\strut\\ + \strut\ignorespaces\@discipline\unskip\strut\\ + \strut\ignorespaces\@matriculationnumber\unskip\strut\\ + \end{tabular}\\ + \vskip\baselineskip + \hspace*{.25\linewidth}% + \strut\ignorespaces\advisorname\unskip:\strut\\ + \hspace*{.25\linewidth}\quad + \begin{tabular}{@{}l@{}} + \strut\ignorespaces\@advisor\unskip\strut\\ + \end{tabular} + \vskip2\baselineskip + \hspace*{.25\linewidth}% + \strut\ignorespaces\@place,\nobreakspace\thename\nobreakspace\@date + \par} + \vspace*{5mm} + \end{minipage} + }% +% +%<*TU-HH> + \sffamily + \centering + \vspace{5cm} + {\LARGE\bfseries\strut\ignorespaces\@title\\} + {\Large\strut\ignorespaces\@subtitle\\} + \vspace{2.5cm} + {\Large\presentationinformationTUHH\\} + \vspace{2.5cm} + {\Large\strut\ignorespaces\fromname\\ + \strut\ignorespaces\@author\\} + \vspace{2.5cm} + {\Large\strut\ignorespaces\fromplacename\\ + \strut\ignorespaces\@place\\} + \vspace{2.5cm} + {\Large\@date} +% +%<*WWUM> + \centering + \@chair\\ + \vspace{2cm} + \@title\\ + \vfill + \presentationinformationWWUM\\ + \vfill + \presentedbyname\\ + \@author\\ + \ifx\@place\@empty\else\fromplacename{} \@place\\\fi + --\,\the\year\,-- +% +%<*Markus&1> + \raggedright + {\subject@font{% + \large\strut\ignorespaces\@subject\par\vskip 2\baselineskip}}% + {\titlefont{\LARGE\strut\ignorespaces\@title\par}}% + {\@subtitlefont{% + \large\vskip.5\baselineskip\strut\ignorespaces\@subtitle\par}}% + \vfill + {\csname @datefont\endcsname{\large\strut\ignorespaces\@date\par}}% +% +%<*Spacer|Markus&2> + \raggedright +% \thispagestyle{maintitle}% + \raisebox{0pt}[\ht\strutbox][\dimexpr\textheight-\ht\strutbox\relax]{% + \rule[\dimexpr-.667\headsep-\textheight\relax] + {\title@rulewidth} + {\dimexpr\textheight+2\headsep\relax}\kern\title@rulesep}% + \parbox[t][\textheight][t] + {\dimexpr \textwidth-\title@rulewidth-\title@rulesep\relax}{% + \raggedright +%<*Spacer> + \ifx\@titlehead\@empty\else +% \end{macrocode} +% \changes{v0.4a}{2012/09/05}{fix influence of height of titlehead to +% vertical alignment of rule} +% \begin{macrocode} + \raisebox{\dimexpr\ht\strutbox-\totalheight\relax}{% + \parbox[t]{\linewidth}{\@titlehead}% + }\par + \vskip 2\baselineskip + \fi +% + {\leavevmode\subject@font{% + \large\strut\ignorespaces\@subject\par\vskip 2\baselineskip}}% + {\def\and{\\}\csname @authorfont\endcsname{\large\@author}\par + \vskip .5\baselineskip}% + {\titlefont{\LARGE\strut\ignorespaces\@title\par}}% + {\@subtitlefont{% + \large\vskip.5\baselineskip\strut\ignorespaces\@subtitle\par}}% + \vfill + {\csname @publisherfont\endcsname{\large\@publisher\par}}% + {\csname @datefont\endcsname{\large\strut\ignorespaces\@date\par}}% + }% +% +%<*KIT> + \setlength{\unitlength}{1mm}% + \begin{picture}(0,0) + \put(15,-12){% + \line(1,0){\dimexpr\paperwidth-37mm\relax\@gobble}% + }% + \put(\dimexpr\paperwidth-22mm\@gobble,-19){\oval(14,14)[rt]}% + \put(\dimexpr\paperwidth-15mm\@gobble,-19){% + \line(0,-1){\dimexpr\paperheight-37mm\relax\@gobble}% + }% + \put(22,-\dimexpr\paperheight-18mm\relax\@gobble){% + \line(1,0){\dimexpr\paperwidth-37mm\relax\@gobble}% + }% + \put(22,-\dimexpr\paperheight-25mm\relax\@gobble){\oval(14,14)[lb]}% + \put(15,-\dimexpr\paperheight-25mm\relax\@gobble){% + \line(0,1){\dimexpr\paperheight-37mm\relax\@gobble}% + }% + \end{picture}\par + \vskip\dimexpr -\baselineskip+25mm\relax + \hspace*{27mm}% + \begin{minipage}[t][\dimexpr\paperheight-68mm\relax][t] + {\dimexpr\paperwidth-54mm\relax} + \raggedright\@titlehead\par + \centering + \vskip 25mm + {\@titlepagefont\@title\par}% + \vskip 20mm + {\Large\@subject\\\fromname\par} + \vskip 1cm + {\huge\@author\par} + \vskip 1cm + {\Large\presentationinformationKIT\par} + \vskip 2cm + {\Large + \let\@tempa\refereename + \def\@tempb{1}% + \def\and{% + \\ + \xdef\@tempb{\the\numexpr\@tempb+1\relax}% + \expandafter\ordinal\expandafter{\@tempb}~\@tempa: & + }% + \begin{tabular}{@{}lr@{}} + \refereename: & \@referee \\ + \global\let\@tempa\advisorname\xdef\@tempb{1}% + \advisorname: & \@advisor \\ + \end{tabular}\par + } + \vfill + {\large \durationname: \@duration\par} + \end{minipage} + \vskip 35mm + \hspace*{27mm}\makebox[\dimexpr\paperwidth-56mm\relax]{% + \tiny\@university\hfill\large\textbf{\@homepage}% + }% +% +%<*JT-Aufsaetze> + \centering + \@author\\ + \begin{picture}(\title@rulewidth\@gobble, + \dimexpr .3ex+1pt+\title@rulesep\relax\@gobble) + \put(0,\dimexpr .15ex+.5pt+\title@rulesep\relax\@gobble){% + \linethickness{.3ex}\line(1,0){\title@rulewidth\@gobble}% + }% + \put(0,0){% + \linethickness{1pt}\line(1,0){\title@rulewidth\@gobble}% + }% + \end{picture}\\[\baselineskip] + {\titlefont{\@title\par}}% + \vfill + \@publisher +% +%<*JT-Geschichte> + \centering + \large{\@tpf@extra{\@author\unskip\strut}}\\[\dp\strutbox] + {\titlefont{\Huge\@title\par}} + \vfill + \begin{picture}(\title@rulewidth\@gobble, + \dimexpr 4pt+1pt+\title@rulesep\relax\@gobble) + \put(0,\dimexpr 2pt+.5pt+\title@rulesep\relax\@gobble){% + \linethickness{1pt}\line(1,0){\title@rulewidth\@gobble}% + }% + \put(0,0){% + \linethickness{4pt}\line(1,0){\title@rulewidth\@gobble}% + }% + \end{picture}\\[\dp\strutbox] + \@tpf@extra{\@publisher}% + \ifx\@place\@empty\else + \unskip\@tpf@extra{\strut}\\[\dp\strutbox]\@tpf@extra{\@place}% + \fi +% +%<*JT-Typography> + \raggedright + {\Large\MakeUppercase{\@author}\\[\baselineskip]} + {\titlefont{\Huge\MakeUppercase{\@title}\unskip\strut\\}} + {\@subtitlefont{\normalsize\MakeUppercase{\@subtitle}\\}} + \vfill + {\normalsize\MakeUppercase{\@place}\ifx\@place\@empty\else\enskip\fi + {\LARGE\MakeUppercase{\@date}} + \ifx\@publisher\@empty\else\unskip\strut\\[1.5\baselineskip] + \MakeUppercase{\@publisher}% + \fi} +% + \end{% +% fullsizetitle} +%<*KOMAScript|Markus|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography|WWUM> + titlepage} +% +} +% \end{macrocode} +% \end{macro} +% +% Some of the styles need additional string options for the back of the main +% title. These are more structural than logical, so we do not define those +% globally! +% \begin{option}{uppertitleback} +% \begin{macro}{\uppertitleback} +% \begin{macro}{\@uppertitlebacke} +% \begin{option}{lowertitleback} +% \begin{macro}{\lowertitleback} +% \begin{macro}{\@lowertitleback} +% \begin{macrocode} +%<*KOMAScript|Markus|Spacer> +\providecommand*{\@uppertitleback}{} +\providecommand{\uppertitleback}[1]{\gdef\@uppertitleback{#1}} +\DefineFamilyKey[% +% KOMAScript% +% Markus-1% +% Markus-2% +% Spacer% +% JT-Aufsaetze% +% JT-Geschichte% +% JT-Typography% +]{title}{uppertitleback}{\uppertitleback{#1}\FamilyKeyStateProcessed} +\providecommand*{\@lowertitleback}{} +\providecommand{\lowertitleback}[1]{\gdef\@lowertitleback{#1}} +\DefineFamilyKey[% +% KOMAScript% +% Markus-1% +% Markus-2% +% Spacer% +% JT-Aufsaetze% +% JT-Geschichte% +% JT-Typography% +]{title}{lowertitleback}{\lowertitleback{#1}\FamilyKeyStateProcessed} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{macro}{\makemaintitleback} +% \changes{v0.5e}{2019/11/20}{\cs{ifstr} in \textsf{scrbase} renamed to +% \cs{Ifstr}} +% Only some of the styles define this: +% \begin{macrocode} +%<*KOMAScript|Markus|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography> +\renewcommand*{\makemaintitleback}{% + \begin{titlepage} + \begin{minipage}[t]{\textwidth} + \@titlepagefont{\@uppertitleback}% + \end{minipage}\par + \vfill + \begin{minipage}[b]{\textwidth} + \@titlepagefont{\@lowertitleback}% + \end{minipage} + \end{titlepage} +} +% +%<*TU-HH> +\renewcommand*{\makemaintitleback}{% + \begin{titlepage} + \vspace*{\fill} + \iffinal + \@tempcnta\z@ + \def\and{% + \par\advance\@tempcnta by\@ne + \@hangfrom{% + \expandafter\ordinal\expandafter{\the\@tempcnta}~\refereename:\enskip + }% + }\and\@referee + \fi + \vskip 1cm + \iffinal + \@hangfrom{\oralexaminationdatename:\enskip}{\@oralexaminationdate}% + \fi + \end{titlepage} +} +% +%<*WWUM> +\renewcommand*{\makemaintitleback}{% + \begin{titlepage} + \vspace*{\fill} + \noindent + \@tempcnta\z@ + \def\arraystretch{2}% + \newcommand*{\test@malefemale}[1][m]{% + \global\advance\@tempcnta by\@ne + \Ifstr{##1}{f}{\def\fe@male{female}}{\def\fe@male{male}}% + \csname \fe@male ordinal\endcsname{\@tempcnta}\space + \csname \fe@male refereename\endcsname: & + \def\and{\\\test@malefemale}% + }% + \begin{tabular}{@{}ll@{}} + \chairmanname: & \@professor \\ + \expandafter\test@malefemale + \@referee \\ + \oralexaminationdatename: & \@oralexaminationdate + \ifx\examinationdatename\@empty\else + \\\examinationdatename: & + \fi + \\ + \end{tabular} + \end{titlepage} +} +% +% \end{macrocode} +% \end{macro} +% +% Some of the styles need additional string options for the pre title. These +% are more structural than logical, so we do not define those globally! +% \begin{option}{extratitle} +% \begin{macro}{\extratitle} +% \begin{macro}{\@extratitle} +% \begin{macrocode} +%<*KOMAScript|Markus&2|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography> +\providecommand*{\@extratitle}{} +\providecommand{\extratitle}[1]{\gdef\@extratitle{#1}} +\DefineFamilyKey[% +% KOMAScript% +% Markus-2% +% Spacer% +% JT-Aufsaetze% +% JT-Geschichte% +% JT-Typography% +]{title}{extratitle}{\extratitle{#1}\FamilyKeyStateProcessed} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{macro}{\makepretitle} +% \changes{v0.2a}{2012/03/20}{\texttt{Markus-1}: Usage of +% \cs{@titlepagefont} fixed} +% \changes{v0.4b}{2012/09/18}{\texttt{Markus-1}: publisher page may be +% omitted} +% \begin{macro}{\makepretitleback} +% Only some styles have pre titles: +% \begin{macrocode} +%<*KOMAScript|Markus&2|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography> +\renewcommand*{\makepretitle}{% + \ifx\@extratitle\@empty\else + \begin{titlepage} + \noindent\@extratitle + \end{titlepage} + \fi +}% +% +%<*Markus&1> +\renewcommand*{\makepretitle}{% + \ifx\@publisher\@empty\else + \begin{titlepage} + \raggedleft + {\@titlepagefont{% + \large\strut\ignorespaces\@publisher\par}}% + \end{titlepage} + \fi +} +% +%<*WWUM> +\renewcommand*{\makepretitle}{% + \begin{fullsizetitle} + \@titlepagefont + \vspace*{.33\vsize}% + + \centering + \@author\\[1ex] + \@title\\[1ex] + \the\year + \end{fullsizetitle} +} +% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +%<*KOMAScript|Markus&2|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography> +\renewcommand*{\makepretitleback}{% + \ifx\@extratitle\@empty\else\begin{titlepage}\null\end{titlepage}\fi +} +% +%<*Markus&1> +\renewcommand*{\makepretitleback}{% + \ifx\@author\@empty\else + \ifx\@publisher\@empty\begin{titlepage}\end{titlepage}\fi + \begin{titlepage} + \raggedleft + {\@titlepagefont{% + \large\null\vskip 2\baselineskip + \LARGE\strut{\def\and{\hspace{1em}\linebreak[3]}% + \csname @authorfont\endcsname{\large\ignorespaces\@author}\par}}}% + \end{titlepage} + \fi +} +% +%<*WWUM> +\renewcommand*{\makepretitleback}{% + \if@twoside\begin{titlepage}\null\end{titlepage}\fi +} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\makeposttitle} +% \begin{macro}{\makeposttitleback} +% And only some styles provides one more title page with dedication. +% \begin{macrocode} +%<*KOMAScript|Markus|Spacer|JT-Aufsaetze|JT-Geschichte|JT-Typography> +\renewcommand*{\makeposttitle}{% + \ifx\@dedication\@empty\else + \begin{titlepage} + \null\vfill + {\centering\csname @dedicationfont\endcsname{\@dedication \par}}% + \vskip \z@ \@plus 3fill + \end{titlepage} + \fi +} +\renewcommand*{\makeposttitleback}{% + \ifx\@dedication\@empty\else\begin{titlepage}\null\end{titlepage}\fi +} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \iffalse meta-comment +% +% \fi^^A meta-comment +% +% \subsection{The Examples and the Manual} +% \label{sec:The-Examples-and-the-Manual} +% \iffalse meta-comment +%<*doc|README> +%<*example> +% \fi^^A meta-comment +% \begin{macrocode} +\documentclass[a4paper,pagesize]{scrbook} +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +%\usepackage{microtype} +%\usepackage{mathpazo} +%\usepackage[scaled]{helvet} +%\usepackage[demo]{graphicx}% remove option demo if you have the logo +\usepackage{xcolor} +%\colorlet{RED}{red}% because of \MakeUppercase{\textcolor{red}{…}} +\usepackage{uni-titlepage} +\begin{document} +%<*DHBW> +\TitlePageStyle{DHBW} +\makeatletter\providecommand*{\@titlepagefont}{\normalfont\sffamily}\makeatother +\setkomafont{subject}{\sffamily\bfseries} +\maketitle[% + titlefont=\sffamily, + mainlogo=\textcolor{red}{{% + % You may add a company logo here! + % NOTE: The original logo has a large white border! + \includegraphics[width=57mm,height=27mm]% + {DHBW_d_MOS_195x95_rgb_300.jpg}% + }}, + % You may additionally change titlehead. The original definition of + % titlehead is: + titlehead={\hspace*{\fill}\usetitleelement{mainlogo}}, + title=\textcolor{red}{Bachelorarbeitsthema}, + subject=\textcolor{red}{BACHELORARBEIT}, + academicgrade=\textcolor{red}{Bachelor of Engineering}, + discipline=\textcolor{red}{Studiengang}, + place={Baden-Württemberg \textcolor{red}{Stadt}}, + student=\textcolor{red}{Vorname Nachname}, + duration=\textcolor{red}{12 Wochen}, + matriculationnumber=\textcolor{red}{Matrikelnummer}, + course=\textcolor{red}{Kurskürzel}, + company=\textcolor{red}{Firmenname, Stadt}, + advisor=\textcolor{red}{Titel Vorname Nachname}, + referee=\textcolor{red}{Titel Vorname Nachname}, + date=\textcolor{red}{Abgabedatum} +] +% +%<*TU-DD> +\TitlePageStyle{TU-DD} +\maketitle[% + title=\textcolor{red}{Titel im Stil \texttt{TU-DD}}, + university=\textcolor{red}{% + Technische\nobreakspace Universit\"at\nobreakspace Dresden},% + faculty=\textcolor{red}{Fakultät Wirtschafswissenschaften}, + chair=\textcolor{red}{SAP-Stiftungslehrstuhl für\\ + Entrepreneurship und Innovation}, + professor=\textcolor{red}{Prof.\,Dr.\,Michael Schefcyk}, +% subject=diploma, % one of: project, seminar, studentresearch, +% % diploma, degree, master, bachelor, or ... + subject=\textcolor{red}{Seminararbeit\\(bzw. Diplomarbeit)},% ... direct value + student=\textcolor{red}{Vorname und Name}, + discipline=\textcolor{red}{Studienrichtung}, + matriculationnumber=\textcolor{red}{Matrikel-Nr.}, + advisor=\textcolor{red}{(mit akadem. Grad, Vor- und Zuname)}, + date=\textcolor{red}{(Datum der Abgabe)} +] + +\TitleOptions{pagenumber=1,blackborder}% same with `Trauerrand' +\maketitle% everything else, like above +% +%<*KOMAScript> +\TitlePageStyle[pagenumber=1]{KOMAScript} +\maketitle[ + extratitle=\textcolor{red}{Das ist ein Schmutztitel im Stil \texttt{KOMAScript}}, + titlehead=\textcolor{red}{Den Kopfbereich kann man auf diese Weise füllen.}, + subject=\textcolor{red}{Eine Klassifizierung der Arbeit}, + title=\textcolor{red}{Titel im Stil \texttt{KOMAScript}}, + subtitle=\textcolor{red}{Untertitel}, + publisher=\textcolor{red}{Einen Verlag kann man ebenfalls angeben}, + uppertitleback=\textcolor{red}{Oberer Bereich der Rückseite des Haupttitels im Stil + \texttt{KOMAScript}.}, + lowertitleback=\textcolor{red}{Unterer Bereich der Rückseite des Haupttitels im Stil + \texttt{KOMAScript}.}, + dedication=\textcolor{red}{Eine Widmung im Stil \texttt{KOMAScript}} +] +% +%<*TU-HH> +\TitlePageStyle[pagenumber=1]{TU-HH} +\maketitle[% + final, + title=\textcolor{red}{Titel im Stil \texttt{TU-HH}}, + university=\textcolor{red}{Technischen Universität Hamburg-Harburg}, + subject=degree, + academicgrade=\textcolor{red}{Doktor der Naturwissenschaften (Dr.\,rer.\,nat\,)}, + place=\textcolor{red}{(Geburtsort)}, + date=\textcolor{red}{(aktuelles Jahr)}, + referee=\textcolor{red}{Name des ersten Gutachters\protect\and Name des zweiten + Gutachters}, + oralexaminationdate=\textcolor{red}{29. Februar 2009} +] +% +%<*Markus|Spacer> +% Maybe we should define one more option for this: +\setkomafont{subject}{\normalfont\sffamily}% because of KOMA-Script class +\setkomafont{title}{\normalfont\sffamily}% because of KOMA-Script class +%<*1> +\TitlePageStyle[pagenumber=1]{Markus-1} +\maketitle[% + titlepagefont={\normalfont\sffamily},% to show is without KOMA-Script class + title=\textcolor{red}{Titel im Stil \texttt{Markus-1}}, + subject=\textcolor{red}{Eine Klassifizierung der Arbeit}, + subtitle=\textcolor{red}{Untertitel}, + publisher=\textcolor{red}{Verlag}, + uppertitleback=\textcolor{red}{Oberer Bereich der Rückseite des Haupttitels + im Stil \texttt{Markus-1}.}, + lowertitleback=\textcolor{red}{Unterer Bereich der Rückseite des Haupttitels + im Stil \texttt{Markus-1}.}, + dedication=\textcolor{red}{Eine Widmung im Stil \texttt{Markus-1}}, + author=\textcolor{red}{Markus~Kohm\protect\and Sonst~Jemand} +] +% +%<*2|Spacer> +%<2>\TitlePageStyle[pagenumber=1]{Markus-2} +%\TitlePageStyle[pagenumber=1]{Spacer} +\maketitle[% + rulewidth=2pt, + extratitle=\textcolor{red}{Das ist ein Schmutztitel im Stil \texttt{% +%<2> Markus-2}}, +% Spacer}}, +%<*Spacer> + titlehead=\textcolor{red}{\includegraphics{Logo}}, +% + title=\textcolor{red}{Titel im Stil \texttt{% +%<2> Markus-2}}, +% Spacer}}, + subject=\textcolor{red}{Eine Klassifizierung der Arbeit}, + subtitle=\textcolor{red}{Untertitel}, + publisher=\textcolor{red}{Verlag}, + uppertitleback=\textcolor{red}{Oberer Bereich der Rückseite des Haupttitels + im Stil \texttt{% +%<2> Markus-2}.}, +% Spacer}.}, + lowertitleback=\textcolor{red}{Unterer Bereich der Rückseite des Haupttitels + im Stil \texttt{% +%<2> Markus-2}.}, +% Spacer}.}, + dedication=\textcolor{red}{Eine Widmung im Stil \texttt{% +%<2> Markus-2}}, +% Spacer}}, + author=\textcolor{red}{Markus~Kohm} +] +% +% +%<*KIT> +\TitlePageStyle{KIT} +\maketitle[% + mainlogo={\textcolor{red}{% + \includegraphics[width=40mm,height=18.5mm]{KITLogo_RGB}}},% + % You may additionally change titlehead. Original definition of titlehead + % is: + titlehead={\usetitleelement{mainlogo}\hspace*{\fill}},% + title=\textcolor{red}{Titel der Arbeit\\im Stil \texttt{KIT}},% + subject=\textcolor{red}{Klassifizierung der Arbeit},% + author=\textcolor{red}{Markus~Kohm},% + faculty=\textcolor{red}{Fakultät für Informatik},% + chair=\textcolor{red}{% + Institute for Program Structures\\and Data Organization (IPA)},% + advisor={\textcolor{red}{Titel Vorname Nachname}\and + \textcolor{red}{Titel Vorname Nachname}},% + referee={\textcolor{red}{Titel Vorname Nachname}\and + \textcolor{red}{Titel Vorname Nachname}},% + duration=\textcolor{red}{XX. Monat 20XX -- XX. Monat 20XX},% + university=\textcolor{red}{\KITlongname},% + homepage=\textcolor{red}{\KITurl}% +] +% +%<*JT-Aufsaetze> +\TitlePageStyle{JT-Aufsaetze} +\maketitle[% + % There are only three official elements: + author={\textcolor{red}{Markus Kohm}},% + title={\textcolor{red}{Titel der Arbeit angelehnt an Jan Tschicholds + ausgewählte Aufsätze über Fragen der Gestalt des Buches und der + Typographie}}, + titlefont=\normalfont,% You may change the font of the main title + publisher={\textcolor{red}{Der Verlag}} + % Nevertheless, you may use extratitle, lowertitleback and uppertitleback. + % See Markus-2 for more information about those. +] +% +%<*JT-Geschichte> +\TitlePageStyle{JT-Geschichte} +\maketitle[% + % There are only four official elements: + author={\textcolor{red}{Markus Kohm}},% + title={\textcolor{red}{Titel der Arbeit angelehnt an Jan Tschicholds + Geschichte der Schrift in Bildern}}, + titlefont=\itshape,% You may change the font of the main title + publisher={\textcolor{red}{Der Verlag in seiner Langform}}, + place={\textcolor{red}{Der Ort}} + % Nevertheless, you may use extratitle, lowertitleback and uppertitleback. + % See Markus-2 for more information about those. +] +% +%<*JT-Typography> +\TitlePageStyle{JT-Typography} +\maketitle[% + % There are only four official elements: + author={\textcolor{red}{Markus Kohm}},% + title={\textcolor{red}{Titel der Arbeit}}, + subtitle={\textcolor{red}{angelehnt an the new Typography}}, + publisher={\textcolor{red}{Veröffentlicht für einen Verlag oder auch nicht}}, + place={\textcolor{red}{Der Ort}}, + date={\textcolor{red}{2012}} + % Nevertheless, you may use extratitle, lowertitleback and uppertitleback. + % See Markus-2 for more information about those. +] +% +%<*WWUM> +\TitlePageStyle{WWUM} +\renewcaptionname{ngerman}{\examinationdatename}{Tag der Promotion} +%\renewcaptionname{ngerman}{\examinationdatename}{} +%\renewcaptionname{ngerman}{\chairmanname}{Dekan} +%\renewcaptionname{ngerman}{\chairmanname}{Dekanin} +\maketitle[% + title={\textcolor{red}{Titel der Arbeit}}, + subject={\textcolor{red}{Inaugural-Dissertation}}, + academicgrade={\textcolor{red}{Doktorgrades}}, + discipline={\textcolor{red}{Physik}}, + sience={\textcolor{red}{Naturwissenschaften}}, + chair={\textcolor{red}{Experimentelle Physik}}, + faculty={\textcolor{red}{Mathematisch-Naturwissenschaftlichen}}, + author={\textcolor{red}{Mein Name}}, + place={\textcolor{red}{Geburtsort}}, + referee={\textcolor{red}{Peter Mustermann}\and + [f]\textcolor{red}{Petra Musterfrau}}, + professor={\textcolor{red}{Klaus Naseschwarz}} +] +% +\end{document} +% \end{macrocode} +% +% \iffalse meta-comment +% +%<*manual|README> +% \fi^^A meta-comment +% +% \begin{macrocode} +%<*!README> +\documentclass{scrdoc} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[english]{babel} +\usepackage{xltabular} +\usepackage{ragged2e} +\usepackage{booktabs} +\usepackage{graphicx} +\usepackage{hypdoc} +\CodelineIndex +\RecordChanges +\EnableCrossrefs +\GetFileInfo{uni-titlepage.drv} +\begin{document} +\title{More Titlepage Styles with Package \File{uni-titlepage}\footnote{This is file + version \fileversion{} of file \File{\filename}.}} +\author{Markus Kohm\footnote{Markus Kohm \textless komascript\textcircled{\tiny + at}gmx.info\textgreater}} +\date{\fileversion{}\footnote{\textbf{Note:} All version below 0.9 are ALPHA + versions. Everything may change. Everything may break. Everything may + happen.} \filedate} +\maketitle +\begin{abstract} +% +%<*README> +---------------------------------------------------------------------------- + +This work may be distributed and/or modified under the conditions of +the LaTeX Project Public License, version 1.3c of the license. +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 2005/12/01 or later. + +This work has the LPPL maintenance status "maintained". + +The Current Maintainer and author of this work is Markus Kohm. + +---------------------------------------------------------------------------- + +# ABSTRACT + +% +Creation of title pages is something most authors should not have to do. +But reality is not perfect, so a lot of authors have to do it. In 2009 +%KOMA started the title page project at \url{https://komascript.de/titlepage} +%KOMA started the title page project at +to collect real title pages and implement them with a well defined interface. +%In 2021 the project has been moved to \url{https://github.com/komascript/uni-titlepage} +%In 2021 the project has been moved to +and renamed. + +Now, changing from one title page style to another would be very +simple. Nevertheless implementation of a new title page style may be still +difficult. But maybe the guys of the title page project would help you. Just +ask! +%<*README> + +# Unpacking and Installation for Developers and Distributors + +To unpack and install all files, you can download the source from github +and then run: + + l3build install + +Afterwards you can build the manual and the PDFs of the examples using: + + l3build doc + +As an alternative you can use the CTAN source distribution. This already +contains the user manual and the PDFs of the example files. So you only have +to run + + tex uni-titlepage.dtx + +to generate the package file `uni-titlepage.sty`, the title definition files +`title-*.def` and the example titlepages `titlepage-*.tex`. + +Please note, the `title-*.def` files are run-time files. Together with +`uni-titlepage.sty` they have to be placed in `tex/latex/uni-titlepage` inside +a TDS tree. All files `titlepage-*.tex` and `titlepage-*.pdf` as well as +`uni-titlepage.pdf` are part of the documentation and should be placed in +`doc/latex/uni-titlepage/` of the TDS tree. + +# Unpacking and Installation for Users + +Users can use the installation described at +[Unpacking and Installation for Developers and Distributors]. However, if +your TeX distributor already distributes a ready for installation package, you +do not need and should not create files and copy them yourself. Just use the +package manager of your TeX distribution to install the package. + +# How to Contribute + +If you have made a title definition that is not specific for a single project +but could be of interest for other users, you can either + +* make your own `uni-titlepage-FOO` package with its own manual and [upload it +to ctan](https://www.ctan.org/upload), +* contribute in adding it to `uni-titlepage`. + +The first option has the advantage, that you are free. There won't be any code +reviews by the `uni-titlepage` developers. You don't need to use the same +coding style. There is not need to accept the license of `uni-titlepage` +etc. But in this case you have to take care to keep it compatible with future +releases of `uni-titlepage` and it will not be presented in the +`uni-titlepage` manual. + +The second option has the advantage, that after accepting your code, the +`uni-titlepage` developers will try to keep it working even if they change +`uni-titlepage`. But there are several restrictions to your code, before it +will be accepted. For example, you should always try to use general options, +if possible. *Static text* (not handled by options) should be configurable via +`\newcaptionname`, `\providecaptionname` and `\renewcaptionname` and should be +available at least in English and German (but if we can, we help in +translating them). The coding style and quality is also a criterion. + +% +%<*!README> +\end{abstract} +\DocInput{uni-titlepage.dtx} +\end{document} +% +% \end{macrocode} +% +% \iffalse meta-comment +% +% +% \fi^^A meta-comment +% +% \Finale +% +\endinput + +%% Local Variables: +%% TeX-master: t +%% TeX-PDF-mode: t +%% flyspell-mode: t +%% End: diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf new file mode 100644 index 0000000000..29db357407 Binary files /dev/null and b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf differ -- cgit v1.2.3