summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/zref-clever
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-01-11 22:01:01 +0000
committerKarl Berry <karl@freefriends.org>2022-01-11 22:01:01 +0000
commitfa4d2a5e2aa4aef4c17f825a54127ab10979e27c (patch)
tree950f60c4d5dda23e9195af93d49623c0d27b6dc3 /Master/texmf-dist/tex/latex/zref-clever
parent94a61ef951904c933eda185e73e73a42ce34725f (diff)
zref-clever (11jan22)
git-svn-id: svn://tug.org/texlive/trunk@61572 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/zref-clever')
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang257
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang (renamed from Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict)14
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang (renamed from Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict)12
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang (renamed from Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict)12
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang (renamed from Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict)14
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang (renamed from Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict)12
-rw-r--r--Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty780
7 files changed, 835 insertions, 266 deletions
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang
new file mode 100644
index 00000000000..26d2d0cb821
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang
@@ -0,0 +1,257 @@
+%%
+%% This is file `zref-clever-dutch.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-dutch')
+%%
+%% This file was generated from file(s) of the LaTeX package "zref-clever".
+%%
+%% Copyright (C) 2021-2022 Gustavo Barros
+%%
+%% It may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License (LPPL), either version 1.3c of this
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file:
+%%
+%% https://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Gustavo Barros.
+%%
+%% This work consists of the files zref-clever.dtx,
+%% zref-clever.ins,
+%% zref-clever.tex,
+%% zref-clever-code.tex,
+%% and the files listed in MANIFEST.md.
+%%
+%% The released version of this package is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the package can be found at
+%%
+%% https://github.com/gusbrs/zref-clever
+%%
+%% for those people who are interested.
+%%
+%% -----------------------------------------------------------------------
+%%
+namesep = {\nobreakspace} ,
+pairsep = {~en\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~en\nobreakspace} ,
+tpairsep = {~en\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {,~en\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~t/m\nobreakspace} ,
+
+type = book ,
+ gender = n ,
+ Name-sg = Boek ,
+ name-sg = boek ,
+ Name-pl = Boeken ,
+ name-pl = boeken ,
+
+type = part ,
+ gender = n ,
+ Name-sg = Deel ,
+ name-sg = deel ,
+ Name-pl = Delen ,
+ name-pl = delen ,
+
+type = chapter ,
+ gender = n ,
+ Name-sg = Hoofdstuk ,
+ name-sg = hoofdstuk ,
+ Name-pl = Hoofdstukken ,
+ name-pl = hoofdstukken ,
+
+type = section ,
+ gender = m ,
+ Name-sg = Paragraaf ,
+ name-sg = paragraaf ,
+ Name-pl = Paragrafen ,
+ name-pl = paragrafen ,
+
+type = paragraph ,
+ gender = f ,
+ Name-sg = Alinea ,
+ name-sg = alinea ,
+ Name-pl = Alinea's ,
+ name-pl = alinea's ,
+
+type = appendix ,
+ gender = { m , n } ,
+ Name-sg = Appendix ,
+ name-sg = appendix ,
+ Name-pl = Appendices ,
+ name-pl = appendices ,
+
+type = page ,
+ gender = { f , m } ,
+ Name-sg = Pagina ,
+ name-sg = pagina ,
+ Name-pl = Pagina's ,
+ name-pl = pagina's ,
+ rangesep = {\textendash} ,
+
+type = line ,
+ gender = m ,
+ Name-sg = Regel ,
+ name-sg = regel ,
+ Name-pl = Regels ,
+ name-pl = regels ,
+
+type = figure ,
+ gender = { n , f , m } ,
+ Name-sg = Figuur ,
+ name-sg = figuur ,
+ Name-pl = Figuren ,
+ name-pl = figuren ,
+
+type = table ,
+ gender = { f , m } ,
+ Name-sg = Tabel ,
+ name-sg = tabel ,
+ Name-pl = Tabellen ,
+ name-pl = tabellen ,
+
+type = item ,
+ gender = n ,
+ Name-sg = Punt ,
+ name-sg = punt ,
+ Name-pl = Punten ,
+ name-pl = punten ,
+
+type = footnote ,
+ gender = { f , m } ,
+ Name-sg = Voetnoot ,
+ name-sg = voetnoot ,
+ Name-pl = Voetnoten ,
+ name-pl = voetnoten ,
+
+type = endnote ,
+ gender = { f , m } ,
+ Name-sg = Eindnoot ,
+ name-sg = eindnoot ,
+ Name-pl = Eindnoten ,
+ name-pl = eindnoten ,
+
+type = note ,
+ gender = f ,
+ Name-sg = Opmerking ,
+ name-sg = opmerking ,
+ Name-pl = Opmerkingen ,
+ name-pl = opmerkingen ,
+
+type = equation ,
+ gender = f ,
+ Name-sg = Vergelijking ,
+ name-sg = vergelijking ,
+ Name-pl = Vergelijkingen ,
+ name-pl = vergelijkingen ,
+ Name-sg-ab = Vgl. ,
+ name-sg-ab = vgl. ,
+ Name-pl-ab = Vgl.'s ,
+ name-pl-ab = vgl.'s ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ gender = f ,
+ Name-sg = Stelling ,
+ name-sg = stelling ,
+ Name-pl = Stellingen ,
+ name-pl = stellingen ,
+type = lemma ,
+ gender = n ,
+ Name-sg = Lemma ,
+ name-sg = lemma ,
+ Name-pl = Lemma's ,
+ name-pl = lemma's ,
+
+type = corollary ,
+ gender = n ,
+ Name-sg = Gevolg ,
+ name-sg = gevolg ,
+ Name-pl = Gevolgen ,
+ name-pl = gevolgen ,
+
+type = proposition ,
+ gender = f ,
+ Name-sg = Propositie ,
+ name-sg = propositie ,
+ Name-pl = Proposities ,
+ name-pl = proposities ,
+
+type = definition ,
+ gender = f ,
+ Name-sg = Definitie ,
+ name-sg = definitie ,
+ Name-pl = Definities ,
+ name-pl = definities ,
+
+type = proof ,
+ gender = n ,
+ Name-sg = Bewijs ,
+ name-sg = bewijs ,
+ Name-pl = Bewijzen ,
+ name-pl = bewijzen ,
+
+type = result ,
+ gender = n ,
+ Name-sg = Resultaat ,
+ name-sg = resultaat ,
+ Name-pl = Resultaten ,
+ name-pl = resultaten ,
+
+type = remark ,
+ gender = f ,
+ Name-sg = Opmerking ,
+ name-sg = opmerking ,
+ Name-pl = Opmerkingen ,
+ name-pl = opmerkingen ,
+
+type = example ,
+ gender = n ,
+ Name-sg = Voorbeeld ,
+ name-sg = voorbeeld ,
+ Name-pl = Voorbeelden ,
+ name-pl = voorbeelden ,
+
+type = algorithm ,
+ gender = { n , f , m } ,
+ Name-sg = Algoritme ,
+ name-sg = algoritme ,
+ Name-pl = Algoritmes ,
+ name-pl = algoritmes ,
+type = listing ,
+ gender = m ,
+ Name-sg = Listing ,
+ name-sg = listing ,
+ Name-pl = Listings ,
+ name-pl = listings ,
+
+type = exercise ,
+ gender = { f , m } ,
+ Name-sg = Opgave ,
+ name-sg = opgave ,
+ Name-pl = Opgaven ,
+ name-pl = opgaven ,
+
+type = solution ,
+ gender = f ,
+ Name-sg = Oplossing ,
+ name-sg = oplossing ,
+ Name-pl = Oplossingen ,
+ name-pl = oplossingen ,
+%%
+%%
+%% End of file `zref-clever-dutch.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang
index 5abce90bf8a..bc51e268916 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang
@@ -1,14 +1,14 @@
%%
-%% This is file `zref-clever-english.dict',
+%% This is file `zref-clever-english.lang',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% zref-clever.dtx (with options: `dict-english')
+%% zref-clever.dtx (with options: `lang-english')
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -97,8 +97,6 @@ type = page ,
name-sg = page ,
Name-pl = Pages ,
name-pl = pages ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
rangesep = {\textendash} ,
type = line ,
@@ -156,8 +154,8 @@ type = equation ,
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
Name-sg = Theorem ,
@@ -238,4 +236,4 @@ type = solution ,
name-pl = solutions ,
%%
%%
-%% End of file `zref-clever-english.dict'.
+%% End of file `zref-clever-english.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang
index 53ea1fc1395..81f4f69c206 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang
@@ -1,14 +1,14 @@
%%
-%% This is file `zref-clever-french.dict',
+%% This is file `zref-clever-french.lang',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% zref-clever.dtx (with options: `dict-french')
+%% zref-clever.dtx (with options: `lang-french')
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -157,8 +157,8 @@ type = equation ,
name-sg = équation ,
Name-pl = Équations ,
name-pl = équations ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -252,4 +252,4 @@ type = solution ,
name-pl = solutions ,
%%
%%
-%% End of file `zref-clever-french.dict'.
+%% End of file `zref-clever-french.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang
index e293e0112b9..610818f09fd 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang
@@ -1,14 +1,14 @@
%%
-%% This is file `zref-clever-german.dict',
+%% This is file `zref-clever-german.lang',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% zref-clever.dtx (with options: `dict-german')
+%% zref-clever.dtx (with options: `lang-german')
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -285,8 +285,8 @@ type = equation ,
case = G ,
Name-sg = Gleichung ,
Name-pl = Gleichungen ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = n ,
@@ -484,4 +484,4 @@ type = solution ,
Name-pl = Lösungen ,
%%
%%
-%% End of file `zref-clever-german.dict'.
+%% End of file `zref-clever-german.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang
index e2295a49441..6e02ea9dd0b 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang
@@ -1,14 +1,14 @@
%%
-%% This is file `zref-clever-portuguese.dict',
+%% This is file `zref-clever-portuguese.lang',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% zref-clever.dtx (with options: `dict-portuguese')
+%% zref-clever.dtx (with options: `lang-portuguese')
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -104,8 +104,6 @@ type = page ,
name-sg = página ,
Name-pl = Páginas ,
name-pl = páginas ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
rangesep = {\textendash} ,
type = line ,
@@ -171,8 +169,8 @@ type = equation ,
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -266,4 +264,4 @@ type = solution ,
name-pl = soluções ,
%%
%%
-%% End of file `zref-clever-portuguese.dict'.
+%% End of file `zref-clever-portuguese.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang
index 13038fb9d59..e96c8d6c712 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang
@@ -1,14 +1,14 @@
%%
-%% This is file `zref-clever-spanish.dict',
+%% This is file `zref-clever-spanish.lang',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% zref-clever.dtx (with options: `dict-spanish')
+%% zref-clever.dtx (with options: `lang-spanish')
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -157,8 +157,8 @@ type = equation ,
name-sg = ecuación ,
Name-pl = Ecuaciones ,
name-pl = ecuaciones ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -252,4 +252,4 @@ type = solution ,
name-pl = soluciones ,
%%
%%
-%% End of file `zref-clever-spanish.dict'.
+%% End of file `zref-clever-spanish.lang'.
diff --git a/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty b/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty
index 34700408b24..61f5127c2e5 100644
--- a/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty
+++ b/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty
@@ -8,7 +8,7 @@
%%
%% This file was generated from file(s) of the LaTeX package "zref-clever".
%%
-%% Copyright (C) 2021 Gustavo Barros
+%% Copyright (C) 2021-2022 Gustavo Barros
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -53,7 +53,7 @@
}%
\endinput
}%
-\ProvidesExplPackage {zref-clever} {2021-12-07} {0.1.1-alpha}
+\ProvidesExplPackage {zref-clever} {2022-01-10} {0.1.2-alpha}
{Clever LaTeX cross-references based on zref}
\RequirePackage { zref-base }
\RequirePackage { zref-user }
@@ -165,6 +165,11 @@
}
\msg_new:nnn { zref-clever } { key-requires-value }
{ The~'#1'~key~'#2'~requires~a~value~\msg_line_context:. }
+\msg_new:nnn { zref-clever } { key-boolean-or-empty }
+ {
+ The~key~'#1'~only~accepts~the~values~'true',~'false'~
+ or~an~empty~value~\msg_line_context:.
+ }
\msg_new:nnn { zref-clever } { language-declared }
{ Language~'#1'~is~already~declared~\msg_line_context:.~Nothing~to~do. }
\msg_new:nnn { zref-clever } { unknown-language-alias }
@@ -242,14 +247,15 @@
{ Unknown~value~'#1'~for~'nudgeif'~option~\msg_line_context:. }
\msg_new:nnn { zref-clever } { option-document-only }
{ Option~'#1'~is~only~available~after~\iow_char:N\\begin\{document\}. }
-\msg_new:nnn { zref-clever } { dict-loaded }
- { Loaded~'#1'~dictionary. }
-\msg_new:nnn { zref-clever } { dict-not-available }
- { Dictionary~for~'#1'~not~available~\msg_line_context:. }
+\msg_new:nnn { zref-clever } { langfile-loaded }
+ { Loaded~'#1'~language~file. }
+\msg_new:nnn { zref-clever } { langfile-not-available }
+ { Language~file~for~'#1'~not~available~\msg_line_context:. }
\msg_new:nnn { zref-clever } { unknown-language-load }
{
- Language~'#1'~is~unknown~\msg_line_context:.~Unable~to~load~dictionary.~
- See~documentation~for~'\iow_char:N\\zcDeclareLanguage'~and~
+ Language~'#1'~is~unknown~\msg_line_context:.~
+ Unable~to~load~language~file.~See~documentation~for~
+ '\iow_char:N\\zcDeclareLanguage'~and~
'\iow_char:N\\zcDeclareLanguageAlias'.
}
\msg_new:nnn { zref-clever } { zref-property-undefined }
@@ -299,12 +305,17 @@
{ Loaded~support~for~'#1'~package. }
\msg_new:nnn { zref-clever } { compat-class }
{ Loaded~support~for~'#1'~documentclass. }
-\cs_new_protected:Npn \__zrefclever_def_extract:Nnnn #1#2#3#4
+\msg_new:nnn { zref-clever } { option-deprecated }
+ {
+ Option~'#1'~has~been~deprecated~\msg_line_context:.\iow_newline:
+ Use~'#2'~instead.
+ }
+\cs_new_protected:Npn \__zrefclever_extract_default:Nnnn #1#2#3#4
{
\exp_args:NNNo \exp_args:NNo \tl_set:Nn #1
{ \zref@extractdefault {#2} {#3} {#4} }
}
-\cs_generate_variant:Nn \__zrefclever_def_extract:Nnnn { NVnn }
+\cs_generate_variant:Nn \__zrefclever_extract_default:Nnnn { NVnn }
\cs_new:Npn \__zrefclever_extract_unexp:nnn #1#2#3
{
\exp_args:NNo \exp_args:No
@@ -314,10 +325,10 @@
\cs_new:Npn \__zrefclever_extract:nnn #1#2#3
{ \zref@extractdefault {#1} {#2} {#3} }
\tl_new:N \l__zrefclever_setup_type_tl
-\tl_new:N \l__zrefclever_dict_language_tl
-\tl_new:N \l__zrefclever_dict_decl_case_tl
-\seq_new:N \l__zrefclever_dict_declension_seq
-\seq_new:N \l__zrefclever_dict_gender_seq
+\tl_new:N \l__zrefclever_base_language_tl
+\tl_new:N \l__zrefclever_lang_decl_case_tl
+\seq_new:N \l__zrefclever_lang_declension_seq
+\seq_new:N \l__zrefclever_lang_gender_seq
\seq_const_from_clist:Nn
\c__zrefclever_ref_options_necessarily_not_type_specific_seq
{
@@ -334,8 +345,8 @@
listsep ,
lastsep ,
rangesep ,
- refpre ,
- refpos ,
+ preref ,
+ postref ,
}
\seq_const_from_clist:Nn
\c__zrefclever_ref_options_type_names_seq
@@ -379,8 +390,8 @@
{ \msg_warning:nnn { zref-clever } { language-declared } {#2} }
{
\prop_gput:Nnn \g__zrefclever_languages_prop {#2} {#2}
- \prop_new:c { g__zrefclever_dict_ #2 _prop }
- \tl_set:Nn \l__zrefclever_dict_language_tl {#2}
+ \prop_new:c { g__zrefclever_lang_ #2 _prop }
+ \tl_set:Nn \l__zrefclever_base_language_tl {#2}
\keys_set:nn { zref-clever / declarelang } {#1}
}
}
@@ -406,21 +417,21 @@
declension .code:n =
{
\prop_gput:cnn
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ declension } {#1}
} ,
declension .value_required:n = true ,
gender .code:n =
{
\prop_gput:cnn
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ gender } {#1}
} ,
gender .value_required:n = true ,
allcaps .code:n =
{
\prop_gput:cnn
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ allcaps } { true }
} ,
allcaps .value_forbidden:n = true ,
@@ -429,19 +440,19 @@
{
\exp_args:NNx \prop_get:NnNTF \g__zrefclever_languages_prop
{ \l__zrefclever_ref_language_tl }
- \l__zrefclever_dict_language_tl
+ \l__zrefclever_base_language_tl
{
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_declension_seq
+ \l__zrefclever_lang_declension_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l__zrefclever_dict_declension_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_declension_seq
{
\tl_if_empty:NF \l__zrefclever_ref_decl_case_tl
{
@@ -455,33 +466,33 @@
{
\tl_if_empty:NTF \l__zrefclever_ref_decl_case_tl
{
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
\l__zrefclever_ref_decl_case_tl
}
{
- \seq_if_in:NVF \l__zrefclever_dict_declension_seq
+ \seq_if_in:NVF \l__zrefclever_lang_declension_seq
\l__zrefclever_ref_decl_case_tl
{
\msg_warning:nnxx { zref-clever }
{ unknown-decl-case }
{ \l__zrefclever_ref_decl_case_tl }
{ \l__zrefclever_ref_language_tl }
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
\l__zrefclever_ref_decl_case_tl
}
}
}
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_gender_seq
+ \l__zrefclever_lang_gender_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ gender }
}
- \seq_if_empty:NTF \l__zrefclever_dict_gender_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_gender_seq
{
\tl_if_empty:NF \l__zrefclever_ref_gender_tl
{
@@ -496,7 +507,7 @@
{
\tl_if_empty:NF \l__zrefclever_ref_gender_tl
{
- \seq_if_in:NVF \l__zrefclever_dict_gender_seq
+ \seq_if_in:NVF \l__zrefclever_lang_gender_seq
\l__zrefclever_ref_gender_tl
{
\msg_warning:nnxx { zref-clever }
@@ -511,13 +522,13 @@
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ allcaps }
}
{ true }
- { \bool_set_true:N \l__zrefclever_capitalize_bool }
+ { \prop_put:Nnn \l__zrefclever_ref_options_prop { cap } { true } }
}
{
\tl_if_empty:NF \l__zrefclever_ref_decl_case_tl
@@ -538,97 +549,99 @@
}
}
}
-\seq_new:N \g__zrefclever_loaded_dictionaries_seq
-\bool_new:N \l__zrefclever_load_dict_verbose_bool
-\cs_new_protected:Npn \__zrefclever_provide_dictionary:n #1
+\seq_new:N \g__zrefclever_loaded_langfiles_seq
+\bool_new:N \l__zrefclever_load_langfile_verbose_bool
+\cs_new_protected:Npn \__zrefclever_provide_langfile:n #1
{
\group_begin:
\@bsphack
\prop_get:NnNTF \g__zrefclever_languages_prop {#1}
- \l__zrefclever_dict_language_tl
+ \l__zrefclever_base_language_tl
{
\seq_if_in:NVF
- \g__zrefclever_loaded_dictionaries_seq
- \l__zrefclever_dict_language_tl
+ \g__zrefclever_loaded_langfiles_seq
+ \l__zrefclever_base_language_tl
{
\exp_args:Nx \file_get:nnNTF
- { zref-clever- \l__zrefclever_dict_language_tl .dict }
+ { zref-clever- \l__zrefclever_base_language_tl .lang }
{ \ExplSyntaxOn }
\l_tmpa_tl
{
\tl_clear:N \l__zrefclever_setup_type_tl
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_declension_seq
+ \l__zrefclever_lang_declension_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l__zrefclever_dict_declension_seq
- { \tl_clear:N \l__zrefclever_dict_decl_case_tl }
+ \seq_if_empty:NTF \l__zrefclever_lang_declension_seq
+ { \tl_clear:N \l__zrefclever_lang_decl_case_tl }
{
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
- \l__zrefclever_dict_decl_case_tl
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
+ \l__zrefclever_lang_decl_case_tl
}
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_gender_seq
+ \l__zrefclever_lang_gender_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ gender }
}
- \keys_set:nV { zref-clever / dictionary } \l_tmpa_tl
- \seq_gput_right:NV \g__zrefclever_loaded_dictionaries_seq
- \l__zrefclever_dict_language_tl
- \msg_note:nnx { zref-clever } { dict-loaded }
- { \l__zrefclever_dict_language_tl }
+ \keys_set:nV { zref-clever / langfile } \l_tmpa_tl
+ \seq_gput_right:NV \g__zrefclever_loaded_langfiles_seq
+ \l__zrefclever_base_language_tl
+ \msg_note:nnx { zref-clever } { langfile-loaded }
+ { \l__zrefclever_base_language_tl }
}
{
- \bool_if:NT \l__zrefclever_load_dict_verbose_bool
+ \bool_if:NT \l__zrefclever_load_langfile_verbose_bool
{
- \msg_warning:nnx { zref-clever } { dict-not-available }
- { \l__zrefclever_dict_language_tl }
+ \msg_warning:nnx { zref-clever } { langfile-not-available }
+ { \l__zrefclever_base_language_tl }
}
- \seq_gput_right:NV \g__zrefclever_loaded_dictionaries_seq
- \l__zrefclever_dict_language_tl
+ \seq_gput_right:NV \g__zrefclever_loaded_langfiles_seq
+ \l__zrefclever_base_language_tl
}
}
}
{
- \bool_if:NT \l__zrefclever_load_dict_verbose_bool
+ \bool_if:NT \l__zrefclever_load_langfile_verbose_bool
{ \msg_warning:nnn { zref-clever } { unknown-language-load } {#1} }
}
\@esphack
\group_end:
}
-\cs_generate_variant:Nn \__zrefclever_provide_dictionary:n { x }
-\cs_new_protected:Npn \__zrefclever_provide_dictionary_verbose:n #1
+\cs_generate_variant:Nn \__zrefclever_provide_langfile:n { x }
+\cs_new_protected:Npn \__zrefclever_provide_langfile_verbose:n #1
{
\group_begin:
- \bool_set_true:N \l__zrefclever_load_dict_verbose_bool
- \__zrefclever_provide_dictionary:n {#1}
+ \bool_set_true:N \l__zrefclever_load_langfile_verbose_bool
+ \__zrefclever_provide_langfile:n {#1}
\group_end:
}
-\cs_generate_variant:Nn \__zrefclever_provide_dictionary_verbose:n { x }
-\cs_new_protected:Npn \__zrefclever_provide_dict_type_transl:nn #1#2
+\cs_generate_variant:Nn \__zrefclever_provide_langfile_verbose:n { x }
+\cs_new_protected:Npn \__zrefclever_provide_lang_opt_type:nn #1#2
{
\exp_args:Nnx \prop_gput_if_new:cnn
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ type- \l__zrefclever_setup_type_tl - #1 } {#2}
}
-\cs_new_protected:Npn \__zrefclever_provide_dict_default_transl:nn #1#2
+\cs_generate_variant:Nn \__zrefclever_provide_lang_opt_type:nn { nV }
+\cs_new_protected:Npn \__zrefclever_provide_lang_opt_default:nn #1#2
{
\prop_gput_if_new:cnn
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ default- #1 } {#2}
}
-\keys_define:nn { zref-clever / dictionary }
+\cs_generate_variant:Nn \__zrefclever_provide_lang_opt_default:nn { nV }
+\keys_define:nn { zref-clever / langfile }
{
type .code:n =
{
@@ -636,31 +649,33 @@
{ \tl_clear:N \l__zrefclever_setup_type_tl }
{ \tl_set:Nn \l__zrefclever_setup_type_tl {#1} }
} ,
+
case .code:n =
{
- \seq_if_empty:NTF \l__zrefclever_dict_declension_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_declension_seq
{
\msg_info:nnxx { zref-clever } { language-no-decl-setup }
- { \l__zrefclever_dict_language_tl } {#1}
+ { \l__zrefclever_base_language_tl } {#1}
}
{
- \seq_if_in:NnTF \l__zrefclever_dict_declension_seq {#1}
- { \tl_set:Nn \l__zrefclever_dict_decl_case_tl {#1} }
+ \seq_if_in:NnTF \l__zrefclever_lang_declension_seq {#1}
+ { \tl_set:Nn \l__zrefclever_lang_decl_case_tl {#1} }
{
\msg_info:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l__zrefclever_dict_language_tl }
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
- \l__zrefclever_dict_decl_case_tl
+ {#1} { \l__zrefclever_base_language_tl }
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
+ \l__zrefclever_lang_decl_case_tl
}
}
} ,
case .value_required:n = true ,
+
gender .code:n =
{
- \seq_if_empty:NTF \l__zrefclever_dict_gender_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_gender_seq
{
\msg_info:nnxxx { zref-clever } { language-no-gender }
- { \l__zrefclever_dict_language_tl } { gender } {#1}
+ { \l__zrefclever_base_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
@@ -669,27 +684,71 @@
{ option-only-type-specific } { gender }
}
{
- \seq_if_in:NnTF \l__zrefclever_dict_gender_seq {#1}
- { \__zrefclever_provide_dict_type_transl:nn { gender } {#1} }
+ \clist_clear:N \l_tmpa_clist
+ \clist_map_inline:nn {#1}
+ {
+ \seq_if_in:NnTF \l__zrefclever_lang_gender_seq {##1}
+ { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ {
+ \msg_info:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l__zrefclever_base_language_tl } {##1}
+ }
+ }
+ \clist_if_empty:NF \l_tmpa_clist
{
- \msg_info:nnxx { zref-clever } { gender-not-declared }
- { \l__zrefclever_dict_language_tl } {#1}
+ \exp_args:Nnx \__zrefclever_provide_lang_opt_type:nn
+ { gender } { \clist_use:Nn \l_tmpa_clist { , } }
}
}
}
} ,
gender .value_required:n = true ,
+
+ cap .choices:nn =
+ { true , false }
+ {
+ \tl_if_empty:NTF \l__zrefclever_setup_type_tl
+ {
+ \__zrefclever_provide_lang_opt_default:nV
+ { cap } \l_keys_choice_tl
+ }
+ {
+ \__zrefclever_provide_lang_opt_type:nV
+ { cap } \l_keys_choice_tl
+ }
+ } ,
+ cap .default:n = true ,
+ nocap .meta:n = { cap = false } ,
+ nocap .value_forbidden:n = true ,
+
+ abbrev .choices:nn =
+ { true , false }
+ {
+ \tl_if_empty:NTF \l__zrefclever_setup_type_tl
+ {
+ \__zrefclever_provide_lang_opt_default:nV
+ { abbrev } \l_keys_choice_tl
+ }
+ {
+ \__zrefclever_provide_lang_opt_type:nV
+ { abbrev } \l_keys_choice_tl
+ }
+ } ,
+ abbrev .default:n = true ,
+ noabbrev .meta:n = { abbrev = false },
+ noabbrev .value_forbidden:n = true ,
}
\seq_map_inline:Nn
\c__zrefclever_ref_options_necessarily_not_type_specific_seq
{
- \keys_define:nn { zref-clever / dictionary }
+ \keys_define:nn { zref-clever / langfile }
{
#1 .value_required:n = true ,
#1 .code:n =
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
- { \__zrefclever_provide_dict_default_transl:nn {#1} {##1} }
+ { \__zrefclever_provide_lang_opt_default:nn {#1} {##1} }
{
\msg_info:nnn { zref-clever }
{ option-not-type-specific } {#1}
@@ -700,21 +759,21 @@
\seq_map_inline:Nn
\c__zrefclever_ref_options_possibly_type_specific_seq
{
- \keys_define:nn { zref-clever / dictionary }
+ \keys_define:nn { zref-clever / langfile }
{
#1 .value_required:n = true ,
#1 .code:n =
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
- { \__zrefclever_provide_dict_default_transl:nn {#1} {##1} }
- { \__zrefclever_provide_dict_type_transl:nn {#1} {##1} }
+ { \__zrefclever_provide_lang_opt_default:nn {#1} {##1} }
+ { \__zrefclever_provide_lang_opt_type:nn {#1} {##1} }
} ,
}
}
\seq_map_inline:Nn
\c__zrefclever_ref_options_type_names_seq
{
- \keys_define:nn { zref-clever / dictionary }
+ \keys_define:nn { zref-clever / langfile }
{
#1 .value_required:n = true ,
#1 .code:n =
@@ -725,18 +784,18 @@
{ option-only-type-specific } {#1}
}
{
- \tl_if_empty:NTF \l__zrefclever_dict_decl_case_tl
- { \__zrefclever_provide_dict_type_transl:nn {#1} {##1} }
+ \tl_if_empty:NTF \l__zrefclever_lang_decl_case_tl
+ { \__zrefclever_provide_lang_opt_type:nn {#1} {##1} }
{
- \__zrefclever_provide_dict_type_transl:nn
- { \l__zrefclever_dict_decl_case_tl - #1 } {##1}
+ \__zrefclever_provide_lang_opt_type:nn
+ { \l__zrefclever_lang_decl_case_tl - #1 } {##1}
}
}
} ,
}
}
-\prop_new:N \g__zrefclever_fallback_dict_prop
-\prop_gset_from_keyval:Nn \g__zrefclever_fallback_dict_prop
+\prop_new:N \g__zrefclever_fallback_unknown_lang_prop
+\prop_gset_from_keyval:Nn \g__zrefclever_fallback_unknown_lang_prop
{
tpairsep = {,~} ,
tlistsep = {,~} ,
@@ -747,17 +806,17 @@
listsep = {,~} ,
lastsep = {,~} ,
rangesep = {\textendash} ,
- refpre = {} ,
- refpos = {} ,
+ preref = {} ,
+ postref = {} ,
}
\prg_new_protected_conditional:Npnn
- \__zrefclever_get_type_transl:nnnN #1#2#3#4 { F }
+ \__zrefclever_get_lang_opt_type:nnnN #1#2#3#4 { F }
{
\prop_get:NnNTF \g__zrefclever_languages_prop {#1}
- \l__zrefclever_dict_language_tl
+ \l__zrefclever_base_language_tl
{
\prop_get:cnNTF
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ type- #2 - #3 } #4
{ \prg_return_true: }
{ \prg_return_false: }
@@ -765,15 +824,15 @@
{ \prg_return_false: }
}
\prg_generate_conditional_variant:Nnn
- \__zrefclever_get_type_transl:nnnN { xxxN , xxnN } { F }
+ \__zrefclever_get_lang_opt_type:nnnN { xxxN , xxnN } { F }
\prg_new_protected_conditional:Npnn
- \__zrefclever_get_default_transl:nnN #1#2#3 { F }
+ \__zrefclever_get_lang_opt_default:nnN #1#2#3 { F }
{
\prop_get:NnNTF \g__zrefclever_languages_prop {#1}
- \l__zrefclever_dict_language_tl
+ \l__zrefclever_base_language_tl
{
\prop_get:cnNTF
- { g__zrefclever_dict_ \l__zrefclever_dict_language_tl _prop }
+ { g__zrefclever_lang_ \l__zrefclever_base_language_tl _prop }
{ default- #2 } #3
{ \prg_return_true: }
{ \prg_return_false: }
@@ -781,11 +840,11 @@
{ \prg_return_false: }
}
\prg_generate_conditional_variant:Nnn
- \__zrefclever_get_default_transl:nnN { xnN } { F }
+ \__zrefclever_get_lang_opt_default:nnN { xnN } { F }
\prg_new_protected_conditional:Npnn
- \__zrefclever_get_fallback_transl:nN #1#2 { F }
+ \__zrefclever_get_fallback_unknown_lang_opt:nN #1#2 { F }
{
- \prop_get:NnNTF \g__zrefclever_fallback_dict_prop
+ \prop_get:NnNTF \g__zrefclever_fallback_unknown_lang_prop
{ #1 } #2
{ \prg_return_true: }
{ \prg_return_false: }
@@ -881,26 +940,50 @@
range .initial:n = false ,
range .default:n = true ,
}
-\bool_new:N \l__zrefclever_capitalize_bool
\bool_new:N \l__zrefclever_capitalize_first_bool
\keys_define:nn { zref-clever / reference }
{
- cap .bool_set:N = \l__zrefclever_capitalize_bool ,
- cap .initial:n = false ,
+ cap .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ { \prop_remove:Nn \l__zrefclever_ref_options_prop { cap } }
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:nn {#1} { true } }
+ { \str_if_eq_p:nn {#1} { false } }
+ { \prop_put:Nnn \l__zrefclever_ref_options_prop { cap } {#1} }
+ {
+ \msg_warning:nnn { zref-clever }
+ { key-boolean-or-empty } {#1}
+ }
+ }
+ } ,
cap .default:n = true ,
- nocap .meta:n = { cap = false },
+ nocap .meta:n = { cap = false } ,
nocap .value_forbidden:n = true ,
capfirst .bool_set:N = \l__zrefclever_capitalize_first_bool ,
capfirst .initial:n = false ,
capfirst .default:n = true ,
}
-\bool_new:N \l__zrefclever_abbrev_bool
\bool_new:N \l__zrefclever_noabbrev_first_bool
\keys_define:nn { zref-clever / reference }
{
- abbrev .bool_set:N = \l__zrefclever_abbrev_bool ,
- abbrev .initial:n = false ,
+ abbrev .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ { \prop_remove:Nn \l__zrefclever_ref_options_prop { abbrev } }
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:nn {#1} { true } }
+ { \str_if_eq_p:nn {#1} { false } }
+ { \prop_put:Nnn \l__zrefclever_ref_options_prop { abbrev } {#1} }
+ {
+ \msg_warning:nnn { zref-clever }
+ { key-boolean-or-empty } {#1}
+ }
+ }
+ } ,
abbrev .default:n = true ,
noabbrev .meta:n = { abbrev = false },
noabbrev .value_forbidden:n = true ,
@@ -1015,7 +1098,7 @@
{
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_current_language_tl }
- \__zrefclever_provide_dictionary_verbose:x
+ \__zrefclever_provide_langfile_verbose:x
{ \l__zrefclever_ref_language_tl }
}
@@ -1023,7 +1106,7 @@
{
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_main_language_tl }
- \__zrefclever_provide_dictionary_verbose:x
+ \__zrefclever_provide_langfile_verbose:x
{ \l__zrefclever_ref_language_tl }
}
}
@@ -1036,7 +1119,7 @@
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_current_language_tl }
}
- \__zrefclever_provide_dictionary_verbose:x
+ \__zrefclever_provide_langfile_verbose:x
{ \l__zrefclever_ref_language_tl }
}
}
@@ -1047,7 +1130,7 @@
{
\AddToHook { begindocument }
{
- \__zrefclever_provide_dictionary:x { \l__zrefclever_ref_language_tl }
+ \__zrefclever_provide_langfile:x { \l__zrefclever_ref_language_tl }
\keys_define:nn { zref-clever / reference }
{
lang .code:n =
@@ -1058,7 +1141,7 @@
{
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_current_language_tl }
- \__zrefclever_provide_dictionary:x
+ \__zrefclever_provide_langfile:x
{ \l__zrefclever_ref_language_tl }
}
@@ -1066,7 +1149,7 @@
{
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_main_language_tl }
- \__zrefclever_provide_dictionary:x
+ \__zrefclever_provide_langfile:x
{ \l__zrefclever_ref_language_tl }
}
}
@@ -1079,7 +1162,7 @@
\tl_set:Nn \l__zrefclever_ref_language_tl
{ \l__zrefclever_current_language_tl }
}
- \__zrefclever_provide_dictionary:x
+ \__zrefclever_provide_langfile:x
{ \l__zrefclever_ref_language_tl }
}
} ,
@@ -1377,6 +1460,21 @@
} ,
}
}
+\keys_define:nn { zref-clever / reference }
+ {
+ refpre .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpre } { preref }
+ } ,
+ refpos .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpos } { postref }
+ } ,
+ }
\keys_define:nn { }
{
zref-clever / zcsetup .inherit:n =
@@ -1398,6 +1496,74 @@
\tl_set:Nn \l__zrefclever_setup_type_tl {#1}
\keys_set:nn { zref-clever / typesetup } {#2}
}
+\keys_define:nn { zref-clever / typesetup }
+ {
+ cap .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \prop_remove:cn
+ {
+ l__zrefclever_type_
+ \l__zrefclever_setup_type_tl _options_prop
+ }
+ { cap }
+ }
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:nn {#1} { true } }
+ { \str_if_eq_p:nn {#1} { false } }
+ {
+ \prop_put:cnn
+ {
+ l__zrefclever_type_
+ \l__zrefclever_setup_type_tl _options_prop
+ }
+ { cap } {#1}
+ }
+ {
+ \msg_warning:nnn { zref-clever }
+ { key-boolean-or-empty } {#1}
+ }
+ }
+ } ,
+ cap .default:n = true ,
+ nocap .meta:n = { cap = false } ,
+ nocap .value_forbidden:n = true ,
+
+ abbrev .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \prop_remove:cn
+ {
+ l__zrefclever_type_
+ \l__zrefclever_setup_type_tl _options_prop
+ }
+ { abbrev }
+ }
+ {
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:nn {#1} { true } }
+ { \str_if_eq_p:nn {#1} { false } }
+ {
+ \prop_put:cnn
+ {
+ l__zrefclever_type_
+ \l__zrefclever_setup_type_tl _options_prop
+ }
+ { abbrev } {#1}
+ }
+ {
+ \msg_warning:nnn { zref-clever }
+ { key-boolean-or-empty } {#1}
+ }
+ }
+ } ,
+ abbrev .default:n = true ,
+ noabbrev .meta:n = { abbrev = false },
+ noabbrev .value_forbidden:n = true ,
+ }
\seq_map_inline:Nn
\c__zrefclever_ref_options_necessarily_not_type_specific_seq
{
@@ -1438,36 +1604,51 @@
} ,
}
}
+\keys_define:nn { zref-clever / typesetup }
+ {
+ refpre .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpre } { preref }
+ } ,
+ refpos .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpos } { postref }
+ } ,
+ }
\NewDocumentCommand \zcLanguageSetup { m m }
{
\group_begin:
\prop_get:NnNTF \g__zrefclever_languages_prop {#1}
- \l__zrefclever_dict_language_tl
+ \l__zrefclever_base_language_tl
{
\tl_clear:N \l__zrefclever_setup_type_tl
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_declension_seq
+ \l__zrefclever_lang_declension_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l__zrefclever_dict_declension_seq
- { \tl_clear:N \l__zrefclever_dict_decl_case_tl }
+ \seq_if_empty:NTF \l__zrefclever_lang_declension_seq
+ { \tl_clear:N \l__zrefclever_lang_decl_case_tl }
{
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
- \l__zrefclever_dict_decl_case_tl
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
+ \l__zrefclever_lang_decl_case_tl
}
\exp_args:NNx \seq_set_from_clist:Nn
- \l__zrefclever_dict_gender_seq
+ \l__zrefclever_lang_gender_seq
{
\prop_item:cn
{
- g__zrefclever_dict_
- \l__zrefclever_dict_language_tl _prop
+ g__zrefclever_lang_
+ \l__zrefclever_base_language_tl _prop
}
{ gender }
}
@@ -1477,18 +1658,19 @@
\group_end:
}
\@onlypreamble \zcLanguageSetup
-\cs_new_protected:Npn \__zrefclever_declare_type_transl:nnnn #1#2#3#4
+\cs_new_protected:Npn \__zrefclever_declare_lang_opt_type:nnnn #1#2#3#4
{
- \prop_gput:cnn { g__zrefclever_dict_ #1 _prop }
+ \prop_gput:cnn { g__zrefclever_lang_ #1 _prop }
{ type- #2 - #3 } {#4}
}
-\cs_generate_variant:Nn \__zrefclever_declare_type_transl:nnnn { VVnn , VVxn }
-\cs_new_protected:Npn \__zrefclever_declare_default_transl:nnn #1#2#3
+\cs_generate_variant:Nn
+ \__zrefclever_declare_lang_opt_type:nnnn { VVnn , VVxn , VVnx , VVnV }
+\cs_new_protected:Npn \__zrefclever_declare_lang_opt_default:nnn #1#2#3
{
- \prop_gput:cnn { g__zrefclever_dict_ #1 _prop }
+ \prop_gput:cnn { g__zrefclever_lang_ #1 _prop }
{ default- #2 } {#3}
}
-\cs_generate_variant:Nn \__zrefclever_declare_default_transl:nnn { Vnn }
+\cs_generate_variant:Nn \__zrefclever_declare_lang_opt_default:nnn { Vnn , VnV }
\keys_define:nn { zref-clever / langsetup }
{
type .code:n =
@@ -1497,31 +1679,33 @@
{ \tl_clear:N \l__zrefclever_setup_type_tl }
{ \tl_set:Nn \l__zrefclever_setup_type_tl {#1} }
} ,
+
case .code:n =
{
- \seq_if_empty:NTF \l__zrefclever_dict_declension_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_declension_seq
{
\msg_warning:nnxx { zref-clever } { language-no-decl-setup }
- { \l__zrefclever_dict_language_tl } {#1}
+ { \l__zrefclever_base_language_tl } {#1}
}
{
- \seq_if_in:NnTF \l__zrefclever_dict_declension_seq {#1}
- { \tl_set:Nn \l__zrefclever_dict_decl_case_tl {#1} }
+ \seq_if_in:NnTF \l__zrefclever_lang_declension_seq {#1}
+ { \tl_set:Nn \l__zrefclever_lang_decl_case_tl {#1} }
{
\msg_warning:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l__zrefclever_dict_language_tl }
- \seq_get_left:NN \l__zrefclever_dict_declension_seq
- \l__zrefclever_dict_decl_case_tl
+ {#1} { \l__zrefclever_base_language_tl }
+ \seq_get_left:NN \l__zrefclever_lang_declension_seq
+ \l__zrefclever_lang_decl_case_tl
}
}
} ,
case .value_required:n = true ,
+
gender .code:n =
{
- \seq_if_empty:NTF \l__zrefclever_dict_gender_seq
+ \seq_if_empty:NTF \l__zrefclever_lang_gender_seq
{
\msg_warning:nnxxx { zref-clever } { language-no-gender }
- { \l__zrefclever_dict_language_tl } { gender } {#1}
+ { \l__zrefclever_base_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
@@ -1530,21 +1714,68 @@
{ option-only-type-specific } { gender }
}
{
- \seq_if_in:NnTF \l__zrefclever_dict_gender_seq {#1}
+ \clist_clear:N \l_tmpa_clist
+ \clist_map_inline:nn {#1}
{
- \__zrefclever_declare_type_transl:VVnn
- \l__zrefclever_dict_language_tl
- \l__zrefclever_setup_type_tl
- { gender } {#1}
+ \seq_if_in:NnTF \l__zrefclever_lang_gender_seq {##1}
+ { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l__zrefclever_base_language_tl } {##1}
+ }
}
+ \clist_if_empty:NF \l_tmpa_clist
{
- \msg_warning:nnxx { zref-clever } { gender-not-declared }
- { \l__zrefclever_dict_language_tl } {#1}
+ \__zrefclever_declare_lang_opt_type:VVnx
+ \l__zrefclever_base_language_tl
+ \l__zrefclever_setup_type_tl
+ { gender } { \clist_use:Nn \l_tmpa_clist { , } }
}
}
}
} ,
gender .value_required:n = true ,
+
+ cap .choices:nn =
+ { true , false }
+ {
+ \tl_if_empty:NTF \l__zrefclever_setup_type_tl
+ {
+ \__zrefclever_declare_lang_opt_default:VnV
+ \l__zrefclever_base_language_tl
+ { cap } \l_keys_choice_tl
+ }
+ {
+ \__zrefclever_declare_lang_opt_type:VVnV
+ \l__zrefclever_base_language_tl
+ \l__zrefclever_setup_type_tl
+ { cap } \l_keys_choice_tl
+ }
+ } ,
+ cap .default:n = true ,
+ nocap .meta:n = { cap = false } ,
+ nocap .value_forbidden:n = true ,
+
+ abbrev .choices:nn =
+ { true , false }
+ {
+ \tl_if_empty:NTF \l__zrefclever_setup_type_tl
+ {
+ \__zrefclever_declare_lang_opt_default:VnV
+ \l__zrefclever_base_language_tl
+ { abbrev } \l_keys_choice_tl
+ }
+ {
+ \__zrefclever_declare_lang_opt_type:VVnV
+ \l__zrefclever_base_language_tl
+ \l__zrefclever_setup_type_tl
+ { abbrev } \l_keys_choice_tl
+ }
+ } ,
+ abbrev .default:n = true ,
+ noabbrev .meta:n = { abbrev = false },
+ noabbrev .value_forbidden:n = true ,
}
\seq_map_inline:Nn
\c__zrefclever_ref_options_necessarily_not_type_specific_seq
@@ -1556,8 +1787,8 @@
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
{
- \__zrefclever_declare_default_transl:Vnn
- \l__zrefclever_dict_language_tl
+ \__zrefclever_declare_lang_opt_default:Vnn
+ \l__zrefclever_base_language_tl
{#1} {##1}
}
{
@@ -1577,19 +1808,34 @@
{
\tl_if_empty:NTF \l__zrefclever_setup_type_tl
{
- \__zrefclever_declare_default_transl:Vnn
- \l__zrefclever_dict_language_tl
+ \__zrefclever_declare_lang_opt_default:Vnn
+ \l__zrefclever_base_language_tl
{#1} {##1}
}
{
- \__zrefclever_declare_type_transl:VVnn
- \l__zrefclever_dict_language_tl
+ \__zrefclever_declare_lang_opt_type:VVnn
+ \l__zrefclever_base_language_tl
\l__zrefclever_setup_type_tl
{#1} {##1}
}
} ,
}
}
+\keys_define:nn { zref-clever / langsetup }
+ {
+ refpre .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpre } { preref }
+ } ,
+ refpos .code:n =
+ {
+ % NOTE Option deprecated in 2022-01-10 for v0.1.2-alpha.
+ \msg_warning:nnnn { zref-clever }{ option-deprecated }
+ { refpos } { postref }
+ } ,
+ }
\seq_map_inline:Nn
\c__zrefclever_ref_options_type_names_seq
{
@@ -1604,18 +1850,18 @@
{ option-only-type-specific } {#1}
}
{
- \tl_if_empty:NTF \l__zrefclever_dict_decl_case_tl
+ \tl_if_empty:NTF \l__zrefclever_lang_decl_case_tl
{
- \__zrefclever_declare_type_transl:VVnn
- \l__zrefclever_dict_language_tl
+ \__zrefclever_declare_lang_opt_type:VVnn
+ \l__zrefclever_base_language_tl
\l__zrefclever_setup_type_tl
{#1} {##1}
}
{
- \__zrefclever_declare_type_transl:VVxn
- \l__zrefclever_dict_language_tl
+ \__zrefclever_declare_lang_opt_type:VVxn
+ \l__zrefclever_base_language_tl
\l__zrefclever_setup_type_tl
- { \l__zrefclever_dict_decl_case_tl - #1 } {##1}
+ { \l__zrefclever_lang_decl_case_tl - #1 } {##1}
}
}
} ,
@@ -1629,7 +1875,7 @@
\keys_set:nn { zref-clever / reference } {#3}
\seq_set_from_clist:Nn \l__zrefclever_zcref_labels_seq {#1}
\bool_set:Nn \l__zrefclever_link_star_bool {#2}
- \__zrefclever_provide_dictionary:x { \l__zrefclever_ref_language_tl }
+ \__zrefclever_provide_langfile:x { \l__zrefclever_ref_language_tl }
\__zrefclever_process_language_options:
\bool_lazy_and:nnT
{ \l__zrefclever_zrefcheck_available_bool }
@@ -1645,7 +1891,7 @@
\group_end:
\tl_if_empty:NF \l__zrefclever_zcref_note_tl
{
- \__zrefclever_get_ref_string:nN { notesep } \l_tmpa_tl
+ \__zrefclever_get_ref_opt_typeset:nN { notesep } \l_tmpa_tl
\l_tmpa_tl
\l__zrefclever_zcref_note_tl
}
@@ -1726,7 +1972,7 @@
}
\cs_new_protected:Npn \__zrefclever_label_type_put_new_right:n #1
{
- \__zrefclever_def_extract:Nnnn
+ \__zrefclever_extract_default:Nnnn
\l__zrefclever_label_type_a_tl {#1} { zc@type } { \c_empty_tl }
\seq_if_in:NVF \l__zrefclever_label_types_seq
\l__zrefclever_label_type_a_tl
@@ -1737,9 +1983,9 @@
}
\cs_new_protected:Npn \__zrefclever_sort_default:nn #1#2
{
- \__zrefclever_def_extract:Nnnn
+ \__zrefclever_extract_default:Nnnn
\l__zrefclever_label_type_a_tl {#1} { zc@type } { zc@missingtype }
- \__zrefclever_def_extract:Nnnn
+ \__zrefclever_extract_default:Nnnn
\l__zrefclever_label_type_b_tl {#2} { zc@type } { zc@missingtype }
\tl_if_eq:NNTF
@@ -1750,15 +1996,15 @@
}
\cs_new_protected:Npn \__zrefclever_sort_default_same_type:nn #1#2
{
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_enclval_a_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_enclval_a_tl
{#1} { zc@enclval } { \c_empty_tl }
\tl_reverse:N \l__zrefclever_label_enclval_a_tl
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_enclval_b_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_enclval_b_tl
{#2} { zc@enclval } { \c_empty_tl }
\tl_reverse:N \l__zrefclever_label_enclval_b_tl
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_extdoc_a_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_extdoc_a_tl
{#1} { externaldocument } { \c_empty_tl }
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_extdoc_b_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_extdoc_b_tl
{#2} { externaldocument } { \c_empty_tl }
\bool_set_false:N \l__zrefclever_sort_decided_bool
@@ -1968,10 +2214,12 @@
\tl_new:N \l__zrefclever_listsep_tl
\tl_new:N \l__zrefclever_lastsep_tl
\tl_new:N \l__zrefclever_rangesep_tl
-\tl_new:N \l__zrefclever_refpre_tl
-\tl_new:N \l__zrefclever_refpos_tl
+\tl_new:N \l__zrefclever_preref_tl
+\tl_new:N \l__zrefclever_postref_tl
\tl_new:N \l__zrefclever_namefont_tl
\tl_new:N \l__zrefclever_reffont_tl
+\bool_new:N \l__zrefclever_capitalize_bool
+\bool_new:N \l__zrefclever_abbrev_bool
\bool_new:N \l__zrefclever_verbose_testing_bool
\cs_new_protected:Npn \__zrefclever_typeset_refs:
{
@@ -1988,11 +2236,11 @@
\int_zero:N \l__zrefclever_range_same_count_int
% Get type block options (not type-specific).
- \__zrefclever_get_ref_string:nN { tpairsep }
+ \__zrefclever_get_ref_opt_typeset:nN { tpairsep }
\l__zrefclever_tpairsep_tl
- \__zrefclever_get_ref_string:nN { tlistsep }
+ \__zrefclever_get_ref_opt_typeset:nN { tlistsep }
\l__zrefclever_tlistsep_tl
- \__zrefclever_get_ref_string:nN { tlastsep }
+ \__zrefclever_get_ref_opt_typeset:nN { tlastsep }
\l__zrefclever_tlastsep_tl
% Process label stack.
@@ -2017,9 +2265,11 @@
\tl_set:Nn \l__zrefclever_label_type_b_tl { page }
}
{
- \__zrefclever_def_extract:NVnn \l__zrefclever_label_type_a_tl
+ \__zrefclever_extract_default:NVnn
+ \l__zrefclever_label_type_a_tl
\l__zrefclever_label_a_tl { zc@type } { zc@missingtype }
- \__zrefclever_def_extract:NVnn \l__zrefclever_label_type_b_tl
+ \__zrefclever_extract_default:NVnn
+ \l__zrefclever_label_type_b_tl
\l__zrefclever_label_b_tl { zc@type } { zc@missingtype }
}
@@ -2073,28 +2323,32 @@
}
}
- % Get type-specific separators, refpre/pos and font options, once per
- % type.
+ % Get type-specific separators, pre-/postref font and other options,
+ % once per type.
\int_compare:nNnT { \l__zrefclever_label_count_int } = { 0 }
{
- \__zrefclever_get_ref_string:nN { namesep }
+ \__zrefclever_get_ref_opt_typeset:nN { namesep }
\l__zrefclever_namesep_tl
- \__zrefclever_get_ref_string:nN { pairsep }
+ \__zrefclever_get_ref_opt_typeset:nN { pairsep }
\l__zrefclever_pairsep_tl
- \__zrefclever_get_ref_string:nN { listsep }
+ \__zrefclever_get_ref_opt_typeset:nN { listsep }
\l__zrefclever_listsep_tl
- \__zrefclever_get_ref_string:nN { lastsep }
+ \__zrefclever_get_ref_opt_typeset:nN { lastsep }
\l__zrefclever_lastsep_tl
- \__zrefclever_get_ref_string:nN { rangesep }
+ \__zrefclever_get_ref_opt_typeset:nN { rangesep }
\l__zrefclever_rangesep_tl
- \__zrefclever_get_ref_string:nN { refpre }
- \l__zrefclever_refpre_tl
- \__zrefclever_get_ref_string:nN { refpos }
- \l__zrefclever_refpos_tl
- \__zrefclever_get_ref_font:nN { namefont }
+ \__zrefclever_get_ref_opt_typeset:nN { preref }
+ \l__zrefclever_preref_tl
+ \__zrefclever_get_ref_opt_typeset:nN { postref }
+ \l__zrefclever_postref_tl
+ \__zrefclever_get_ref_opt_font:nN { namefont }
\l__zrefclever_namefont_tl
- \__zrefclever_get_ref_font:nN { reffont }
+ \__zrefclever_get_ref_opt_font:nN { reffont }
\l__zrefclever_reffont_tl
+ \__zrefclever_get_ref_opt_bool:nnN { cap } { false }
+ \l__zrefclever_capitalize_bool
+ \__zrefclever_get_ref_opt_bool:nnN { abbrev } { false }
+ \l__zrefclever_abbrev_bool
}
% Here we send this to a couple of auxiliary functions.
@@ -2565,33 +2819,33 @@
}
{
\bool_if:NF \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpre_tl }
+ { \exp_not:V \l__zrefclever_preref_tl }
% It's two `@s', but escaped for DocStrip.
\exp_not:N \hyper@@link
{ \__zrefclever_extract_url_unexp:n {#1} }
{ \__zrefclever_extract_unexp:nnn {#1} { anchor } { } }
{
\bool_if:NT \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpre_tl }
+ { \exp_not:V \l__zrefclever_preref_tl }
\exp_not:N \group_begin:
\exp_not:V \l__zrefclever_reffont_tl
\__zrefclever_extract_unexp:nvn {#1}
{ l__zrefclever_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
\bool_if:NF \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
{
- \exp_not:V \l__zrefclever_refpre_tl
+ \exp_not:V \l__zrefclever_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l__zrefclever_reffont_tl
\__zrefclever_extract_unexp:nvn {#1}
{ l__zrefclever_ref_property_tl } { }
\exp_not:N \group_end:
- \exp_not:V \l__zrefclever_refpos_tl
+ \exp_not:V \l__zrefclever_postref_tl
}
}
{ \__zrefclever_ref_default: }
@@ -2624,7 +2878,7 @@
\exp_not:V \l__zrefclever_type_name_tl
\exp_not:N \group_end:
\exp_not:V \l__zrefclever_namesep_tl
- \exp_not:V \l__zrefclever_refpre_tl
+ \exp_not:V \l__zrefclever_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l__zrefclever_reffont_tl
\__zrefclever_extract_unexp:Vvn
@@ -2632,10 +2886,10 @@
{ l__zrefclever_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
\bool_if:NF \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
{
\exp_not:N \group_begin:
@@ -2670,7 +2924,7 @@
}
{
\bool_if:NF \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpre_tl }
+ { \exp_not:V \l__zrefclever_preref_tl }
% It's two '@s', but escaped for DocStrip.
\exp_not:N \hyper@@link
{
@@ -2683,7 +2937,7 @@
}
{
\bool_if:NT \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpre_tl }
+ { \exp_not:V \l__zrefclever_preref_tl }
\exp_not:N \group_begin:
\exp_not:V \l__zrefclever_reffont_tl
\__zrefclever_extract_unexp:Vvn
@@ -2691,20 +2945,20 @@
{ l__zrefclever_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
\bool_if:NF \l__zrefclever_preposinlink_bool
- { \exp_not:V \l__zrefclever_refpos_tl }
+ { \exp_not:V \l__zrefclever_postref_tl }
}
{
- \exp_not:V \l__zrefclever_refpre_tl
+ \exp_not:V \l__zrefclever_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l__zrefclever_reffont_tl
\__zrefclever_extract_unexp:Vvn
\l__zrefclever_type_first_label_tl
{ l__zrefclever_ref_property_tl } { }
\exp_not:N \group_end:
- \exp_not:V \l__zrefclever_refpos_tl
+ \exp_not:V \l__zrefclever_postref_tl
}
}
{ \__zrefclever_ref_default: }
@@ -2780,15 +3034,17 @@
{ \l__zrefclever_nudge_gender_bool }
{ ! \tl_if_empty_p:N \l__zrefclever_ref_gender_tl }
{
- \__zrefclever_get_type_transl:xxnNF
+ \__zrefclever_get_lang_opt_type:xxnNF
{ \l__zrefclever_ref_language_tl }
{ \l__zrefclever_type_first_label_type_tl }
{ gender }
\l__zrefclever_type_name_gender_tl
{ \tl_clear:N \l__zrefclever_type_name_gender_tl }
- \tl_if_eq:NNF
- \l__zrefclever_ref_gender_tl
+ \clist_set:NV \l_tmpa_clist
\l__zrefclever_type_name_gender_tl
+ \clist_if_in:NVF
+ \l_tmpa_clist
+ \l__zrefclever_ref_gender_tl
{
\tl_if_empty:NTF \l__zrefclever_type_name_gender_tl
{
@@ -2826,7 +3082,7 @@
\tl_put_left:NV \l__zrefclever_name_format_tl
\l__zrefclever_ref_decl_case_tl
}
- \__zrefclever_get_type_transl:xxxNF
+ \__zrefclever_get_lang_opt_type:xxxNF
{ \l__zrefclever_ref_language_tl }
{ \l__zrefclever_type_first_label_type_tl }
{ \l__zrefclever_name_format_tl }
@@ -2868,13 +3124,13 @@
\l__zrefclever_name_format_fallback_tl
\l__zrefclever_ref_decl_case_tl
}
- \__zrefclever_get_type_transl:xxxNF
+ \__zrefclever_get_lang_opt_type:xxxNF
{ \l__zrefclever_ref_language_tl }
{ \l__zrefclever_type_first_label_type_tl }
{ \l__zrefclever_name_format_tl }
\l__zrefclever_type_name_tl
{
- \__zrefclever_get_type_transl:xxxNF
+ \__zrefclever_get_lang_opt_type:xxxNF
{ \l__zrefclever_ref_language_tl }
{ \l__zrefclever_type_first_label_type_tl }
{ \l__zrefclever_name_format_fallback_tl }
@@ -2934,9 +3190,9 @@
\cs_generate_variant:Nn \__zrefclever_extract_url_unexp:n { V }
\cs_new_protected:Npn \__zrefclever_labels_in_sequence:nn #1#2
{
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_extdoc_a_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_extdoc_a_tl
{#1} { externaldocument } { \c_empty_tl }
- \__zrefclever_def_extract:Nnnn \l__zrefclever_label_extdoc_b_tl
+ \__zrefclever_extract_default:Nnnn \l__zrefclever_label_extdoc_b_tl
{#2} { externaldocument } { \c_empty_tl }
\tl_if_eq:NNT
@@ -3008,7 +3264,7 @@
}
}
}
-\cs_new_protected:Npn \__zrefclever_get_ref_string:nN #1#2
+\cs_new_protected:Npn \__zrefclever_get_ref_opt_typeset:nN #1#2
{
% First attempt: general options.
\prop_get:NnNF \l__zrefclever_ref_options_prop {#1} #2
@@ -3039,19 +3295,19 @@
{#1} #2
}
{
- % If not found, try type specific translations.
- \__zrefclever_get_type_transl:xxnNF
+ % If not found, try type- and language-specific.
+ \__zrefclever_get_lang_opt_type:xxnNF
{ \l__zrefclever_ref_language_tl }
{ \l__zrefclever_label_type_a_tl }
{#1} #2
{
- % If not found, try default translations.
- \__zrefclever_get_default_transl:xnNF
+ % If not found, try language-specific default.
+ \__zrefclever_get_lang_opt_default:xnNF
{ \l__zrefclever_ref_language_tl }
{#1} #2
{
% If not found, try fallback.
- \__zrefclever_get_fallback_transl:nNF {#1} #2
+ \__zrefclever_get_fallback_unknown_lang_opt:nNF {#1} #2
{
\tl_clear:N #2
\msg_warning:nnn { zref-clever }
@@ -3062,7 +3318,7 @@
}
}
}
-\cs_new_protected:Npn \__zrefclever_get_ref_font:nN #1#2
+\cs_new_protected:Npn \__zrefclever_get_ref_opt_font:nN #1#2
{
% First attempt: general options.
\prop_get:NnNF \l__zrefclever_ref_options_prop {#1} #2
@@ -3088,6 +3344,65 @@
{ \tl_clear:N #2 }
}
}
+\cs_new_protected:Npn \__zrefclever_get_ref_opt_bool:nnN #1#2#3
+ {
+ % First attempt: general options.
+ \prop_get:NnNF \l__zrefclever_ref_options_prop {#1} \l_tmpa_tl
+ {
+ % If not found, try type specific options.
+ \bool_lazy_and:nnTF
+ {
+ \prop_if_exist_p:c
+ {
+ l__zrefclever_type_
+ \l__zrefclever_label_type_a_tl _options_prop
+ }
+ }
+ {
+ \prop_if_in_p:cn
+ {
+ l__zrefclever_type_
+ \l__zrefclever_label_type_a_tl _options_prop
+ }
+ {#1}
+ }
+ {
+ \prop_get:cnN
+ {
+ l__zrefclever_type_
+ \l__zrefclever_label_type_a_tl _options_prop
+ }
+ {#1} \l_tmpa_tl
+ }
+ {
+ % If not found, try type- and language-specific.
+ \__zrefclever_get_lang_opt_type:xxnNF
+ { \l__zrefclever_ref_language_tl }
+ { \l__zrefclever_label_type_a_tl }
+ {#1} \l_tmpa_tl
+ {
+ % If not found, try language-specific default.
+ \__zrefclever_get_lang_opt_default:xnNF
+ { \l__zrefclever_ref_language_tl }
+ {#1} \l_tmpa_tl
+ {
+ % If not found, use default argument.
+ \bool_lazy_or:nnTF
+ { \str_if_eq_p:nn {#2} { true } }
+ { \str_if_eq_p:nn {#2} { false } }
+ { \tl_set:Nn \l_tmpa_tl {#2} }
+ {
+ % And, if even that fails, presume false.
+ \tl_set:Nn \l_tmpa_tl { false }
+ }
+ }
+ }
+ }
+ }
+ % Having retrieved the option value, set the boolean. At this point, we
+ % *know* '\l_tmpa_tl' is either 'true' or 'false'.
+ \use:c { bool_set_ \l_tmpa_tl :N } #3
+ }
\__zrefclever_compat_module:nn { appendix }
{
\AddToHook { cmd / appendix / before }
@@ -3325,8 +3640,8 @@
\zcRefTypeSetup { equation }
{
reffont = \upshape ,
- refpre = {\textup{(}} ,
- refpos = {\textup{)}} ,
+ preref = {\textup{(}} ,
+ postref = {\textup{)}} ,
}
\msg_info:nnn { zref-clever } { compat-package } { amsmath }
}
@@ -3514,6 +3829,7 @@
\zcDeclareLanguageAlias { brazil } { portuguese }
\zcDeclareLanguageAlias { portuges } { portuguese }
\zcDeclareLanguage [ gender = { f , m } ] { spanish }
+\zcDeclareLanguage [ gender = { f , m , n } ] { dutch }
%%
%%
%% End of file `zref-clever.sty'.