diff options
author | Norbert Preining <norbert@preining.info> | 2024-05-18 03:01:38 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2024-05-18 03:01:38 +0000 |
commit | 6231c97119299ef4b55ed2760faff69acfddf0e9 (patch) | |
tree | e1ab2c7a3b34f4fef9af71439b0f1b68d7aaa907 /macros | |
parent | 0cee130f990e7208a0fcdef78916e2cefe1a3639 (diff) |
CTAN sync 202405180301
Diffstat (limited to 'macros')
-rw-r--r-- | macros/latex/contrib/fontscale/CHANGELOG.md | 14 | ||||
-rw-r--r-- | macros/latex/contrib/fontscale/fontscale-manual.pdf | bin | 117113 -> 117192 bytes | |||
-rw-r--r-- | macros/latex/contrib/fontscale/fontscale-manual.tex | 29 | ||||
-rw-r--r-- | macros/latex/contrib/fontscale/fontscale.sty | 372 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/CHANGELOG.md | 10 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2colors.dtx | 7 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2fonts.dtx | 4 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2packages.dtx | 4 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf | bin | 232549 -> 232642 bytes | |||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2thesis.dtx | 8 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2thesis.ins | 6 | ||||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2thesis.pdf | bin | 357282 -> 357376 bytes | |||
-rw-r--r-- | macros/latex/contrib/se2thesis/se2thesis.tex | 2 |
13 files changed, 226 insertions, 230 deletions
diff --git a/macros/latex/contrib/fontscale/CHANGELOG.md b/macros/latex/contrib/fontscale/CHANGELOG.md index 615f5ef448..9706fbbe09 100644 --- a/macros/latex/contrib/fontscale/CHANGELOG.md +++ b/macros/latex/contrib/fontscale/CHANGELOG.md @@ -7,6 +7,20 @@ Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to ## [Unreleased] +## [v1.3.0] - 2024-05-17 + +### Added +- `\fontscalesetup` now provides error checking for the keys `modular/ratio`, + `musical/ratio`, and `musical/notes`. +- It is now documented that `\fontscalesetup` uses `\normalsize` after it + finishes processing the package keys. + +### Changed +- The code now regularly uses `V`- and `v`-type arguments to get the value of a + variable. +- The code now uses private `expl3` wrappers around the LaTeX2e commands + `\@setfontsize`, `\fontsize`, and `\selectfont`. + ## [v1.2.2] - 2024-04-29 ### Changed diff --git a/macros/latex/contrib/fontscale/fontscale-manual.pdf b/macros/latex/contrib/fontscale/fontscale-manual.pdf Binary files differindex 8739ca48ae..2637ef9c1f 100644 --- a/macros/latex/contrib/fontscale/fontscale-manual.pdf +++ b/macros/latex/contrib/fontscale/fontscale-manual.pdf diff --git a/macros/latex/contrib/fontscale/fontscale-manual.tex b/macros/latex/contrib/fontscale/fontscale-manual.tex index 04493d50c2..9917636a04 100644 --- a/macros/latex/contrib/fontscale/fontscale-manual.tex +++ b/macros/latex/contrib/fontscale/fontscale-manual.tex @@ -13,7 +13,7 @@ A user interface for setting document font sizes Oliver Beery -Version 1.2.2\quad{}29 April 2024 +Version 1.3.0\quad{}17 May 2024 \section{Introduction} @@ -25,9 +25,9 @@ Version 1.2.2\quad{}29 April 2024 \listheading{The \pkg{fontscale} package provides the following functionalities:} \begin{itemize} \item - Set document font sizes via a classic, modular, or musical typographic scale. + Set font sizes via a classic, modular, or musical typographic scale. \item - Set arbitrary scales, sizes, and baselineskips for the standard font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge}. + Set arbitrary sizes and baselineskips for the standard font size commands \cs{tiny}, \cs{scriptsize}, \cs{footnotesize}, \cs{small}, \cs{normalsize}, \cs{large}, \cs{Large}, \cs{LARGE}, \cs{huge}, and \cs{Huge}. \item Set the font size settings mid\-/document or within a local group. \item @@ -46,7 +46,7 @@ Version 1.2.2\quad{}29 April 2024 \label{subsec:loading} This package requires the 10 October 2023 \pkg{l3kernel} update. -Since this update is fairly recent, you may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package. +You may need to ensure that your \LaTeX{} installation is up\-/to\-/date before using this package. This package lets the user set arbitrary font sizes. This works with most fonts produced today, but, for historical reasons, the default Computer Modern font is available only in a number of fixed sizes. @@ -223,7 +223,7 @@ Caution: \cs{CurrentFontStep} will expand to nothing if the current font step is Internally, \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} use the kernel command \cs{f@size}. \cs{CurrentFontSize} expands to \texttt{f@size pt}. \cs{CurrentFontBaselineskip} expands to the kernel command \cs{f@baselineskip}. -Note that the low\-/level font command \cs{fontsize}\marg{\meta{dimen}}\marg{\meta{skip}} sets \cs{f@size} before expanding its second argument. +Note that the low\-/level font command \cs{fontsize}\marg{\meta{dimen}}\marg{\meta{skip}} sets \cs{f@size} to the new font size before expanding its second argument. This means that \cs{CurrentFontStep}, \cs{CurrentFontScale}, and \cs{CurrentFontSize} may need to be first expanded if used in \meta{skip}. This package provides the command \cs{SetFontSizeBaselineskip} as an alternative to \cs{fontsize} + \cs{selectfont} that avoids this issue (\S\ref{subsec:fontsize}). @@ -316,16 +316,16 @@ If the current font step is undefined (as explained for \cs{SetFontStep} in \S\r The starred version \cs{PrintSampleText*} reverses the sizing order. The \meta{text} can be changed via the optional argument, but cannot contain \cs{par} tokens. The default \meta{text} is \enquote{The \texttt{fontscale} package: A user interface for setting document font sizes}. +One useful way of printing example text is by using +\cs{PrintSampleText}\oarg{\cs{PrintFontSizeCommand}:\textvisiblespace{}\cs{PrintFontParameters}}. \cs{PrintFontSizeCommand} \KeepNextPar* -\cs{PrintFontSizeCommand} tests whether the current font size and the current font baselineskip match that of any font size command from \cs{tiny} to \cs{Huge}. -If so, it prints the name of that font size command. +\cs{PrintFontSizeCommand} tests whether the current font size and the current font baselineskip match the font size and font baselineskip of any font size command from \cs{tiny} to \cs{Huge}. +If so, it prints the name of that font size command, including the backslash character. If not, it instead prints \enquote{UNDEFINED\@}. -One useful way of printing example text is by using -\cs{PrintSampleText}\oarg{\cs{PrintFontSizeCommand}:\textvisiblespace{}\cs{PrintFontParameters}}. -\vfill%manual +\vfill\pagebreak%manual \subsection {% @@ -336,11 +336,14 @@ One useful way of printing example text is by using \label{subsec:fontscalesetup} \cs{fontscalesetup}\marg{\meta{keyval list}} -\nopagebreak\newline -\Key{reset}[initial, preamble] +\KeepNextPar* -Sets and processes the \pkg{fontscale} package keys and uses \cs{normalsize}. +Sets and processes the \pkg{fontscale} package keys and then uses \cs{normalsize}. \cs{fontscalesetup} can be applied mid\-/document or locally within the current \TeX{} group. + +\Key{reset}[initial, preamble] +\KeepNextPar* + The key \Key{reset} is also available. Its value must be either \texttt{initial} or \texttt{preamble}. The key \Key{reset}[initial] or just \Key{reset} sets all the keys to their initial values. diff --git a/macros/latex/contrib/fontscale/fontscale.sty b/macros/latex/contrib/fontscale/fontscale.sty index afeeefa966..d032e49860 100644 --- a/macros/latex/contrib/fontscale/fontscale.sty +++ b/macros/latex/contrib/fontscale/fontscale.sty @@ -8,8 +8,8 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage {fontscale} - {2024-04-29} - {1.2.2} + {2024-05-17} + {1.3.0} {A user interface for setting document font sizes} % The 2023-10-10 l3kernel update added many 'e'-variants. @@ -25,7 +25,9 @@ \msg_critical:nn { fontscale } { expl3-out-of-date } } -% DECLARE FONT PARAMETERS +% This package does not require any other packages! + +% DECLARE FONT PARAMETER VARIABLES \fp_const:Nn \c_fontscale_tiny_step_fp { -4 } \fp_const:Nn \c_fontscale_scriptsize_step_fp { -3 } @@ -96,7 +98,7 @@ \prop_put:Nnn \l_fontscale_normalsize_prop { scale } { 1 } -% INITIALIZE FONT PARAMETERS +% INITIALIZE FONT PARAMETER VARIABLES \fp_set:Nn \l_fontscale_tiny_scale_fp { 0.6 } \fp_set:Nn \l_fontscale_scriptsize_scale_fp { 0.7 } @@ -178,15 +180,13 @@ % Used to speed up floating point calculations. \fp_new:N \l__fontscale_normalsize_size_fp -\fp_set:Nn \l__fontscale_normalsize_size_fp - { \l_fontscale_normalsize_size_dim } +\fp_set:Nn \l__fontscale_normalsize_size_fp { 10 } \fp_new:N \l__fontscale_musical_notes_fp % Temporary variables -\tl_new:N \l__fontscale_step_tl -\tl_new:N \l__fontscale_scale_tl -\dim_new:N \l__fontscale_size_dim -\skip_new:N \l__fontscale_baselineskip_skip +\tl_new:N \l__fontscale_step_tl +\tl_new:N \l__fontscale_scale_tl +\dim_new:N \l__fontscale_size_dim % SOME HELPER FUNCTIONS @@ -198,9 +198,50 @@ \cs_new_protected:Npn \__fontscale_skip_set_with_default_pt:Nn #1#2 { \@defaultunits #1 = \glueexpr #2 pt \relax \@nnil } \cs_generate_variant:Nn \__fontscale_skip_set_with_default_pt:Nn { c } +% Used to define \tiny to \Huge. Need \dim_use:N for compatibility with the +% microtype package. Otherwise the following would do: +% \cs_new_protected:Npn \__fontscale_fontsize:NNN { \@setfontsize } +\cs_new_protected:Npn \__fontscale_fontsize:NNN #1#2 + { \@setfontsize #1 { \dim_use:N #2 } } +% Similar to \fontsize + \selectfont, except that it takes dimen and skip +% expressions as arguments and avoids the issue where \f@size is set to the new +% font size before the second argument is expanded. +\skip_new:N \l__fontscale_fontsize_skip +\cs_new_protected:Npn \__fontscale_fontsize:nn #1#2 + { + \__fontscale_skip_set_with_default_pt:Nn \l__fontscale_fontsize_skip {#2} + \fontsize { = \dimexpr #1 pt \relax \relax } \l__fontscale_fontsize_skip + \selectfont + } +% Similar to the above function, except that it sets the font baselineskip +% equal to the new font size times the baselineskip-size-ratio. +\cs_new_protected:Npn \__fontscale_fontsize:n #1 + { + \fontsize { = \dimexpr #1 pt \relax \relax } + { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } } + \selectfont + } % MESSAGES +\msg_new:nnn { fontscale } { modular-ratio-out-of-bounds } + { + The~ value~ for~ the~ key~ 'modular / ratio'~ + \msg_line_context: \c_space_tl + must~ be~ greater~ than~ 1. + } +\msg_new:nnn { fontscale } { musical-ratio-out-of-bounds } + { + The~ value~ for~ the~ key~ 'musical / ratio'~ + \msg_line_context: \c_space_tl + must~ be~ greater~ than~ 1. + } +\msg_new:nnn { fontscale } { musical-notes-out-of-bounds } + { + The~ value~ for~ the~ key~ 'musical / notes'~ + \msg_line_context: \c_space_tl + must~ be~ a~ positive~ integer. + } \msg_new:nnn { fontscale } { key-font-scale-ignored } { Key~ '#1 / scale'~ @@ -216,7 +257,7 @@ are~ not~ in~ the~ correct~ order.~ The~ magnitude~ of~ the~ font~ sizes~ should~ be~ ordered~ from~ '\iow_char:N \\tiny'~ to~ '\iow_char:N \\normalsize'~ to~ - '\iow_char:N \\Huge' . + '\iow_char:N \\Huge'. } \msg_new:nnn { fontscale } { font-baselineskips-out-of-order } { @@ -225,15 +266,15 @@ are~ not~ in~ the~ correct~ order.~ The~ magnitude~ of~ the~ font~ baselineskips~ should~ be~ ordered~ from~ '\iow_char:N \\tiny'~ to~ '\iow_char:N \\normalsize'~ to~ - '\iow_char:N \\Huge' . + '\iow_char:N \\Huge'. } \msg_new:nnn { fontscale } { font-step-out-of-bounds } { The~ font~ step~ \msg_line_context: \c_space_tl must~ be~ an~ integer~ from~ -4~ to~ 5,~ - unless~ the~ choice~ key~ 'typographic-scale'~ - is~ set~ to~ 'modular'~ or~ 'musical'. + unless~ the~ value~ for~ the~ choice~ key~ 'typographic-scale'~ + is~ 'modular'~ or~ 'musical'. } \msg_new:nnn { fontscale } { current-font-step-out-of-bounds } { @@ -444,8 +485,8 @@ % PRE-COMPILE KEYS -% Pre-compiles the keys with their initial values. The keys are pre-compiled -% by hand for speed. +% Pre-compiles the keys with their initial values and then sets the keys to +% their initial values. This is done by hand for speed. \cs_new_protected:Npn \__fontscale_keys_precompile_initial: { \bool_set_false:N \l__fontscale_ignore_order_bool @@ -492,6 +533,7 @@ % Pre-compiles the keys with their values at the end of the preamble. The keys % are pre-compiled by hand for speed. \cs_new_eq:NN \__fontscale_keys_precompile_preamble: \prg_do_nothing: +% \AddToHook is passed only a single token for speed. \AddToHook { begindocument / before } { \__fontscale_keys_precompile_preamble_set: } \cs_new_protected:Npn \__fontscale_keys_precompile_preamble_set: @@ -513,65 +555,65 @@ { \int_use:N \l__fontscale_musical_notes_int } \tl_set:Nn \exp_not:N \l__fontscale_tiny_scale_tl - { \exp_not:o \l__fontscale_tiny_scale_tl } + { \exp_not:V \l__fontscale_tiny_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_scale_tl - { \exp_not:o \l__fontscale_scriptsize_scale_tl } + { \exp_not:V \l__fontscale_scriptsize_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_scale_tl - { \exp_not:o \l__fontscale_footnotesize_scale_tl } + { \exp_not:V \l__fontscale_footnotesize_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_small_scale_tl - { \exp_not:o \l__fontscale_small_scale_tl } + { \exp_not:V \l__fontscale_small_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_large_scale_tl - { \exp_not:o \l__fontscale_large_scale_tl } + { \exp_not:V \l__fontscale_large_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_Large_scale_tl - { \exp_not:o \l__fontscale_Large_scale_tl } + { \exp_not:V \l__fontscale_Large_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_LARGE_scale_tl - { \exp_not:o \l__fontscale_LARGE_scale_tl } + { \exp_not:V \l__fontscale_LARGE_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_huge_scale_tl - { \exp_not:o \l__fontscale_huge_scale_tl } + { \exp_not:V \l__fontscale_huge_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_Huge_scale_tl - { \exp_not:o \l__fontscale_Huge_scale_tl } + { \exp_not:V \l__fontscale_Huge_scale_tl } \tl_set:Nn \exp_not:N \l__fontscale_tiny_size_tl - { \exp_not:o \l__fontscale_tiny_size_tl } + { \exp_not:V \l__fontscale_tiny_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_size_tl - { \exp_not:o \l__fontscale_scriptsize_size_tl } + { \exp_not:V \l__fontscale_scriptsize_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_size_tl - { \exp_not:o \l__fontscale_footnotesize_size_tl } + { \exp_not:V \l__fontscale_footnotesize_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_small_size_tl - { \exp_not:o \l__fontscale_small_size_tl } + { \exp_not:V \l__fontscale_small_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_normalsize_size_tl - { \exp_not:o \l__fontscale_normalsize_size_tl } + { \exp_not:V \l__fontscale_normalsize_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_large_size_tl - { \exp_not:o \l__fontscale_large_size_tl } + { \exp_not:V \l__fontscale_large_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_Large_size_tl - { \exp_not:o \l__fontscale_Large_size_tl } + { \exp_not:V \l__fontscale_Large_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_LARGE_size_tl - { \exp_not:o \l__fontscale_LARGE_size_tl } + { \exp_not:V \l__fontscale_LARGE_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_huge_size_tl - { \exp_not:o \l__fontscale_huge_size_tl } + { \exp_not:V \l__fontscale_huge_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_Huge_size_tl - { \exp_not:o \l__fontscale_Huge_size_tl } + { \exp_not:V \l__fontscale_Huge_size_tl } \tl_set:Nn \exp_not:N \l__fontscale_tiny_baselineskip_tl - { \exp_not:o \l__fontscale_tiny_baselineskip_tl } + { \exp_not:V \l__fontscale_tiny_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_scriptsize_baselineskip_tl - { \exp_not:o \l__fontscale_scriptsize_baselineskip_tl } + { \exp_not:V \l__fontscale_scriptsize_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_footnotesize_baselineskip_tl - { \exp_not:o \l__fontscale_footnotesize_baselineskip_tl } + { \exp_not:V \l__fontscale_footnotesize_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_small_baselineskip_tl - { \exp_not:o \l__fontscale_small_baselineskip_tl } + { \exp_not:V \l__fontscale_small_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_normalsize_baselineskip_tl - { \exp_not:o \l__fontscale_normalsize_baselineskip_tl } + { \exp_not:V \l__fontscale_normalsize_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_large_baselineskip_tl - { \exp_not:o \l__fontscale_large_baselineskip_tl } + { \exp_not:V \l__fontscale_large_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_Large_baselineskip_tl - { \exp_not:o \l__fontscale_Large_baselineskip_tl } + { \exp_not:V \l__fontscale_Large_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_LARGE_baselineskip_tl - { \exp_not:o \l__fontscale_LARGE_baselineskip_tl } + { \exp_not:V \l__fontscale_LARGE_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_huge_baselineskip_tl - { \exp_not:o \l__fontscale_huge_baselineskip_tl } + { \exp_not:V \l__fontscale_huge_baselineskip_tl } \tl_set:Nn \exp_not:N \l__fontscale_Huge_baselineskip_tl - { \exp_not:o \l__fontscale_Huge_baselineskip_tl } + { \exp_not:V \l__fontscale_Huge_baselineskip_tl } } } @@ -582,36 +624,59 @@ { \keys_set:nn { fontscale } {#1} \__fontscale_keys_process: + \normalsize + \prg_break: + \prg_break_point: } \cs_new_protected:Npn \__fontscale_keys_process: { + \__fontscale_keys_process_check_modular_musical: \__fontscale_keys_process_normalsize: - \normalsize \__fontscale_keys_process_other: - \__fontscale_keys_process_props: \__fontscale_keys_process_check_order: } -% Sets the size and baselineskip of \normalsize. +% Issues an error if the key 'modular/ratio', 'musical/ratio', or +% 'musical/notes' is set to an impossible value. +\cs_new_protected:Npn \__fontscale_keys_process_check_modular_musical: + { + \fp_compare:nNnF \l__fontscale_modular_ratio_fp > \c_one_fp + { + \msg_error:nn { fontscale } { modular-ratio-out-of-bounds } + \prg_break: + } + \fp_compare:nNnF \l__fontscale_musical_ratio_fp > \c_one_fp + { + \msg_error:nn { fontscale } { musical-ratio-out-of-bounds } + \prg_break: + } + \int_compare:nNnF \l__fontscale_musical_notes_int > 0 + { + \msg_error:nn { fontscale } { musical-notes-out-of-bounds } + \prg_break: + } + } +% Sets the size and baselineskip of \normalsize and updates their property list +% entries. \cs_new_protected:Npn \__fontscale_keys_process_normalsize: { \quark_if_no_value:NTF \l__fontscale_normalsize_size_tl { \dim_set:Nn \l_fontscale_normalsize_size_dim { - \str_case:on \l__fontscale_typographic_scale_str + \str_case:VnF \l__fontscale_typographic_scale_str { - { classic-10pt } { 10pt } { classic-11pt } { 11pt } { classic-12pt } { 12pt } - { modular } { 10pt } - { musical } { 10pt } } + { 10pt } } } { \__fontscale_dim_set_with_default_pt:Nn \l_fontscale_normalsize_size_dim { \l__fontscale_normalsize_size_tl } } + \prop_put:NnV \l_fontscale_normalsize_prop { size } + \l_fontscale_normalsize_size_dim \fp_set:Nn \l__fontscale_normalsize_size_fp { \l_fontscale_normalsize_size_dim } \quark_if_no_value:NTF \l__fontscale_normalsize_baselineskip_tl @@ -630,9 +695,10 @@ \l_fontscale_normalsize_baselineskip_skip { \l__fontscale_normalsize_baselineskip_tl } } + \prop_put:NnV \l_fontscale_normalsize_prop { baselineskip } + \l_fontscale_normalsize_baselineskip_skip } -% Sets the size, scale, and baselineskip of the other font size commands. -% Issues a warning if the user sets both the scale and size keys for the same +% Auxiliary functions that expand to the font size depending on the name of the % font size command. \cs_new:Npn \__fontscale_keys_process_other_classic_xpt:n #1 { @@ -696,37 +762,26 @@ / \l__fontscale_musical_notes_fp ) } } +% Sets the size, scale, and baselineskip of the other font size commands and +% updates their property list entries. Issues a warning if the user sets both +% the scale and size keys for the same font size command. \cs_new_protected:Npn \__fontscale_keys_process_other: { - \str_case:on \l__fontscale_typographic_scale_str + \cs_set_eq:Nc \__fontscale_keys_process_other_typographic_scale:n { - { classic-10pt } - { - \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n - \__fontscale_keys_process_other_classic_xpt:n - } - { classic-11pt } - { - \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n - \__fontscale_keys_process_other_classic_xipt:n - } - { classic-12pt } - { - \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n - \__fontscale_keys_process_other_classic_xiipt:n - } - { modular } - { - \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n - \__fontscale_keys_process_other_modular:n - } - { musical } - { - \cs_set_eq:NN \__fontscale_keys_process_other_typographic_scale:n - \__fontscale_keys_process_other_musical:n - \fp_set:Nn \l__fontscale_musical_notes_fp - { \l__fontscale_musical_notes_int } - } + \str_case:Vn \l__fontscale_typographic_scale_str + { + { classic-10pt } { __fontscale_keys_process_other_classic_xpt:n } + { classic-11pt } { __fontscale_keys_process_other_classic_xipt:n } + { classic-12pt } { __fontscale_keys_process_other_classic_xiipt:n } + { modular } { __fontscale_keys_process_other_modular:n } + { musical } { __fontscale_keys_process_other_musical:n } + } + } + \str_if_eq:VnT \l__fontscale_typographic_scale_str { musical } + { + \fp_set:Nn \l__fontscale_musical_notes_fp + { \l__fontscale_musical_notes_int } } \tl_map_function:NN \c__fontscale_names_other_tl \__fontscale_keys_process_other_aux:n @@ -759,6 +814,9 @@ \prg_break_point: \fp_set:cn { l_fontscale_#1_scale_fp } { \use:c { l_fontscale_#1_size_dim } / \l__fontscale_normalsize_size_fp } + \prop_put:cne { l_fontscale_#1_prop } { scale } + { \fp_use:c { l_fontscale_#1_scale_fp } } + \prop_put:cnv { l_fontscale_#1_prop } { size } { l_fontscale_#1_size_dim } \quark_if_no_value:cTF { l__fontscale_#1_baselineskip_tl } { \skip_set:cn { l_fontscale_#1_baselineskip_skip } @@ -775,74 +833,12 @@ { l_fontscale_#1_baselineskip_skip } { \use:c { l__fontscale_#1_baselineskip_tl } } } - } -% Puts the scale, size, and baselineskip of each font size command in -% property lists, except the scale of \normalsize. -\cs_new_protected:Npn \__fontscale_keys_process_props: - { - \prop_put:Nne \l_fontscale_tiny_prop { scale } - { \fp_use:N \l_fontscale_tiny_scale_fp } - \prop_put:Nne \l_fontscale_scriptsize_prop { scale } - { \fp_use:N \l_fontscale_scriptsize_scale_fp } - \prop_put:Nne \l_fontscale_footnotesize_prop { scale } - { \fp_use:N \l_fontscale_footnotesize_scale_fp } - \prop_put:Nne \l_fontscale_small_prop { scale } - { \fp_use:N \l_fontscale_small_scale_fp } - \prop_put:Nne \l_fontscale_large_prop { scale } - { \fp_use:N \l_fontscale_large_scale_fp } - \prop_put:Nne \l_fontscale_Large_prop { scale } - { \fp_use:N \l_fontscale_Large_scale_fp } - \prop_put:Nne \l_fontscale_LARGE_prop { scale } - { \fp_use:N \l_fontscale_LARGE_scale_fp } - \prop_put:Nne \l_fontscale_huge_prop { scale } - { \fp_use:N \l_fontscale_huge_scale_fp } - \prop_put:Nne \l_fontscale_Huge_prop { scale } - { \fp_use:N \l_fontscale_Huge_scale_fp } - - \prop_put:Nno \l_fontscale_tiny_prop { size } - { \dim_use:N \l_fontscale_tiny_size_dim } - \prop_put:Nno \l_fontscale_scriptsize_prop { size } - { \dim_use:N \l_fontscale_scriptsize_size_dim } - \prop_put:Nno \l_fontscale_footnotesize_prop { size } - { \dim_use:N \l_fontscale_footnotesize_size_dim } - \prop_put:Nno \l_fontscale_small_prop { size } - { \dim_use:N \l_fontscale_small_size_dim } - \prop_put:Nno \l_fontscale_normalsize_prop { size } - { \dim_use:N \l_fontscale_normalsize_size_dim } - \prop_put:Nno \l_fontscale_large_prop { size } - { \dim_use:N \l_fontscale_large_size_dim } - \prop_put:Nno \l_fontscale_Large_prop { size } - { \dim_use:N \l_fontscale_Large_size_dim } - \prop_put:Nno \l_fontscale_LARGE_prop { size } - { \dim_use:N \l_fontscale_LARGE_size_dim } - \prop_put:Nno \l_fontscale_huge_prop { size } - { \dim_use:N \l_fontscale_huge_size_dim } - \prop_put:Nno \l_fontscale_Huge_prop { size } - { \dim_use:N \l_fontscale_Huge_size_dim } - - \prop_put:Nno \l_fontscale_tiny_prop { baselineskip } - { \skip_use:N \l_fontscale_tiny_baselineskip_skip } - \prop_put:Nno \l_fontscale_scriptsize_prop { baselineskip } - { \skip_use:N \l_fontscale_scriptsize_baselineskip_skip } - \prop_put:Nno \l_fontscale_footnotesize_prop { baselineskip } - { \skip_use:N \l_fontscale_footnotesize_baselineskip_skip } - \prop_put:Nno \l_fontscale_small_prop { baselineskip } - { \skip_use:N \l_fontscale_small_baselineskip_skip } - \prop_put:Nno \l_fontscale_normalsize_prop { baselineskip } - { \skip_use:N \l_fontscale_normalsize_baselineskip_skip } - \prop_put:Nno \l_fontscale_large_prop { baselineskip } - { \skip_use:N \l_fontscale_large_baselineskip_skip } - \prop_put:Nno \l_fontscale_Large_prop { baselineskip } - { \skip_use:N \l_fontscale_Large_baselineskip_skip } - \prop_put:Nno \l_fontscale_LARGE_prop { baselineskip } - { \skip_use:N \l_fontscale_LARGE_baselineskip_skip } - \prop_put:Nno \l_fontscale_huge_prop { baselineskip } - { \skip_use:N \l_fontscale_huge_baselineskip_skip } - \prop_put:Nno \l_fontscale_Huge_prop { baselineskip } - { \skip_use:N \l_fontscale_Huge_baselineskip_skip } + \prop_put:cnv { l_fontscale_#1_prop } { baselineskip } + { l_fontscale_#1_baselineskip_skip } } % Issues a warning if the font sizes or font baselineskips (ignoring the -% stretch and shrink components) are not in the correct order. +% stretch and shrink components) are not in the correct order unless the value +% for the key 'ignore-order' is 'true'. \cs_new_protected:Npn \__fontscale_keys_process_check_order: { \bool_if:NF \l__fontscale_ignore_order_bool @@ -883,66 +879,64 @@ % The internal functions of each font size command are not used elsewhere in % the code for compatibility with user-defined hooks % (e.g. \AddToHook{cmd/normalsize/after}{<user-defined-function>}). -% Need \dim_use:N for compatibility with the microtype package. \DeclareDocumentCommand \tiny { } { \__fontscale_tiny: } \cs_new_protected:Npn \__fontscale_tiny: { - \@setfontsize \tiny { \dim_use:N \l_fontscale_tiny_size_dim } + \__fontscale_fontsize:NNN \tiny \l_fontscale_tiny_size_dim \l_fontscale_tiny_baselineskip_skip } \DeclareDocumentCommand \scriptsize { } { \__fontscale_scriptsize: } \cs_new_protected:Npn \__fontscale_scriptsize: { - \@setfontsize \scriptsize { \dim_use:N \l_fontscale_scriptsize_size_dim } + \__fontscale_fontsize:NNN \scriptsize \l_fontscale_scriptsize_size_dim \l_fontscale_scriptsize_baselineskip_skip } \DeclareDocumentCommand \footnotesize { } { \__fontscale_footnotesize: } \cs_new_protected:Npn \__fontscale_footnotesize: { - \@setfontsize \footnotesize - { \dim_use:N \l_fontscale_footnotesize_size_dim } + \__fontscale_fontsize:NNN \footnotesize \l_fontscale_footnotesize_size_dim \l_fontscale_footnotesize_baselineskip_skip } \DeclareDocumentCommand \small { } { \__fontscale_small: } \cs_new_protected:Npn \__fontscale_small: { - \@setfontsize \small { \dim_use:N \l_fontscale_small_size_dim } + \__fontscale_fontsize:NNN \small \l_fontscale_small_size_dim \l_fontscale_small_baselineskip_skip } \DeclareDocumentCommand \normalsize { } { \__fontscale_normalsize: } \cs_new_protected:Npn \__fontscale_normalsize: { - \@setfontsize \normalsize { \dim_use:N \l_fontscale_normalsize_size_dim } + \__fontscale_fontsize:NNN \normalsize \l_fontscale_normalsize_size_dim \l_fontscale_normalsize_baselineskip_skip } \DeclareDocumentCommand \large { } { \__fontscale_large: } \cs_new_protected:Npn \__fontscale_large: { - \@setfontsize \large { \dim_use:N \l_fontscale_large_size_dim } + \__fontscale_fontsize:NNN \large \l_fontscale_large_size_dim \l_fontscale_large_baselineskip_skip } \DeclareDocumentCommand \Large { } { \__fontscale_Large: } \cs_new_protected:Npn \__fontscale_Large: { - \@setfontsize \Large { \dim_use:N \l_fontscale_Large_size_dim } + \__fontscale_fontsize:NNN \Large \l_fontscale_Large_size_dim \l_fontscale_Large_baselineskip_skip } \DeclareDocumentCommand \LARGE { } { \__fontscale_LARGE: } \cs_new_protected:Npn \__fontscale_LARGE: { - \@setfontsize \LARGE { \dim_use:N \l_fontscale_LARGE_size_dim } + \__fontscale_fontsize:NNN \LARGE \l_fontscale_LARGE_size_dim \l_fontscale_LARGE_baselineskip_skip } \DeclareDocumentCommand \huge { } { \__fontscale_huge: } \cs_new_protected:Npn \__fontscale_huge: { - \@setfontsize \huge { \dim_use:N \l_fontscale_huge_size_dim } + \__fontscale_fontsize:NNN \huge \l_fontscale_huge_size_dim \l_fontscale_huge_baselineskip_skip } \DeclareDocumentCommand \Huge { } { \__fontscale_Huge: } \cs_new_protected:Npn \__fontscale_Huge: { - \@setfontsize \Huge { \dim_use:N \l_fontscale_Huge_size_dim } + \__fontscale_fontsize:NNN \Huge \l_fontscale_Huge_size_dim \l_fontscale_Huge_baselineskip_skip } % Initializes to \normalsize. @@ -966,7 +960,7 @@ { \l_fontscale_Huge_size_dim } { 5 } } { - \str_case:on \l__fontscale_typographic_scale_str + \str_case:Vn \l__fontscale_typographic_scale_str { { modular } { @@ -1008,6 +1002,8 @@ { \__fontscale_add_font_step:n {#2} } { \__fontscale_set_font_step:n {#2} } } +% Using \str_case: here is significantly faster (and easier to write) than +% repeatedly testing \fp_compare:. \cs_new_protected:Npn \__fontscale_set_font_step:n #1 { \str_case:enF { \fp_eval:n {#1} } @@ -1024,11 +1020,11 @@ { 5 } { \Huge } } { - \str_case:onF \l__fontscale_typographic_scale_str + \str_case:VnF \l__fontscale_typographic_scale_str { { modular } { - \fontsize + \__fontscale_fontsize:n { \fp_to_dim:n { @@ -1036,15 +1032,10 @@ * \l__fontscale_modular_ratio_fp ^ (#1) } } - { - \fp_to_dim:n - { \f@size * \l__fontscale_baselineskip_size_ratio_fp } - } - \selectfont } { musical } { - \fontsize + \__fontscale_fontsize:n { \fp_to_dim:n { @@ -1053,11 +1044,6 @@ ^ ( (#1) / \l__fontscale_musical_notes_fp ) } } - { - \fp_to_dim:n - { \f@size * \l__fontscale_baselineskip_size_ratio_fp } - } - \selectfont } } { \msg_error:nn { fontscale } { font-step-out-of-bounds } } @@ -1080,17 +1066,13 @@ } \cs_new_protected:Npn \__fontscale_set_font_scale:n #1 { - \fontsize + \__fontscale_fontsize:n { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) } } - { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } } - \selectfont } \cs_new_protected:Npn \__fontscale_add_font_scale:n #1 { - \fontsize + \__fontscale_fontsize:n { \fp_to_dim:n { \l__fontscale_normalsize_size_fp * (#1) + \f@size } } - { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } } - \selectfont } \NewDocumentCommand \SetFontSize { s m } @@ -1099,41 +1081,27 @@ { \__fontscale_add_font_size:n {#2} } { \__fontscale_set_font_size:n {#2} } } -\cs_new_protected:Npn \__fontscale_set_font_size:n #1 - { - \__fontscale_dim_set_with_default_pt:Nn \l__fontscale_size_dim {#1} - \fontsize \l__fontscale_size_dim - { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } } - \selectfont - } +\cs_new_eq:NN \__fontscale_set_font_size:n \__fontscale_fontsize:n \cs_new_protected:Npn \__fontscale_add_font_size:n #1 { \__fontscale_dim_set_with_default_pt:Nn \l__fontscale_size_dim {#1} \dim_add:Nn \l__fontscale_size_dim { \f@size pt } - \fontsize \l__fontscale_size_dim - { \fp_to_dim:n { \f@size * \l__fontscale_baselineskip_size_ratio_fp } } - \selectfont + \__fontscale_fontsize:n { \l__fontscale_size_dim } } -\NewDocumentCommand \ScaleFont { m } { \__fontscale_scalefont:n {#1} } -\cs_new_protected:Npn \__fontscale_scalefont:n #1 +\NewDocumentCommand \ScaleFont { m } + { \__fontscale_scale_font_size_baselineskip:n {#1} } +\cs_new_protected:Npn \__fontscale_scale_font_size_baselineskip:n #1 { - \fontsize + \__fontscale_fontsize:nn { \fp_to_dim:n { \f@size * (#1) } } { \fp_to_dim:n { \dim_to_fp:n { \f@baselineskip } * (#1) } } - \selectfont } \NewDocumentCommand \SetFontSizeBaselineskip { m m } { \__fontscale_set_font_size_baselineskip:nn {#1} {#2} } -\cs_new_protected:Npn \__fontscale_set_font_size_baselineskip:nn #1#2 - { - \__fontscale_dim_set_with_default_pt:Nn \l__fontscale_size_dim {#1} - \__fontscale_skip_set_with_default_pt:Nn \l__fontscale_baselineskip_skip - {#2} - \fontsize \l__fontscale_size_dim \l__fontscale_baselineskip_skip - \selectfont - } +\cs_new_eq:NN \__fontscale_set_font_size_baselineskip:nn + \__fontscale_fontsize:nn \NewDocumentCommand \PrintFontParameters { } { \__fontscale_print_font_parameters: } diff --git a/macros/latex/contrib/se2thesis/CHANGELOG.md b/macros/latex/contrib/se2thesis/CHANGELOG.md index 44f9e6ad3d..32bdced07c 100644 --- a/macros/latex/contrib/se2thesis/CHANGELOG.md +++ b/macros/latex/contrib/se2thesis/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to ## [Unreleased] +## [v4.0.1] – 2024–05–17 + +### Fixed + +- Updated copyright years. +- Add the missing `colormode` option `bw` to `se2colors`. + ## [v4.0.0] – 2024–05–08 ### Changed @@ -196,7 +203,8 @@ These changes might be breaking changes! ### Added - First official release -[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.0.0...HEAD +[Unreleased]: https://github.com/se2p/se2thesis/compare/v4.0.1...HEAD +[v4.0.1]: https://github.com/se2p/se2thesis/compare/v4.0.1...v4.0.0 [v4.0.0]: https://github.com/se2p/se2thesis/compare/v4.0.0...v3.4.0 [v3.4.0]: https://github.com/se2p/se2thesis/compare/v3.4.0...v3.3.1 [v3.3.1]: https://github.com/se2p/se2thesis/compare/v3.3.1...v3.3.0 diff --git a/macros/latex/contrib/se2thesis/se2colors.dtx b/macros/latex/contrib/se2thesis/se2colors.dtx index 26e0756aa2..ccea678194 100644 --- a/macros/latex/contrib/se2thesis/se2colors.dtx +++ b/macros/latex/contrib/se2thesis/se2colors.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% File: se2colors.dtx Copyright (C) 2022--2023 Stephan Lukasczyk +% File: se2colors.dtx Copyright (C) 2022--2024 Stephan Lukasczyk % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -231,7 +231,7 @@ % % Identify the package and give the overall version information. % \begin{macrocode} -\ProvidesExplPackage {se2colors} {2024-05-08} {4.0.0} +\ProvidesExplPackage {se2colors} {2024-05-17} {4.0.1} {A colour support package for the se2thesis bundle} % \end{macrocode} % @@ -259,10 +259,13 @@ cmode / cmyk .meta:n = {cmode=4C}, cmode / rgb .meta:n = {cmode=RGB}, cmode / gray .meta:n = {cmode=BW}, + cmode / bw .meta:n = {cmode=BW}, RGB .meta:n = {cmode=RGB}, rgb .meta:n = {cmode=RGB}, CMYK .meta:n = {cmode=4C}, cmyk .meta:n = {cmode=4C}, + BW .meta:n = {cmode=BW}, + bw .meta:n = {cmode=BW}, gray .meta:n = {cmode=BW}, } \keys_set:nn { seiicolors } { cmode = 4C } diff --git a/macros/latex/contrib/se2thesis/se2fonts.dtx b/macros/latex/contrib/se2thesis/se2fonts.dtx index 566c07d583..741478e0fd 100644 --- a/macros/latex/contrib/se2thesis/se2fonts.dtx +++ b/macros/latex/contrib/se2thesis/se2fonts.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% File: se2fonts.dtx Copyright (C) 2022--2023 Stephan Lukasczyk +% File: se2fonts.dtx Copyright (C) 2022--2024 Stephan Lukasczyk % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -151,7 +151,7 @@ % % Identify the package and give the overall version information. % \begin{macrocode} -\ProvidesExplPackage {se2fonts} {2024-05-08} {4.0.0} +\ProvidesExplPackage {se2fonts} {2024-05-17} {4.0.1} {A font-selection support package for the se2thesis bundle} % \end{macrocode} % diff --git a/macros/latex/contrib/se2thesis/se2packages.dtx b/macros/latex/contrib/se2thesis/se2packages.dtx index bddd9c2337..4c28b13fce 100644 --- a/macros/latex/contrib/se2thesis/se2packages.dtx +++ b/macros/latex/contrib/se2thesis/se2packages.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% File: se2packages.dtx Copyright (C) 2022--2023 Stephan Lukasczyk +% File: se2packages.dtx Copyright (C) 2022--2024 Stephan Lukasczyk % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -443,7 +443,7 @@ % % Identify the package and give the overall version information. % \begin{macrocode} -\ProvidesExplPackage {se2packages} {2024-05-08} {4.0.0} +\ProvidesExplPackage {se2packages} {2024-05-17} {4.0.1} {Supporting packages for the se2thesis bundle} % \end{macrocode} % diff --git a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf Binary files differindex ce333a9f1c..957e0b5110 100644 --- a/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf +++ b/macros/latex/contrib/se2thesis/se2thesis-master-thesis-example.pdf diff --git a/macros/latex/contrib/se2thesis/se2thesis.dtx b/macros/latex/contrib/se2thesis/se2thesis.dtx index bb877d5d80..ced3b912d1 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.dtx +++ b/macros/latex/contrib/se2thesis/se2thesis.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% File: se2thesis.dtx Copyright (C) 2022--2023 Stephan Lukasczyk +% File: se2thesis.dtx Copyright (C) 2022--2024 Stephan Lukasczyk % % It may be distributed and/or modified under the conditions of the % LaTeX Project Public License (LPPL), either version 1.3c of this @@ -607,7 +607,7 @@ % % Identify the class and give the overall version number. % \begin{macrocode} -\ProvidesExplClass {se2thesis} {2024-05-08} {4.0.0} +\ProvidesExplClass {se2thesis} {2024-05-17} {4.0.1} {A thesis class for the Chair of Software Engineering II} % \end{macrocode} % @@ -1655,7 +1655,7 @@ % We provide the following English translations. % % \begin{macrocode} -\ProvideDictionaryFor{English}{se2translations}[2024/05/08] +\ProvideDictionaryFor{English}{se2translations}[2024/05/17] \ProvideDictTranslation{abstract}{abstract} \ProvideDictTranslation{Abstract}{Abstract} \ProvideDictTranslation{acknowledgement}{acknowledgement} @@ -1706,7 +1706,7 @@ % We provide the following German translations. % % \begin{macrocode} -\ProvideDictionaryFor{German}{se2translations}[2024/05/08] +\ProvideDictionaryFor{German}{se2translations}[2024/05/17] \ProvideDictTranslation{abstract}{Zusammenfassung} \ProvideDictTranslation{Abstract}{Zusammenfassung} \ProvideDictTranslation{acknowledgement}{Danksagung} diff --git a/macros/latex/contrib/se2thesis/se2thesis.ins b/macros/latex/contrib/se2thesis/se2thesis.ins index c3af7cd020..79ac36c563 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.ins +++ b/macros/latex/contrib/se2thesis/se2thesis.ins @@ -1,6 +1,6 @@ \iffalse meta-comment -File: se2thesis.ins Copyright (C) 2022--2023 Stephan Lukasczyk +File: se2thesis.ins Copyright (C) 2022--2024 Stephan Lukasczyk It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this @@ -31,7 +31,7 @@ for those people who are interested. % stop DocStrip adding rather wordy text \preamble -Copyright (C) 2022--2023 by Stephan Lukasczyk <tex@lukasczyk.me> +Copyright (C) 2022--2024 by Stephan Lukasczyk <stephan@dante.de> It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of @@ -112,4 +112,4 @@ This work consists of the files se2thesis.dtx, \endbatchfile -%% vim: set ft=tex :
\ No newline at end of file +%% vim: set ft=tex : diff --git a/macros/latex/contrib/se2thesis/se2thesis.pdf b/macros/latex/contrib/se2thesis/se2thesis.pdf Binary files differindex 8af258f73a..b9a75b0b66 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.pdf +++ b/macros/latex/contrib/se2thesis/se2thesis.pdf diff --git a/macros/latex/contrib/se2thesis/se2thesis.tex b/macros/latex/contrib/se2thesis/se2thesis.tex index eac8fdf59e..f1bebf73f2 100644 --- a/macros/latex/contrib/se2thesis/se2thesis.tex +++ b/macros/latex/contrib/se2thesis/se2thesis.tex @@ -1,6 +1,6 @@ \iffalse meta-comment -File: se2thesis.tex Copyright (C) 2022--2023 Stephan Lukasczyk +File: se2thesis.tex Copyright (C) 2022--2024 Stephan Lukasczyk It may be distributed and/or modified under the conditions of the LaTeX Project Public License (LPPL), either version 1.3c of this |