From be53973de38a7aa9a3a0a8c70fd92bdf893c1a35 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 25 Jul 2023 03:01:17 +0000 Subject: CTAN sync 202307250301 --- macros/latex/contrib/crefthe/crefthe.sty | 121 ++++++++++++++----------------- 1 file changed, 55 insertions(+), 66 deletions(-) (limited to 'macros/latex/contrib/crefthe/crefthe.sty') diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty index 4097b0aefc..4f7b382e74 100644 --- a/macros/latex/contrib/crefthe/crefthe.sty +++ b/macros/latex/contrib/crefthe/crefthe.sty @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage {crefthe} - {2023/07/23} {} + {2023/07/23a} {} {Cross referencing with proper definite articles} \keys_define:nn { crefthe } @@ -93,36 +93,53 @@ \__crefthe_cref_general:NNNnnN \c_false_bool #1 #2 { #3 } { #4 } \crefthe_nameCrefs_original:w } -\keys_define:nn { crefthe-setting } +\keys_define:nn { crefthe-command } { , noun .code:n = { \RenewDocumentCommand \crefthemark { m } {} } , variant .tl_set:N = \l__crefthe_variant_tl - % , nom .meta:n = { variant = Nominativ } - % , nom. .meta:n = { variant = Nominativ } - % , Nom .meta:n = { variant = Nominativ } - % , Nom. .meta:n = { variant = Nominativ } - % , gen .meta:n = { variant = Genitiv } - % , gen. .meta:n = { variant = Genitiv } - % , Gen .meta:n = { variant = Genitiv } - % , Gen. .meta:n = { variant = Genitiv } - % , dat .meta:n = { variant = Dativ } - % , dat. .meta:n = { variant = Dativ } - % , Dat .meta:n = { variant = Dativ } - % , Dat. .meta:n = { variant = Dativ } - % , akk .meta:n = { variant = Akkusativ } - % , akk. .meta:n = { variant = Akkusativ } - % , Akk .meta:n = { variant = Akkusativ } - % , Akk. .meta:n = { variant = Akkusativ } - - % , unknown .code:n = { - % \bool_gset_true:N \g__crefthe_has_prep_bool - % \tl_set:No \l__crefthe_prep_tl { \l_keys_key_tl } - % } + , abbr .bool_set:N = \l__crefthe_abbr_bool + , abbr. .bool_set:N = \l__crefthe_abbr_bool , unknown .code:n = {} } +\clist_const:Nn \c__crefthe_command_known_keys_clist { noun, abbr, abbr. } + +\cs_new:Nn \__crefthe_command_key_parser:n + { + \bool_set_false:N \l__crefthe_variant_matched_bool + \clist_if_in:NnF \c__crefthe_command_known_keys_clist { #1 } + { + \str_if_eq:VnT \languagename { ngerman } + { + \str_case:nnT { #1 } + { + { nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } + { nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } + { Nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } + { Nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } + { gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } + { gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } + { Gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } + { Gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } + { dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } + { dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } + { Dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } + { Dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } + { akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } + { akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } + { Akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } + { Akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } + } { \bool_set_true:N \l__crefthe_variant_matched_bool } + } + \bool_if:NF \l__crefthe_variant_matched_bool + { + \bool_gset_true:N \g__crefthe_has_prep_bool + \tl_set:Nn \l__crefthe_prep_tl { #1 } + } + } + } \bool_new:N \l__crefthe_variant_matched_bool \cs_new_protected:Nn \__crefthe_cref_general:NNNnnN @@ -136,50 +153,16 @@ \group_begin: \tl_set:Nn \l__crefthe_variant_tl {} + \bool_set_false:N \l__crefthe_abbr_bool + \bool_gset_false:N \g__crefthe_has_prep_bool \tl_set:Nn \l__crefthe_prep_tl {} - \keys_set:nn { crefthe-setting } { #4 } + \keys_set:nn { crefthe-command } { #4 } + % Below is for getting the preposition + \keyval_parse:NNn \__crefthe_command_key_parser:n \use_none:nn { #4 } - % This should actually be part of the keys parsing - \clist_map_inline:nn { #4 } - { - \bool_set_false:N \l__crefthe_variant_matched_bool - \str_if_in:nnF { ##1 } { = } - {% for keys without values - \str_case:nnT { ##1 } - { - { abbr } { \tl_set:Nn \l__crefthe_variant_tl { abbr. } } - { abbr. } { \tl_set:Nn \l__crefthe_variant_tl { abbr. } } - } { \bool_set_true:N \l__crefthe_variant_matched_bool } - \str_if_eq:VnT \languagename { ngerman } - { - \str_case:nnT { ##1 } - { - { nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } - { nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } - { Nom } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } - { Nom. } { \tl_set:Nn \l__crefthe_variant_tl { Nominativ } } - { gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } - { gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } - { Gen } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } - { Gen. } { \tl_set:Nn \l__crefthe_variant_tl { Genitiv } } - { dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } - { dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } - { Dat } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } - { Dat. } { \tl_set:Nn \l__crefthe_variant_tl { Dativ } } - { akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } - { akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } - { Akk } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } - { Akk. } { \tl_set:Nn \l__crefthe_variant_tl { Akkusativ } } - } { \bool_set_true:N \l__crefthe_variant_matched_bool } - } - \bool_if:NF \l__crefthe_variant_matched_bool - { - \tl_set:Nn \l__crefthe_prep_tl { ##1 } - } - } - } + \bool_if:NT \l__crefthe_abbr_bool { \tl_set:Nn \l__crefthe_variant_tl { abbr. } } \bool_if:NTF #2 { \tl_set:No \l__crefthe_prep_once_tl { \l__crefthe_prep_tl } } @@ -286,6 +269,9 @@ \crefthe_pass_variant_to:n { \Crefthename { #1 } } } +\NewCommandCopy \setcrefname \crefthevariantname +\NewCommandCopy \setCrefname \Crefthevariantname + \tl_new:N \l__crefthe_variant_noun_singular_tl \tl_new:N \l__crefthe_variant_noun_plural_tl \tl_new:N \l__crefthe_variant_article_singular_tl @@ -326,7 +312,7 @@ \cs_new_protected:Npn \__crefthe_parse_variant_default:n #1 { \bool_set_true:N \l__crefthe_variant_default_bool - \__crefthe_variant_parser:w #1 \q_stop + \__crefthe_variant_parser:w #1 {} {} \q_stop \tl_set:Nx \l__crefthe_variant_default_article_singular_tl { \tl_item:Nn \l__crefthe_parsed_tl { 1 } } \tl_set:Nx \l__crefthe_variant_default_noun_singular_tl @@ -338,7 +324,7 @@ } \cs_new_protected:Npn \__crefthe_parse_variant_value:nn #1#2 { - \__crefthe_variant_parser:w #2 \q_stop + \__crefthe_variant_parser:w #2 {} {} \q_stop \tl_put_right:Nx \l__crefthe_variant_article_singular_tl { { \tl_to_str:n { #1 } } { \tl_item:Nn \l__crefthe_parsed_tl { 1 } } } \tl_put_right:Nx \l__crefthe_variant_noun_singular_tl @@ -509,7 +495,10 @@ { De~les } { Des } } -\bool_if:NF \l__crefthe_disable_contractions_for_german_bool +\bool_if:NTF \l__crefthe_disable_contractions_for_german_bool + { + \tl_const:Nn \c_crefthe_contraction_rule_ngerman_tl {} + } { \tl_const:Nn \c_crefthe_contraction_rule_ngerman_tl { -- cgit v1.2.3