diff options
Diffstat (limited to 'macros/latex/contrib/tuda-ci/tex/tudapub.cls')
-rw-r--r-- | macros/latex/contrib/tuda-ci/tex/tudapub.cls | 124 |
1 files changed, 102 insertions, 22 deletions
diff --git a/macros/latex/contrib/tuda-ci/tex/tudapub.cls b/macros/latex/contrib/tuda-ci/tex/tudapub.cls index 16f659174f..ce48e40441 100644 --- a/macros/latex/contrib/tuda-ci/tex/tudapub.cls +++ b/macros/latex/contrib/tuda-ci/tex/tudapub.cls @@ -1,4 +1,4 @@ -%% This is file `tudapub.cls' version 3.35 (2023-12-11), +%% This is file `tudapub.cls' version 3.36 (2024-01-05), %% it is part of %% TUDa-CI -- Corporate Design for TU Darmstadt %% ---------------------------------------------------------------------------- @@ -18,7 +18,6 @@ %% %% The Current Maintainers of this work are %% Marei Peischl <tuda-ci@peitex.de> -%% Markus Lazanowski <latex@ce.tu-darmstadt.de> %% %% The development respository can be found at %% https://github.com/tudace/tuda_latex_templates @@ -26,8 +25,8 @@ %% %% ============================================================================ %% -\def\fileversion{3.35} -\def\filedate{2023-12-11} +\def\fileversion{3.36} +\def\filedate{2024-01-05} \NeedsTeXFormat{LaTeX2e} \ProvidesExplClass{tudapub} @@ -109,7 +108,7 @@ headline .initial:n =false, colorback .bool_gset:N = \g_ptxcd_colorback_bool, colorback .initial:n = true, - colorback / title .code:n = + colorback / title .code:n = \bool_gset_true:N \g_ptxcd_colorbacktitle_bool \bool_gset_true:N \g_ptxcd_colorback_bool \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool, @@ -117,13 +116,15 @@ \bool_gset_false:N \g_ptxcd_colorbacktitle_bool \bool_gset_false:N \g_ptxcd_colorbacksubtitle_bool \bool_gset_true:N \g_ptxcd_colorback_bool, - colorback / head .code:n = + colorback / head .code:n = \bool_gset_true:N \g_ptxcd_colorbacktitle_bool \bool_gset_true:N \g_ptxcd_colorback_bool \bool_gset_true:N \g_ptxcd_colorbacksubtitle_bool, colortitleback .code:n = \msg_error:nnx {tudapub} {compatibility-only} {\l_keys_key_tl}, pdfa .bool_gset:N = \g_ptxcd_pdfa_bool, pdfa .initial:n = true, + pdfx .bool_gset:N = \g_ptxcd_pdfx_bool, + pdfx .initial:n = true, twocolumn .bool_gset:N = \g_ptxcd_twocolumn_bool, twocolumn .default:n = true, twocolumn .initial:n = false, @@ -195,10 +196,37 @@ \ProcessKeyOptions[ptxcd/pub] +\bool_if:NF \g_ptxcd_pdfa_bool {\bool_gset_false:N \g_ptxcd_pdfx_bool} -%Option adjustments required for valid PDF/A -\bool_if:NT \g_ptxcd_pdfa_bool { - \PassOptionsToPackage{RGB}{xcolor} +\bool_if:NT \g_ptxcd_pdfa_bool { + \msg_new:nnn {tudapub} {colors-to-rgb} { + You~did~not~add~a~color~profile.\\ + I~will~use~the~default~one~and~automatically~try~to~convert~internal~colors~to~RGB.\\ + This~is~required~to~be~able~to~create~PDF/A~compliance. + } + + \cs_if_exist:NT \pdfmeta_standard_get:nN { + \pdfmeta_standard_get:nN {outputintent_A} \l_tmpa_tl + \quark_if_no_value:NF \l_tmpa_tl { + \bool_gset_false:N \g_ptxcd_pdfx_bool + \msg_new:nnn{tudapub} {prefer-lualatex} { + I~detected~usage~of~l3pdfmeta~(\DocumentMetadata)~to~create~PDF/A.\\ + tudapub~will~not~load~pdfx~to~avoid~conflicts.\\ + To~disable this message use pdfx=false. + } + \msg_info:nn {tudapub} {prefer-lualatex} + } + + \prop_if_in:NnF \g__pdfmeta_outputintents_prop {GTS_PDFA1} { + \PassOptionsToPackage{rgb}{xcolor} + \msg_info:nn {tudapub} {colors-to-rgb} + } + } +} + +\bool_if:NT \g_ptxcd_pdfx_bool { + \PassOptionsToPackage{rgb}{xcolor} + \msg_info:nn {tudapub} {colors-to-rgb} } \exp_args:Nx \tl_if_eq:nnT {\prop_item:Nn \g_ptxcd_clsopts_prop {fontsize}} {9pt} @@ -665,7 +693,7 @@ +\c_ptxcd_rulesep_dim ]{title.TUDa.image} - \bool_if:NT \g_ptxcd_colorbacktitle_bool { + \bool_if:NT \g_ptxcd_colorbacktitle_bool { \ModifyLayer[ textarea, addvoffset=\dim_eval:n {\box_ht:N \ptxcd_headrule_box+\box_dp:N \ptxcd_headrule_box-\g_ptxcd_titlerule_dim}, @@ -770,7 +798,7 @@ \tl_if_empty:NTF \g_ptxcd_titleimage_code_tl { \bool_if:NF \g_ptxcd_colorbacktitle_bool - { + { \bool_if:NT \g_ptxcd_colorback_bool {\putLL{\color{identbarcolor}\rule{\layerwidth}{\layerheight}}} } } @@ -844,7 +872,7 @@ %Logos \RequirePackage{graphicx} -\if_bool:N \g_ptxcd_pdfa_bool +\if_bool:N \g_ptxcd_pdfx_bool \msg_new:nnn{tudapub} {prefer-lualatex} { You~use~pdfa-mode~in~#1.\\ @@ -879,9 +907,8 @@ \msg_error:nn{tudapub} {outdated-package-pdfa} {pdfx} } - %%hyperref - \hypersetup{hidelinks, unicode} + \hypersetup{hidelinks, unicode,pdfa} \iow_new:N \ptxcd_xmpdata_stream \tl_new:N \g_ptxcd_xmp_title_tl \tl_new:N \g_ptxcd_xmp_author_tl @@ -948,17 +975,70 @@ } \msg_new:nnnn{tudapub} {unknown-metadata} { - You~ used~ the~ #1~ metadata~ entry.\\ - I~ don't~ know~ how~ to~ handle~ that.\\ - It~ will~ be~ ignored. + You~ used~ the~ #1~ metadata~ entry.\\ + I~ don't~ know~ how~ to~ handle~ that.\\ + It~ will~ be~ ignored. } {See~ TUDa-CI~ or~ pdfx~ documentation~ for~ details.} \else: - \msg_new:nnn{tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.} - \msg_info:nn{tudapub} {no-pdfa} - %%hyperref - \RequirePackage[hidelinks, unicode]{hyperref} + \PassOptionsToPackage{hidelinks, unicode}{hyperref} + \RequirePackage{hyperref} + \hypersetup{pdfcreator=LaTeX~using~TUDa-CI} + + \msg_new:nnnn {tudapub} {metadata-to-hypersetup} { + You~don't~use~pdfx.\\ + Here~the~\string\Metadata\~command~only~exists~for~compatibility~reasons.\\ + I~will~pass~the~data~to~ḩypersetup. + }{ + If~possible~please~use~hyperref's~\strung\hypersetup~command~for~the~metadata~directly.\\ + See~hyperref~documentation~for~details~on~usage. + } - \newcommand{\Metadata}[1]{\ClassError{tudapub}{You~cannot~use~\string\Metadata\ ~with~pdfa=false.}{}} + \newcommand*{\Metadata}[1]{ + \tl_set:Nn \l_tmpa_tl {#1} + \tl_replace_all:Nnn \l_tmpa_tl {\sep} {;~}% pdfx-Syntax compatibility + \clist_map_inline:Nn \l_tmpa_tl { + \exp_args:Nx \hypersetup{pdf\tl_trim_spaces:n {##1}} + } + \msg_warning:nn {tudapub} {metadata-to-hypersetup} + } + + + \cs_new:Nn \ptxcd_pass_TitleData: { + % check if pdfmanagement is active + \prop_if_exist:NTF \g__pdfmanagement_documentproperties_prop { + \prop_set_eq:NN \l_tmpa_prop \g__pdfmanagement_documentproperties_prop + } { + \prop_set_eq:NN \l_tmpa_prop \g__hyp_documentproperties_prop + } + + % title + \prop_if_in:NnF \l_tmpa_prop {hyperref/pdftitle} { + \begingroup + \def\newline{} + \def\\{} + \let\thanks\use_none:n + \tl_gset:Nf \g_tmpa_tl {\@title} + \endgroup + \hypersetup{pdftitle={\tl_to_str:V \g_tmpa_tl}} + } + + % author + \prop_if_in:NnF \l_tmpa_prop {hyperref/pdfauthor} { + \begingroup + \def\newline{} + \def\\{} + \let\thanks\use_none:n + \tl_gset:Nx \g_tmpa_tl {\seq_use:Nn \g_ptxcd_author_seq {\exp_not:N \and}} + \tl_gset:Nx \g_tmpa_tl {\g_tmpa_tl } + \endgroup + \hypersetup{pdfauthor=\g_tmpa_tl} + } + } + + \bool_if:NF \g_ptxcd_pdfa_bool { + \msg_new:nnn{tudapub} {no-pdfa}{The~ tudapub~ class~ won't~ create~ PDF/A-mode.} + \msg_info:nn{tudapub} {no-pdfa} + } \fi: \box_new:N \g_ptxcd_sponsor_box |