texlive[61572] Master/texmf-dist: zref-clever (11jan22)
commits+karl at tug.org
commits+karl at tug.org
Tue Jan 11 23:01:02 CET 2022
Revision: 61572
http://tug.org/svn/texlive?view=revision&revision=61572
Author: karl
Date: 2022-01-11 23:01:01 +0100 (Tue, 11 Jan 2022)
Log Message:
-----------
zref-clever (11jan22)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex/zref-clever/CHANGELOG.md
trunk/Master/texmf-dist/doc/latex/zref-clever/MANIFEST.md
trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.pdf
trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.tex
trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.pdf
trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.tex
trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.dtx
trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.ins
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang
Removed Paths:
-------------
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict
trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-clever/CHANGELOG.md 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/doc/latex/zref-clever/CHANGELOG.md 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,15 +1,39 @@
# Changelog
-## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.1.1-alpha...HEAD)
+## [Unreleased](https://github.com/gusbrs/zref-clever/compare/v0.1.2-alpha...HEAD)
+## [v0.1.2-alpha](https://github.com/gusbrs/zref-clever/compare/v0.1.1-alpha...v0.1.2-alpha) (2022-01-10)
+
+### Added
+- Provided Dutch language file (see PR
+ [#5](https://github.com/gusbrs/zref-clever/pull/5)).
+
+### Changed
+- The `gender` key in `\zcLanguageSetup` and in the built-in language files
+ can receive a comma separated list as value to support types with multiple
+ valid genders.
+- The `cap` and `abbrev` options can now be set also in `\zcRefTypeSetup` and
+ `\zcLanguageSetup`, so that fine grained control per-type and per-language
+ is now possible for these options.
+- Abandoned the "dictionary/translation" metaphor to refer to language
+ specific options. Mostly housekeeping, affecting the name-scheme of
+ functions and variables, but aiming at a clearer documentation in this area,
+ specially in the longer term.
+
+### Deprecated
+- The reference format options `refpre` and `refpos` have been deprecated in
+ favor or the more aptly named `preref` and `postref`, respectively.
+
## [v0.1.1-alpha](https://github.com/gusbrs/zref-clever/compare/v0.1.0-alpha...v0.1.1-alpha) (2021-12-07)
### Changed
- Improvements to the French dictionary (see issue
[#1](https://github.com/gusbrs/zref-clever/issues/1)).
-- Dropped the `subappendix` reference type.
- Improvements to documentation.
+### Removed
+- Dropped the `subappendix` reference type.
+
## [v0.1.0-alpha](https://github.com/gusbrs/zref-clever/releases/tag/v0.1.0-alpha) (2021-00-24)
### Added
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/MANIFEST.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-clever/MANIFEST.md 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/doc/latex/zref-clever/MANIFEST.md 2022-01-11 22:01:01 UTC (rev 61572)
@@ -42,11 +42,12 @@
`.sty` and `.cls` files created from DocStrip `.dtx` files.
* zref-clever.sty †
-* zref-clever-english.dict †
-* zref-clever-french.dict †
-* zref-clever-german.dict †
-* zref-clever-portuguese.dict †
-* zref-clever-spanish.dict †
+* zref-clever-dutch.lang †
+* zref-clever-english.lang †
+* zref-clever-french.lang †
+* zref-clever-german.lang †
+* zref-clever-portuguese.lang †
+* zref-clever-spanish.lang †
### Typeset documents
@@ -82,8 +83,6 @@
* zc-compat-memoir01.lvt
* zc-compat-subcaption01.lvt
* zc-compat-subfig01.lvt
-* zc-dictionaries01.lvt
-* zc-dictionaries02.lvt
* zc-howto-amsmath01.lvt
* zc-howto-enumitem01.lvt
* zc-howto-listings01.lvt
@@ -98,6 +97,8 @@
* zc-howto-newtheorem04.lvt
* zc-howto-zref-xr01.lvt
* zc-label-options01.lvt
+* zc-langfiles01.lvt
+* zc-langfiles02.lvt
* zc-languages01.lvt
* zc-opt-check01.lvt
* zc-opt-d01.lvt
@@ -219,12 +220,6 @@
* zc-compat-subfig01.tlg
* zc-compat-subfig01.xetex.tlg
* zc-compat-subfig01.xetexdev.tlg
-* zc-dictionaries01.tlg
-* zc-dictionaries02.luatex.tlg
-* zc-dictionaries02.luatexdev.tlg
-* zc-dictionaries02.tlg
-* zc-dictionaries02.xetex.tlg
-* zc-dictionaries02.xetexdev.tlg
* zc-howto-amsmath01.luatex.tlg
* zc-howto-amsmath01.luatexdev.tlg
* zc-howto-amsmath01.tlg
@@ -293,6 +288,12 @@
* zc-label-options01.luatex.tlg
* zc-label-options01.luatexdev.tlg
* zc-label-options01.tlg
+* zc-langfiles01.tlg
+* zc-langfiles02.luatex.tlg
+* zc-langfiles02.luatexdev.tlg
+* zc-langfiles02.tlg
+* zc-langfiles02.xetex.tlg
+* zc-langfiles02.xetexdev.tlg
* zc-languages01.tlg
* zc-opt-check01.luatex.tlg
* zc-opt-check01.luatexdev.tlg
@@ -419,11 +420,12 @@
All files included in the `zref-clever/tex` directory.
-* zref-clever-english.dict
-* zref-clever-french.dict
-* zref-clever-german.dict
-* zref-clever-portuguese.dict
-* zref-clever-spanish.dict
+* zref-clever-dutch.lang
+* zref-clever-english.lang
+* zref-clever-french.lang
+* zref-clever-german.lang
+* zref-clever-portuguese.lang
+* zref-clever-spanish.lang
* zref-clever.sty
### Doc files (TDS)
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.tex 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever-code.tex 2022-01-11 22:01:01 UTC (rev 61572)
@@ -4,7 +4,7 @@
%
% This file is part 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
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.tex 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/doc/latex/zref-clever/zref-clever.tex 2022-01-11 22:01:01 UTC (rev 61572)
@@ -4,7 +4,7 @@
%
% This file is part 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
@@ -56,8 +56,6 @@
\usepackage{listings}
\usepackage{microtype}
-% TEMP work-around for https://github.com/schlcht/microtype/issues/4
-\microtypesetup{nopatch=item}
\hypersetup{hidelinks}
@@ -523,9 +521,10 @@
\DescribeOption{nocap} %
\DescribeOption{capfirst} %
The \opt{cap} option controls whether the reference type names should be
-capitalized or not. It is a boolean option, and the package's default is
-\texttt{cap=false}. The option given without a value is equivalent to
-\texttt{cap=true}. The \opt{nocap} option is a convenience alias for
+capitalized or not. It can receive values \texttt{true} or \texttt{false},
+and it can also be set for specific reference types or languages (see
+\zcref{sec:reference-format}). The option given without a value is equivalent
+to \texttt{cap=true}. The \opt{nocap} option is a convenience alias for
\texttt{cap=false}. The \opt{capfirst} option ensures that the reference type
name of the \emph{first} type block is capitalized, even when \opt{cap} is set
to \texttt{false}.
@@ -534,9 +533,10 @@
\DescribeOption{noabbrev} %
\DescribeOption{noabbrevfirst} %
The \opt{abbrev} option controls whether to use abbreviated reference type
-names when they are available. It is a boolean option, and the package's
-default is \texttt{abbrev=false}. The option given without a value is
-equivalent to \texttt{abbrev=true}. The \opt{noabbrev} option is a
+names when they are available. It can receive values \texttt{true} or
+\texttt{false}, and it can also be set for specific reference types or
+languages (see \zcref{sec:reference-format}). The option given without a
+value is equivalent to \texttt{abbrev=true}. The \opt{noabbrev} option is a
convenience alias for \texttt{abbrev=false}. The \opt{noabbrevfirst} ensures
that the reference type name of the \emph{first} type block is never
abbreviated, even when \opt{abbrev} is set to \texttt{true}.
@@ -592,8 +592,8 @@
equivalent to \texttt{nameinlink=true}.
\DescribeOption{preposinlink} %
-The \opt{preposinlink} option controls whether the \opt{refpre} and
-\opt{refpos} reference format options (see \zcref{sec:reference-format}) are
+The \opt{preposinlink} option controls whether the \opt{preref} and
+\opt{postref} reference format options (see \zcref{sec:reference-format}) are
included in the reference hyperlink or not. It is a boolean option. The
package's default is \texttt{preposinlink=false}, and the option given without
a value is equivalent to \texttt{preposinlink=true}.
@@ -650,15 +650,15 @@
a compression to singular occurs, but to nudge if the contrary occurs, that
is, when a plural type name form is employed. The \texttt{gender} nudge must
be combined with option \opt{g}, and depends on the language having support
-for it. In essence language dictionaries can store the gender of each type
-name (this is done for built-in dictionaries, but can also be done with
+for it. In essence language files can store the gender(s) of each type name
+(this is done for built-in language files, but can also be done with
\cs{zcLanguageSetup} for languages declared to support it). The \opt{g}
option let's you specify the gender you expect for that particular reference
and the nudge is triggered if there is a mismatch between \opt{g} and the
-gender for the type name in the dictionary. Both the \texttt{comptosing} and
-the \texttt{gender} nudges have a type block as its scope. See
-\zcref{sec:internationalization} for more details and intended use cases of
-the ``nudging'' feature.
+gender(s) for the type name in the language file. Both the
+\texttt{comptosing} and the \texttt{gender} nudges have a type block as its
+scope. See \zcref{sec:internationalization} for more details and intended use
+cases of the ``nudging'' feature.
\DescribeOption{font} %
The \opt{font} option can receive font styling commands to change the
@@ -822,7 +822,7 @@
these reference types are available for use out of the box.\footnote{There may
be slight availability differences depending on the language, but
\pkg{zref-clever} strives to keep this complete list available for the
- languages it has built-in dictionaries.} And, in any case, it is always
+ languages it has built-in language files.} And, in any case, it is always
easy to setup custom reference types with \cs{zcRefTypeSetup} or
\cs{zcLanguageSetup} (see \zcref{sec:user-interface, sec:reference-format,
sec:internationalization}).
@@ -883,15 +883,15 @@
of settings given in each of these scopes. There are four scopes in which
reference formatting can be specified by the user, in the following precedence
order: i) as \emph{general options}; ii) as \emph{type-specific options}; iii)
-as \emph{language-specific and type-specific translations}; and iv) as
-\emph{default translations} (that is, language-specific but not
-type-specific). Besides those, there's a fifth \emph{internal} scope, with
-the least priority of all, a ``fallback'', for the cases where it is
-meaningful to provide some value, even for an unknown language. The package
-itself places the default setup for reference formatting at low precedence
-levels, and the users can easily and conveniently override them as desired.
+as \emph{language- and type-specific options}; and iv) as
+\emph{language-specific default options}. Besides those, there's a fifth
+\emph{internal} scope, with the least priority of all, a ``fallback'', for the
+cases where it is meaningful to provide some value, even for an unknown
+language. The package itself places the default setup for reference
+formatting at low precedence levels, and the users can easily and conveniently
+override them as desired.
-``General options'' (i) can be given by the user in the optional argument of
+``General'' options (i) can be given by the user in the optional argument of
\cs{zcref}, but also set through \cs{zcsetup} or even, depending on the case,
as package options at load-time (see \zcref{sec:options}).\footnote{The use of
\cs{zcsetup} for global reference format settings is recommended though.
@@ -898,18 +898,17 @@
Whether you can use load-time options or not depends on the values of the
options: due to how \LaTeX{} handles package options, if the values of the
options you are setting include \emph{commands} you can't set them at
- load-time, and rather \emph{must} use \cs{zcsetup}.} ``Type-specific
-options'' (ii) are handled by \cs{zcRefTypeSetup} (see
-\zcref{sec:user-interface}). ``Language-specific translations'', be they
-``type-specific'' (iii) or ``default'' (iv) have their user interface in
-\cs{zcLanguageSetup}, and have their values populated by the package's
-built-in dictionaries (see \zcref{sec:internationalization}). Not all
-reference format specifications can be given in all of these scopes, though.
-Some of them can't be type-specific, others must be type-specific, so the set
-available in each scope depends on the pertinence of the case.
-\zcref{tab:reference-format} introduces the available reference format
-options, which will be discussed in more detail soon, and lists the scopes in
-which each is available.
+ load-time, and rather \emph{must} use \cs{zcsetup}.} ``Type'' specific
+options (ii) are handled by \cs{zcRefTypeSetup} (see
+\zcref{sec:user-interface}). ``Language'' options, whether ``type'' specific
+(iii) or ``default'' (iv) have their user interface in \cs{zcLanguageSetup},
+and have their values populated by the package's built-in language files (see
+\zcref{sec:internationalization}). Not all reference format specifications
+can be given in all of these scopes, though. Some of them can't be
+type-specific, others must be type-specific, so the set available in each
+scope depends on the pertinence of the case. \zcref{tab:reference-format}
+introduces the available reference format options, which will be discussed in
+more detail soon, and lists the scopes in which each is available.
\begin{table}[htb]
@@ -916,38 +915,43 @@
\centering
\begin{tabular}{l>{\ttfamily}lcccc}
\toprule
- & & General & Type & Type-specific & Default \\
- & & options & options & translations & translations \\
- & & (i) & (ii) & (iii) & (iv) \\
+ & & General & Type & \multicolumn{2}{c}{Language} \\
+ \cmidrule(lr){5-6}
+ & & & & Type & Default \\
+ & & (i) & (ii) & (iii) & (iv) \\
\midrule
- Necessarily not & tpairsep & $\bullet$ & & & $\bullet$ \\
- type-specific & tlistsep & $\bullet$ & & & $\bullet$ \\
- & tlastsep & $\bullet$ & & & $\bullet$ \\
- & notesep & $\bullet$ & & & $\bullet$ \\
+ Typesetting & tpairsep & $\bullet$ & & & $\bullet$ \\
+ (necessarily not & tlistsep & $\bullet$ & & & $\bullet$ \\
+ type-specific) & tlastsep & $\bullet$ & & & $\bullet$ \\
+ & notesep & $\bullet$ & & & $\bullet$ \\
\addlinespace
- Possibly & namesep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- type-specific & pairsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & listsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & lastsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & rangesep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & refpre & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
- & refpos & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ Typesetting & namesep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ (possibly & pairsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ type-specific) & listsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & lastsep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & rangesep & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & preref & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & postref & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
\addlinespace
- Necessarily & Name-sg & & $\bullet$ & $\bullet$ & \\
- type-specific & name-sg & & $\bullet$ & $\bullet$ & \\
- & Name-pl & & $\bullet$ & $\bullet$ & \\
- & name-pl & & $\bullet$ & $\bullet$ & \\
- & Name-sg-ab & & $\bullet$ & $\bullet$ & \\
- & name-sg-ab & & $\bullet$ & $\bullet$ & \\
- & Name-pl-ab & & $\bullet$ & $\bullet$ & \\
- & name-pl-ab & & $\bullet$ & $\bullet$ & \\
+ Typesetting & Name-sg & & $\bullet$ & $\bullet$ & \\
+ (necessarily & name-sg & & $\bullet$ & $\bullet$ & \\
+ type-specific) & Name-pl & & $\bullet$ & $\bullet$ & \\
+ & name-pl & & $\bullet$ & $\bullet$ & \\
+ & Name-sg-ab & & $\bullet$ & $\bullet$ & \\
+ & name-sg-ab & & $\bullet$ & $\bullet$ & \\
+ & Name-pl-ab & & $\bullet$ & $\bullet$ & \\
+ & name-pl-ab & & $\bullet$ & $\bullet$ & \\
\addlinespace
- Font & namefont & $\bullet$ & $\bullet$ & & \\
- options & reffont & $\bullet$ & $\bullet$ & & \\
+ Font & namefont & $\bullet$ & $\bullet$ & & \\
+ & reffont & $\bullet$ & $\bullet$ & & \\
+
+ \addlinespace
+ Other & cap & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
+ & abbrev & $\bullet$ & $\bullet$ & $\bullet$ & $\bullet$ \\
\bottomrule
\end{tabular}
\caption{Reference format options and their scopes}
@@ -963,7 +967,7 @@
\begin{refformat}
\item \reffmt{ref-block} \(\equiv\)
-\item \reffmt{refpre} \reffmt{ref} \reffmt{refpos}
+\item \reffmt{preref} \reffmt{ref} \reffmt{postref}
\end{refformat}
A \texttt{ref-block} is built for \emph{each} label given as argument to
@@ -1037,48 +1041,48 @@
\item \reffmt{type-block-group} \reffmt{notesep} \reffmt{note}
\end{refformat}
-Reference format options can yet be divided in two general categories: i)
-``string'' options, the ones which we have seen thus far, as ``building
-blocks'' of the reference; and ii) ``font'' options, which control font
-attributes of parts of the reference, namely \opt{namefont} and \opt{reffont}.
-These options set the font, respectively, for the \texttt{type-name} and for
-\texttt{ref} (to set the font for the whole reference, see the \opt{font}
-option in \zcref{sec:options}). ``String'' options is not really a strict
-denomination for the first category, but this set of options is intended
-exclusively for typesetting material: things you expect to see in the output
-of your references. The ``font'' options, on the other hand, are intended
-exclusively for commands that only change font attributes: style, family,
-shape, weight, size, color, etc. In either case, anything other than their
-intended uses is not supported.
+Reference format options can yet be divided in three general categories: i)
+``typesetting'' options, the ones which we have seen thus far, as ``building
+blocks'' of the reference; ii) ``font'' options, which control font attributes
+of parts of the reference, namely \opt{namefont} and \opt{reffont}; and iii)
+``other'' options. ``Typesetting'' options are intended exclusively for
+typesetting material: things you expect to see in the output of your
+references. ``Font'' options set the font, respectively, for the
+\texttt{type-name} and for \texttt{ref} (to set the font for the whole
+reference, see the \opt{font} option in \zcref{sec:options}). These options
+are intended exclusively for commands that only change font attributes: style,
+family, shape, weight, size, color, etc. In either case, anything other than
+their intended uses is not supported.
Finally, a comment about the internal ``fallback'' reference format values
mentioned above. These ``last resort'' option values are required by
\pkg{zref-clever} for a clear particular case: if the user loads either
\pkg{babel} or \pkg{polyglossia}, or explicitly sets a language, with a
-language that \pkg{zref-clever} does not know and has no dictionary for, it
+language that \pkg{zref-clever} does not know and has no language file for, it
cannot guess what language that is, and thus has to provide some reasonable
``language agnostic'' default, at least for the options for which this makes
-sense (all the ``string'' options, except for the \texttt{[Nn]ame-} ones).
-Users do not need to have access to this scope, since they know the language
-of their document, or know the values they want for those options, and can set
-them as general options, type-specific options, or language options through
-the user interface provided for the purpose. But the ``fallback'' options are
-documented here so that you can recognize when you are getting these values
-and change them appropriately as desired. Though hopefully reasonable, they
-may not be what you want. The ``fallback'' option values are the following:
+sense (all the ``typesetting'' options, except for the \texttt{[Nn]ame-}
+ones). Users do not need to have access to this scope, since they know the
+language of their document, or know the values they want for those options,
+and can set them as general options, type-specific options, or language
+options through the user interface provided for the purpose. But the
+``fallback'' options are documented here so that you can recognize when you
+are getting these values and change them appropriately as desired. Though
+hopefully reasonable, they may not be what you want. The ``fallback'' option
+values are the following:
\begin{zcexample}[escapeinside=`']
-tpairsep = {,`\textvisiblespace{}'} ,
-tlistsep = {,`\textvisiblespace{}'} ,
-tlastsep = {,`\textvisiblespace{}'} ,
-notesep = {`\textvisiblespace{}'} ,
-namesep = {\nobreakspace} ,
-pairsep = {,`\textvisiblespace{}'} ,
-listsep = {,`\textvisiblespace{}'} ,
-lastsep = {,`\textvisiblespace{}'} ,
-rangesep = {\textendash} ,
-refpre = {} ,
-refpos = {} ,
+tpairsep = {,`\textvisiblespace{}'} ,
+tlistsep = {,`\textvisiblespace{}'} ,
+tlastsep = {,`\textvisiblespace{}'} ,
+notesep = {`\textvisiblespace{}'} ,
+namesep = {\nobreakspace} ,
+pairsep = {,`\textvisiblespace{}'} ,
+listsep = {,`\textvisiblespace{}'} ,
+lastsep = {,`\textvisiblespace{}'} ,
+rangesep = {\textendash} ,
+preref = {} ,
+postref = {} ,
\end{zcexample}
@@ -1090,12 +1094,11 @@
of these language packages, or to a language specified directly by the user.
This is primarily relevant for reference format options, particularly
reference type \emph{names} (though not only, since most reference format
-options can have language-specific values, or ``translations'', see
-\zcref{sec:reference-format}). But other features of the package also cater
-for language specific needs.
+options can have language-specific values see \zcref{sec:reference-format}).
+But other features of the package also cater for language specific needs.
As far as language selection is concerned, if the language is declared and
-\pkg{zref-clever} has a built-in ``dictionary'' for it, most use cases will
+\pkg{zref-clever} has a built-in ``language file'' for it, most use cases will
likely be covered by the \opt{lang} option (see \zcref{sec:options}), and its
values \texttt{current} and \texttt{main}. When the \opt{lang} option is set
to \texttt{current} or \texttt{main}, \pkg{zref-check} will use, respectively,
@@ -1108,17 +1111,17 @@
will note that \zcref{tab:languages-and-aliases} contains only \pkg{babel}
language names.} Users can also set \opt{lang} to a specific language
directly, in which case \pkg{babel} and \pkg{polyglossia} are disregarded.
-\pkg{zref-clever} provides a number of built-in ``dictionaries'', for the
+\pkg{zref-clever} provides a number of built-in ``language file'', for the
languages listed in \zcref{tab:languages-and-aliases}, which also includes the
declared aliases to those languages.
-\pkg{zref-clever}'s ``dictionaries'' are loaded sparingly and lazily. A
-dictionary for a single language -- that specified by user options in the
+\pkg{zref-clever}'s ``language files'' are loaded sparingly and lazily. A
+language file for a single language -- that specified by user options in the
preamble, which by default is the current document language -- is loaded at
-\texttt{begindocument}. If any other dictionary is needed, it is loaded on
+\texttt{begindocument}. If any other language file is needed, it is loaded on
the fly, if and when required. Of course, in either case, conditioned on
availability. In sum, \pkg{zref-clever} loads as little as possible, but
-allows for convenient on the fly loading of dictionaries if the values are
+allows for convenient on the fly loading of language files if the values are
indeed required, without users having to worry about it at all.
\begin{table}
@@ -1155,7 +1158,7 @@
& brazil \\
& portuges \\
spanish & \\
- & \\
+ dutch & \\
\bottomrule
\end{tabular}
\caption{Declared languages and aliases}
@@ -1163,11 +1166,11 @@
\end{table}
-But if the built-in dictionaries do not cover your language, or if you'd like
-to adjust some of the default language-specific options, this can be done with
-\cs{zcDeclareLanguage}, \cs{zcDeclareLanguageAlias}, and
+But if the built-in language files do not cover your language, or if you'd
+like to adjust some of the default language-specific options, this can be done
+with \cs{zcDeclareLanguage}, \cs{zcDeclareLanguageAlias}, and
\cs{zcLanguageSetup}.\footnote{Needless to say, if you'd like to contribute a
- dictionary or improve an existing one, that is much welcome at
+ language file or improve an existing one, that is much welcome at
\url{https://github.com/gusbrs/zref-clever/issues}.}
\begin{function}{\zcDeclareLanguage}
@@ -1190,13 +1193,13 @@
capitalized for grammatical reasons. For a language declared with the
\opt{allcaps} option, the \opt{cap} reference option (see \zcref{sec:options})
is disregarded, and \cs{zcref} always uses the capitalized type name forms.
-This means that dictionaries for languages with such a trait can be halved in
-size, and that user customization for them is simplified, only requiring the
-capitalized name forms. On the other hand, the non-capitalized \texttt{name-}
-reference format options are rendered no-op for the language in question.
-\zcref[S]{tab:language-options} presents an overview of the options in effect
-for the languages declared by \pkg{zref-clever}. \cs{zcDeclareLanguage} is
-preamble only.
+This means that language files for languages with such a trait can be halved
+in size, and that user customization for them is simplified, only requiring
+the capitalized name forms. On the other hand, the non-capitalized
+\texttt{name-} reference format options are rendered no-op for the language in
+question. \zcref[S]{tab:language-options} presents an overview of the options
+in effect for the languages declared by \pkg{zref-clever}.
+\cs{zcDeclareLanguage} is preamble only.
\begin{table}
\centering
@@ -1209,6 +1212,7 @@
german & N,A,D,G & f,m,n & yes \\
portuguese & -- & f,m & -- \\
spanish & -- & f,m & -- \\
+ dutch & -- & f,m,n & -- \\
\bottomrule
\end{tabular}
\caption{Options for declared languages}
@@ -1245,12 +1249,13 @@
first occurrence of either \opt{type} or \opt{case} default values are set.
For \opt{case} this means the default declension case, which is the first
element of the list provided to the \opt{declension} option in
-\cs{zcDeclareLanguage}. For \opt{type} this means ``default translations'',
-which are language-specific but not type-specific option values (see
-\zcref{sec:reference-format}). An empty valued \texttt{type=} key can also
-``unset'' the type. The \opt{gender} key sets the gender of the current
-\texttt{type} (provided the value it receives is one of the declared genders
-for \meta{language}). \cs{zcLanguageSetup} is preamble only.
+\cs{zcDeclareLanguage}. For \opt{type} this means language-specific but not
+type-specific option values (see \zcref{sec:reference-format}). An empty
+valued \texttt{type=} key can also ``unset'' the type. The \opt{gender} key
+sets the gender of the current \texttt{type} (provided the value it receives
+is one of the declared genders for \meta{language}). For \texttt{type}s which
+have multiple valid genders for a given language, the option can also receive
+a comma separated list. \cs{zcLanguageSetup} is preamble only.
A couple of examples to illustrate the syntax of \cs{zcLanguageSetup}:
@@ -1292,7 +1297,7 @@
For reference type names, the declension cases for each language must be
declared with \cs{zcDeclareLanguage}, and the name reference format options
-must be provided for each case, which is done for built-in dictionaries of
+must be provided for each case, which is done for built-in language files of
languages which have noun declension, and can be done by the user with
\cs{zcLanguageSetup}, as we've seen. \pkg{zref-clever} does not try to guess
or infer the case though, you must tell it to \cs{zcref}. And this is done by
@@ -1328,11 +1333,11 @@
of the same type block have been compressed into a single one and, hence, the
type name used is singular. Finally, \opt{gender} nudges when there is a
mismatch between the gender specified in \cs{zcref} with the \opt{g} option
-and the gender of the type name, as stored in the dictionary or language
-settings, for each type block. Which nudges to use is configurable with the
-option \opt{nudgeif}. And, if you're sure of the results for a particular
-\cs{zcref} call, you can always silence the nudges locally with the
-\opt{nonudge} option.
+and the gender of the type name, as set in the language file or with
+\cs{zcLanguageSetup}, for each type block. Which nudges to use is
+configurable with the option \opt{nudgeif}. And, if you're sure of the
+results for a particular \cs{zcref} call, you can always silence the nudges
+locally with the \opt{nonudge} option.
The main reason to watch for multiple type references with the \opt{multitype}
nudge is that bundling together automatically a list of type blocks is less
@@ -1384,14 +1389,14 @@
preceding article will no longer pass to the reference. The \opt{gender}
nudge requires that the gender of each type name and of each reference be
explicitly specified. For the type names, this is done for the built-in
-dictionaries of languages were this matters, and can be done with
+language files of languages were this matters, and can be done with
\cs{zcLanguageSetup} as well. For the references, that is the purpose of the
\opt{g} option. When there is a mismatch between the two for any type block,
the nudge is triggered. Of couse, this means that the gender markup has to be
-supplied in the document at each reference. And considering such type changes
-may not be frequent for you, or considered not particularly problematic,
-you'll have to balance if doing so is worth it. Still, the feature is
-available, and it's up to you.
+supplied in the document at each reference. And given such type changes may
+not be frequent for you, or considered not particularly problematic, you'll
+have to balance if doing so is worth it. Still, the feature is available, and
+it's up to you.
\section{How-tos}
@@ -1402,10 +1407,10 @@
\pkg{zref-clever}.
-\subsection{Context sensitive references}
+\subsection{Context sensitive page references}
-\zctask{Make cross-references which are sensitive to the relative position
- between the reference and the label being referred to.}
+\zctask{Make cross-references to pages which are sensitive to the relative
+ position between the reference and the label being referred to.}
It is frequently useful to make a reference to both a document element and its
page. For example:
@@ -1436,12 +1441,12 @@
it does automate the checking that the reference context is the intended one.
And to make use of this feature, one does not need to rely on compiling the
-document, make one such reference according to the current state of things,
-and then adjusting them over and over, as the document gets edited. This
-feature is best used within a certain workflow, which starts by making a
-standard reference, but adding the \texttt{pagegap} check to it:
+document, make the reference according to the current state of things, and
+then adjusting it over and over, as the document gets edited. This feature is
+best used within a certain workflow, which starts by making a standard
+reference with a page reference, but adding the \texttt{pagegap} check to it:
\begin{zcexample}
-\zcref[check=pagegap]{fig:1} on \zcpageref{fig:1}
+\zcref{fig:1} on \zcpageref[check=pagegap]{fig:1}
\end{zcexample}
During the initial editing of the document, this reference will be formally
@@ -1586,8 +1591,8 @@
\cs{zcLanguageSetup}, the most convenient way to setup a reference type is
\cs{zcRefTypeSetup}. In most cases, what we really need to provide for a
custom type are the ``type names'' and other reference format options can rely
-on default translations already provided by the package (assuming the language
-is supported).
+on default language options already provided by the package (assuming the
+language is supported).
\begin{zchowto}[caption={\cs{newtheorem}, custom type}]
\documentclass{article}
@@ -2202,7 +2207,7 @@
% 2021-10-10: https://tex.stackexchange.com/questions/618434/#comment1544401_618439
Frank Mittelbach,
% 2021-10-14: https://github.com/latex3/latex2e/issues/687
- \texttt{@samcarter},
+ `\texttt{samcarter}',
% 2021-10-14: https://chat.stackexchange.com/transcript/message/59361777#59361777
% 2021-10-21: https://chat.stackexchange.com/transcript/message/59418309#59418309
Alan Munn,
@@ -2215,12 +2220,19 @@
% 2021-11-25: https://github.com/gusbrs/zref-clever/issues/1
Marcel Krüger,
% 2021-11-26: https://github.com/latex3/l3build/issues/215
- and Jürgen Spitzmüller.
+ Jürgen Spitzmüller,
% 2021-11-28: https://github.com/gusbrs/zref-clever/issues/2
+ and `\texttt{niluxv}'.
+ % 2022-01-05: https://github.com/gusbrs/zref-clever/issues/4
+ % 2022-01-05: https://github.com/gusbrs/zref-clever/pull/5
-The package's dictionaries have been provided or improved thanks to:
- Denis Bitouzé (French).
+The package's language files have been provided or improved thanks to:
+ Denis Bitouzé (French),
% 2021-11-25: https://github.com/gusbrs/zref-clever/issues/1
+ François Lagarde (French), % 'flagarde'
+ % 2021-12-09: discussion at https://github.com/gusbrs/zref-clever/issues/1
+ and `\texttt{niluxv}' (Dutch).
+ % 2022-01-09: https://github.com/gusbrs/zref-clever/pull/5
If I have inadvertently left anyone off the list I apologize, and please let
me know, so that I can correct the oversight.
Modified: trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.dtx 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.dtx 2022-01-11 22:01:01 UTC (rev 61572)
@@ -4,7 +4,7 @@
%
% This file is part 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
@@ -63,6 +63,9 @@
% \NewDocumentCommand\githubissue{m}{^^A
% issue~\href{https://github.com/gusbrs/zref-clever/issues/#1}{\##1}}
%
+% \NewDocumentCommand\githubPR{m}{^^A
+% PR~\href{https://github.com/gusbrs/zref-clever/pull/#1}{\##1}}
+%
% ^^A Currently just for keeping semantic markup on this.
% \NewDocumentCommand\contributor{m}{#1}
%
@@ -129,7 +132,7 @@
% \cs{bool_case_true:}\dots{}). We presume \pkg{xparse} (which made to the
% kernel in the 2020-10-01 release), and \pkg{expl3} as well (which made to
% the kernel in the 2020-02-02 release). We also just use UTF-8 for the
-% dictionaries (which became the default input encoding in the 2018-04-01
+% language files (which became the default input encoding in the 2018-04-01
% release). Finally, a couple of changes came with the 2021-11-15 kernel
% release, which are important here. First, a fix was made to the new hook
% management system (\pkg{ltcmdhooks}), with implications to the hook we add
@@ -159,7 +162,7 @@
%
% Identify the package.
% \begin{macrocode}
-\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}
% \end{macrocode}
%
@@ -520,6 +523,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 }
@@ -597,14 +605,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 }
@@ -654,6 +663,11 @@
{ Loaded~support~for~'#1'~package. }
\msg_new:nnn { zref-clever } { compat-class }
{ Loaded~support~for~'#1'~documentclass. }
+\msg_new:nnn { zref-clever } { option-deprecated }
+ {
+ Option~'#1'~has~been~deprecated~\msg_line_context:.\iow_newline:
+ Use~'#2'~instead.
+ }
% \end{macrocode}
%
%
@@ -660,22 +674,22 @@
% \subsection{Data extraction}
%
%
-% \begin{macro}{\@@_def_extract:Nnnn}
+% \begin{macro}{\@@_extract_default:Nnnn}
% Extract property \meta{prop} from \meta{label} and sets variable \meta{tl
% var} with extracted value. Ensure \cs{zref at extractdefault} is expanded
% exactly twice, but no further to retrieve the proper value. In case the
% property is not found, set \meta{tl var} with \meta{default}.
% \begin{syntax}
-% \cs{@@_def_extract:Nnnn} \Arg{tl val}
+% \cs{@@_extract_default:Nnnn} \Arg{tl val}
% ~~\Arg{label} \Arg{prop} \Arg{default}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_def_extract:Nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_extract_default:Nnnn #1#2#3#4
{
\exp_args:NNNo \exp_args:NNo \tl_set:Nn #1
{ \zref at extractdefault {#2} {#3} {#4} }
}
-\cs_generate_variant:Nn \@@_def_extract:Nnnn { NVnn }
+\cs_generate_variant:Nn \@@_extract_default:Nnnn { NVnn }
% \end{macrocode}
% \end{macro}
%
@@ -714,31 +728,32 @@
%
% For a general discussion on the precedence rules for reference format
% options, see Section ``Reference format'' in the User manual. Internally,
-% these precedence rules are handled / enforced in \cs{@@_get_ref_string:nN},
-% \cs{@@_get_ref_font:nN}, and \cs{@@_type_name_setup:} which are the basic
-% functions to retrieve proper values for reference format settings. The
-% ``fallback'' settings are stored in \cs{g_@@_fallback_dict_prop}.
+% these precedence rules are handled / enforced in
+% \cs{@@_get_ref_opt_typeset:nN}, \cs{@@_get_ref_opt_font:nN}, and
+% \cs{@@_type_name_setup:} which are the basic functions to retrieve proper
+% values for reference format settings. The ``fallback'' settings are stored
+% in \cs{g_@@_fallback_unknown_lang_prop}.
%
%
% \begin{macro}
% {
% \l_@@_setup_type_tl ,
-% \l_@@_dict_language_tl ,
-% \l_@@_dict_decl_case_tl ,
-% \l_@@_dict_declension_seq ,
-% \l_@@_dict_gender_seq ,
+% \l_@@_base_language_tl ,
+% \l_@@_lang_decl_case_tl ,
+% \l_@@_lang_declension_seq ,
+% \l_@@_lang_gender_seq ,
% }
% Store ``current'' type, language, and declension cases in different places
-% for option and translation handling, notably in
-% \cs{@@_provide_dictionary:n}, \cs{zcRefTypeSetup}, and
-% \cs{zcLanguageSetup}. But also for translations retrieval, in
-% \cs{@@_get_type_transl:nnnN} and \cs{@@_get_default_transl:nnN}.
+% for type-specific and language-specific options handling, notably in
+% \cs{@@_provide_langfile:n}, \cs{zcRefTypeSetup}, and
+% \cs{zcLanguageSetup}. But also for language options retrieval, in
+% \cs{@@_get_lang_opt_type:nnnN} and \cs{@@_get_lang_opt_default:nnN}.
% \begin{macrocode}
\tl_new:N \l_@@_setup_type_tl
-\tl_new:N \l_@@_dict_language_tl
-\tl_new:N \l_@@_dict_decl_case_tl
-\seq_new:N \l_@@_dict_declension_seq
-\seq_new:N \l_@@_dict_gender_seq
+\tl_new:N \l_@@_base_language_tl
+\tl_new:N \l_@@_lang_decl_case_tl
+\seq_new:N \l_@@_lang_declension_seq
+\seq_new:N \l_@@_lang_gender_seq
% \end{macrocode}
% \end{macro}
%
@@ -773,13 +788,13 @@
listsep ,
lastsep ,
rangesep ,
- refpre ,
- refpos ,
+ preref ,
+ postref ,
}
% \end{macrocode}
% Only ``type names'' are ``necessarily type-specific'', which makes them
% somewhat special on the retrieval side of things. In short, they don't have
-% their values queried by \cs{@@_get_ref_string:nN}, but by
+% their values queried by \cs{@@_get_ref_opt_typeset:nN}, but by
% \cs{@@_type_name_setup:}.
% \begin{macrocode}
\seq_const_from_clist:Nn
@@ -830,12 +845,13 @@
%
% \begin{macro}{\g_@@_languages_prop}
% Stores the names of known languages and the mapping from ``language name''
-% to ``dictionary name''. Whether or not a language or alias is known to
+% to ``base language name''. Whether or not a language or alias is known to
% \pkg{zref-clever} is decided by its presence in this property list. A
% ``base language'' (loose concept here, meaning just ``the name we gave for
-% the dictionary in that particular language'') is just like any other one,
-% the only difference is that the ``language name'' happens to be the same
-% as the ``dictionary name'', in other words, it is an ``alias to itself''.
+% the language file in that particular language'') is just like any other
+% one, the only difference is that the ``language name'' happens to be the
+% same as the ``base language name'', in other words, it is an ``alias to
+% itself''.
% \begin{macrocode}
\prop_new:N \g_@@_languages_prop
% \end{macrocode}
@@ -844,7 +860,7 @@
%
% \begin{macro}[int]{\zcDeclareLanguage}
% Declare a new language for use with \pkg{zref-clever}. \meta{language} is
-% taken to be both the ``language name'' and the ``dictionary name''.
+% taken to be both the ``language name'' and the ``base language name''.
% \oarg{options} receive a \texttt{k=v} set of options, with three valid
% options. The first, \opt{declension}, takes the noun declension cases
% prefixes for \meta{language} as a comma separated list, whose first
@@ -856,7 +872,7 @@
% \meta{language} is already known, just warn. This implies a particular
% restriction regarding \oarg{options}, namely that these options, when
% defined by the package, cannot be redefined by the user. This is
-% deliberate, otherwise the built-in dictionaries would become much too
+% deliberate, otherwise the built-in language files would become much too
% sensitive to this particular user input, and unnecessarily so.
% \cs{zcDeclareLanguage} is preamble only.
% \begin{syntax}
@@ -872,8 +888,8 @@
{ \msg_warning:nnn { zref-clever } { language-declared } {#2} }
{
\prop_gput:Nnn \g_@@_languages_prop {#2} {#2}
- \prop_new:c { g_@@_dict_ #2 _prop }
- \tl_set:Nn \l_@@_dict_language_tl {#2}
+ \prop_new:c { g_@@_lang_ #2 _prop }
+ \tl_set:Nn \l_@@_base_language_tl {#2}
\keys_set:nn { zref-clever / declarelang } {#1}
}
}
@@ -885,10 +901,10 @@
%
%
% \begin{macro}[int]{\zcDeclareLanguageAlias}
-% Declare \meta{language alias} to be an alias of \meta{aliased language}.
-% \meta{aliased language} must be already known to \pkg{zref-clever}, as
-% stored in \cs{g_@@_languages_prop}. \cs{zcDeclareLanguageAlias} is
-% preamble only.
+% Declare \meta{language alias} to be an alias of \meta{aliased language}
+% (or ``base language''). \meta{aliased language} must be already known to
+% \pkg{zref-clever}, as stored in \cs{g_@@_languages_prop}.
+% \cs{zcDeclareLanguageAlias} is preamble only.
% \begin{syntax}
% \cs{zcDeclareLanguageAlias} \marg{language alias} \marg{aliased language}
% \end{syntax}
@@ -918,7 +934,7 @@
declension .code:n =
{
\prop_gput:cnn
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ declension } {#1}
} ,
declension .value_required:n = true ,
@@ -925,7 +941,7 @@
gender .code:n =
{
\prop_gput:cnn
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ gender } {#1}
} ,
gender .value_required:n = true ,
@@ -932,7 +948,7 @@
allcaps .code:n =
{
\prop_gput:cnn
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ allcaps } { true }
} ,
allcaps .value_forbidden:n = true ,
@@ -956,7 +972,7 @@
{
\exp_args:NNx \prop_get:NnNTF \g_@@_languages_prop
{ \l_@@_ref_language_tl }
- \l_@@_dict_language_tl
+ \l_@@_base_language_tl
{
% \end{macrocode}
% Validate the declension case (\opt{d}) option against the declared cases for
@@ -967,16 +983,16 @@
% warning about it.
% \begin{macrocode}
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_declension_seq
+ \l_@@_lang_declension_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l_@@_dict_declension_seq
+ \seq_if_empty:NTF \l_@@_lang_declension_seq
{
\tl_if_empty:NF \l_@@_ref_decl_case_tl
{
@@ -990,11 +1006,11 @@
{
\tl_if_empty:NTF \l_@@_ref_decl_case_tl
{
- \seq_get_left:NN \l_@@_dict_declension_seq
+ \seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_ref_decl_case_tl
}
{
- \seq_if_in:NVF \l_@@_dict_declension_seq
+ \seq_if_in:NVF \l_@@_lang_declension_seq
\l_@@_ref_decl_case_tl
{
\msg_warning:nnxx { zref-clever }
@@ -1001,7 +1017,7 @@
{ unknown-decl-case }
{ \l_@@_ref_decl_case_tl }
{ \l_@@_ref_language_tl }
- \seq_get_left:NN \l_@@_dict_declension_seq
+ \seq_get_left:NN \l_@@_lang_declension_seq
\l_@@_ref_decl_case_tl
}
}
@@ -1012,16 +1028,16 @@
% genders declared for the former, clear \cs{l_@@_ref_gender_tl} and warn.
% \begin{macrocode}
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_gender_seq
+ \l_@@_lang_gender_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ gender }
}
- \seq_if_empty:NTF \l_@@_dict_gender_seq
+ \seq_if_empty:NTF \l_@@_lang_gender_seq
{
\tl_if_empty:NF \l_@@_ref_gender_tl
{
@@ -1036,7 +1052,7 @@
{
\tl_if_empty:NF \l_@@_ref_gender_tl
{
- \seq_if_in:NVF \l_@@_dict_gender_seq
+ \seq_if_in:NVF \l_@@_lang_gender_seq
\l_@@_ref_gender_tl
{
\msg_warning:nnxx { zref-clever }
@@ -1048,20 +1064,20 @@
}
}
% \end{macrocode}
-% Ensure \cs{l_@@_capitalize_bool} is set to \texttt{true} when the language
-% was declared with \opt{allcaps} option.
+% Ensure the \opt{cap} in \cs{l_@@_ref_options_prop} is set to \texttt{true}
+% when the language was declared with \opt{allcaps} option.
% \begin{macrocode}
\str_if_eq:eeT
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ allcaps }
}
{ true }
- { \bool_set_true:N \l_@@_capitalize_bool }
+ { \prop_put:Nnn \l_@@_ref_options_prop { cap } { true } }
}
{
% \end{macrocode}
@@ -1091,26 +1107,25 @@
%
%
%
-% \subsection{Dictionaries}
+% \subsection{Language files}
%
% Contrary to general options and type options, which are always \emph{local},
-% ``dictionaries'', ``translations'' or ``language-specific settings'' are
-% always \emph{global}. Hence, the loading of built-in dictionaries, as well
-% as settings done with \cs{zcLanguageSetup}, should set the relevant
-% variables globally.
+% language-specific settings are always \emph{global}. Hence, the loading of
+% built-in language files, as well as settings done with \cs{zcLanguageSetup},
+% should set the relevant variables globally.
%
-% The built-in dictionaries and their related infrastructure are designed to
-% perform ``on the fly'' loading of dictionaries, ``lazily'' as needed. Much
-% like \pkg{babel} does for languages not declared in the preamble, but used
-% in the document. This offers some convenience, of course, and that's one
-% reason to do it. But it also has the purpose of parsimony, of ``loading the
-% least possible''. Therefore, we load at \texttt{begindocument} one single
-% language (see \zcref[ref=title, noname]{sec:lang-option}), as specified by
-% the user in the preamble with the \opt{lang} option or, failing any
-% specification, the current language of the document, which is the default.
-% Anything else is lazily loaded, on the fly, along the document.
+% The built-in language files and their related infrastructure are designed to
+% perform ``on the fly'' loading of the language files, ``lazily'' as needed.
+% Much like \pkg{babel} does for languages not declared in the preamble, but
+% used in the document. This offers some convenience, of course, and that's
+% one reason to do it. But it also has the purpose of parsimony, of ``loading
+% the least possible''. Therefore, we load at \texttt{begindocument} one
+% single language (see \zcref[ref=title, noname]{sec:lang-option}), as
+% specified by the user in the preamble with the \opt{lang} option or, failing
+% any specification, the current language of the document, which is the
+% default. Anything else is lazily loaded, on the fly, along the document.
%
-% This design decision has also implications to the \emph{form} the dictionary
+% This design decision has also implications to the \emph{form} the language
% files assumed. As far as my somewhat impressionistic sampling goes,
% dictionary or localization files of the most common packages in this area of
% functionality, are usually a set of commands which perform the relevant
@@ -1126,147 +1141,148 @@
% \file{.ini} files are not in this form, but actually resemble
% ``configuration files'' of sorts, which means they are read and processed
% somehow else than with just \cs{input}. So we do the more or less the same
-% here. It seems a reasonable way to ensure we can load dictionaries on the
+% here. It seems a reasonable way to ensure we can load language files on the
% fly robustly mid-document, without getting paranoid with the last bit of
% white-space in them, and without introducing any undue content on the stream
% when we cannot afford to do it. Hence, \pkg{zref-clever}'s built-in
-% dictionary files are a set of \emph{key-value options} which are read from
-% the file, and fed to \texttt{\cs{keys_set:nn}\{zref-clever/dictionary\}} by
-% \cs{@@_provide_dictionary:n}. And they use the same syntax and options as
-% \cs{zcLanguageSetup} does. The dictionary file itself is read with
+% language files are a set of \emph{key-value options} which are read from the
+% file, and fed to \texttt{\cs{keys_set:nn}\{zref-clever/langfile\}} by
+% \cs{@@_provide_langfile:n}. And they use the same syntax and options as
+% \cs{zcLanguageSetup} does. The language file itself is read with
% \cs{ExplSyntaxOn} with the usual implications for white-space and catcodes.
%
-% \cs{@@_provide_dictionary:n} is only meant to load the built-in
-% dictionaries. For languages declared by the user, or for any settings to a
-% known language made with \cs{zcLanguageSetup}, values are populated directly
-% to a variable \cs{g_@@_dict_\meta{language}_prop}. Hence, there is no need
-% to ``load'' anything in this case: definitions and assignments made by the
-% user are performed immediately.
+% \cs{@@_provide_langfile:n} is only meant to load the built-in language
+% files. For languages declared by the user, or for any settings to a known
+% language made with \cs{zcLanguageSetup}, values are populated directly to a
+% variable \cs{g_@@_lang_\meta{language}_prop}. Hence, there is no need to
+% ``load'' anything in this case: definitions and assignments made by the user
+% are performed immediately.
%
%
% \subsubsection*{Provide}
%
-% \begin{macro}{\g_@@_loaded_dictionaries_seq}
-% Used to keep track of whether a dictionary has already been loaded or not.
+% \begin{macro}{\g_@@_loaded_langfiles_seq}
+% Used to keep track of whether a language file has already been loaded or
+% not.
% \begin{macrocode}
-\seq_new:N \g_@@_loaded_dictionaries_seq
+\seq_new:N \g_@@_loaded_langfiles_seq
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\l_@@_load_dict_verbose_bool}
-% Controls whether \cs{@@_provide_dictionary:n} fails silently or verbosely
-% in case of unknown languages or dictionaries not found.
+% \begin{macro}{\l_@@_load_langfile_verbose_bool}
+% Controls whether \cs{@@_provide_langfile:n} fails silently or verbosely
+% in case of unknown languages or not found language files.
% \begin{macrocode}
-\bool_new:N \l_@@_load_dict_verbose_bool
+\bool_new:N \l_@@_load_langfile_verbose_bool
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\@@_provide_dictionary:n}
-% Load dictionary for known \meta{language} if it is available and if it has
-% not already been loaded.
+% \begin{macro}{\@@_provide_langfile:n}
+% Load language file for known \meta{language} if it is available and if it
+% has not already been loaded.
% \begin{syntax}
-% \cs{@@_provide_dictionary:n} \Arg{language}
+% \cs{@@_provide_langfile:n} \Arg{language}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide_dictionary:n #1
+\cs_new_protected:Npn \@@_provide_langfile:n #1
{
\group_begin:
\@bsphack
\prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_dict_language_tl
+ \l_@@_base_language_tl
{
\seq_if_in:NVF
- \g_@@_loaded_dictionaries_seq
- \l_@@_dict_language_tl
+ \g_@@_loaded_langfiles_seq
+ \l_@@_base_language_tl
{
\exp_args:Nx \file_get:nnNTF
- { zref-clever- \l_@@_dict_language_tl .dict }
+ { zref-clever- \l_@@_base_language_tl .lang }
{ \ExplSyntaxOn }
\l_tmpa_tl
{
\tl_clear:N \l_@@_setup_type_tl
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_declension_seq
+ \l_@@_lang_declension_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l_@@_dict_declension_seq
- { \tl_clear:N \l_@@_dict_decl_case_tl }
+ \seq_if_empty:NTF \l_@@_lang_declension_seq
+ { \tl_clear:N \l_@@_lang_decl_case_tl }
{
- \seq_get_left:NN \l_@@_dict_declension_seq
- \l_@@_dict_decl_case_tl
+ \seq_get_left:NN \l_@@_lang_declension_seq
+ \l_@@_lang_decl_case_tl
}
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_gender_seq
+ \l_@@_lang_gender_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ gender }
}
- \keys_set:nV { zref-clever / dictionary } \l_tmpa_tl
- \seq_gput_right:NV \g_@@_loaded_dictionaries_seq
- \l_@@_dict_language_tl
- \msg_note:nnx { zref-clever } { dict-loaded }
- { \l_@@_dict_language_tl }
+ \keys_set:nV { zref-clever / langfile } \l_tmpa_tl
+ \seq_gput_right:NV \g_@@_loaded_langfiles_seq
+ \l_@@_base_language_tl
+ \msg_note:nnx { zref-clever } { langfile-loaded }
+ { \l_@@_base_language_tl }
}
{
- \bool_if:NT \l_@@_load_dict_verbose_bool
+ \bool_if:NT \l_@@_load_langfile_verbose_bool
{
- \msg_warning:nnx { zref-clever } { dict-not-available }
- { \l_@@_dict_language_tl }
+ \msg_warning:nnx { zref-clever } { langfile-not-available }
+ { \l_@@_base_language_tl }
}
% \end{macrocode}
-% Even if we don't have the actual dictionary, we register it as ``loaded''.
-% At this point, it is a known language, properly declared. There is no point
-% in trying to load it multiple times, because users cannot really provide the
-% dictionary files (well, technically they could, but we are working so they
-% don't need to, and have better ways to do what they want). And if the users
-% had provided some translations themselves, by means of \cs{zcLanguageSetup},
-% everything would be in place, and they could use the \opt{lang} option
-% multiple times, and the \texttt{dict-not-available} warning would never go
-% away.
+% Even if we don't have the actual language file, we register it as
+% ``loaded''. At this point, it is a known language, properly declared.
+% There is no point in trying to load it multiple times, because users cannot
+% really provide the language files (well, technically they could, but we are
+% working so they don't need to, and have better ways to do what they want).
+% And if the users had provided some language-specific options themselves, by
+% means of \cs{zcLanguageSetup}, everything would be in place, and they could
+% use the \opt{lang} option multiple times, and the
+% \texttt{langfile-not-available} warning would never go away.
% \begin{macrocode}
- \seq_gput_right:NV \g_@@_loaded_dictionaries_seq
- \l_@@_dict_language_tl
+ \seq_gput_right:NV \g_@@_loaded_langfiles_seq
+ \l_@@_base_language_tl
}
}
}
{
- \bool_if:NT \l_@@_load_dict_verbose_bool
+ \bool_if:NT \l_@@_load_langfile_verbose_bool
{ \msg_warning:nnn { zref-clever } { unknown-language-load } {#1} }
}
\@esphack
\group_end:
}
-\cs_generate_variant:Nn \@@_provide_dictionary:n { x }
+\cs_generate_variant:Nn \@@_provide_langfile:n { x }
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\@@_provide_dictionary_verbose:n}
-% Does the same as \cs{@@_provide_dictionary:n}, but warns if the loading of
-% the dictionary has failed.
+% \begin{macro}{\@@_provide_langfile_verbose:n}
+% Does the same as \cs{@@_provide_langfile:n}, but warns if the loading of
+% the language file has failed.
% \begin{syntax}
-% \cs{@@_provide_dictionary_verbose:n} \Arg{language}
+% \cs{@@_provide_langfile_verbose:n} \Arg{language}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide_dictionary_verbose:n #1
+\cs_new_protected:Npn \@@_provide_langfile_verbose:n #1
{
\group_begin:
- \bool_set_true:N \l_@@_load_dict_verbose_bool
- \@@_provide_dictionary:n {#1}
+ \bool_set_true:N \l_@@_load_langfile_verbose_bool
+ \@@_provide_langfile:n {#1}
\group_end:
}
-\cs_generate_variant:Nn \@@_provide_dictionary_verbose:n { x }
+\cs_generate_variant:Nn \@@_provide_langfile_verbose:n { x }
% \end{macrocode}
% \end{macro}
%
@@ -1273,46 +1289,48 @@
%
% \begin{macro}
% {
-% \@@_provide_dict_type_transl:nn ,
-% \@@_provide_dict_default_transl:nn ,
+% \@@_provide_lang_opt_type:nn ,
+% \@@_provide_lang_opt_default:nn ,
% }
% A couple of auxiliary functions for the of
-% \texttt{{zref-clever/dictionary}} keys set in
-% \cs{@@_provide_dictionary:n}. They respectively ``provide'' (i.e. set if
+% \texttt{{zref-clever/langfile}} keys set in
+% \cs{@@_provide_langfile:n}. They respectively ``provide'' (i.e. set if
% it value does not exist, do nothing if it already does) ``type-specific''
-% and ``default'' translations. Both receive \meta{key} and
-% \meta{translation} as arguments, but \cs{@@_provide_dict_type_transl:nn}
+% and ``default'' language options. Both receive \meta{key} and
+% \meta{value} as arguments, but \cs{@@_provide_lang_opt_type:nn}
% relies on the current value of \cs{l_@@_setup_type_tl}, as set by the
% \texttt{type} key.
% \begin{syntax}
-% \cs{@@_provide_dict_type_transl:nn} \Arg{key} \Arg{translation}
-% \cs{@@_provide_dict_default_transl:nn} \Arg{key} \Arg{translation}
+% \cs{@@_provide_lang_opt_type:nn} \Arg{key} \Arg{value}
+% \cs{@@_provide_lang_opt_default:nn} \Arg{key} \Arg{value}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_provide_dict_type_transl:nn #1#2
+\cs_new_protected:Npn \@@_provide_lang_opt_type:nn #1#2
{
\exp_args:Nnx \prop_gput_if_new:cnn
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ type- \l_@@_setup_type_tl - #1 } {#2}
}
-\cs_new_protected:Npn \@@_provide_dict_default_transl:nn #1#2
+\cs_generate_variant:Nn \@@_provide_lang_opt_type:nn { nV }
+\cs_new_protected:Npn \@@_provide_lang_opt_default:nn #1#2
{
\prop_gput_if_new:cnn
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ default- #1 } {#2}
}
+\cs_generate_variant:Nn \@@_provide_lang_opt_default:nn { nV }
% \end{macrocode}
% \end{macro}
%
%
-% The set of keys for \texttt{{zref-clever/dictionary}}, which is used to
-% process the dictionary files in \cs{@@_provide_dictionary:n}. The no-op
-% cases for each category have their messages sent to ``info''. These
-% messages should not occur, as long as the dictionaries are well formed, but
-% they're placed there nevertheless, and can be leveraged in regression tests.
+% The set of keys for \texttt{{zref-clever/langfile}}, which is used to
+% process the language files in \cs{@@_provide_langfile:n}. The no-op cases
+% for each category have their messages sent to ``info''. These messages
+% should not occur, as long as the language files are well formed, but they're
+% placed there nevertheless, and can be leveraged in regression tests.
%
% \begin{macrocode}
-\keys_define:nn { zref-clever / dictionary }
+\keys_define:nn { zref-clever / langfile }
{
type .code:n =
{
@@ -1320,31 +1338,33 @@
{ \tl_clear:N \l_@@_setup_type_tl }
{ \tl_set:Nn \l_@@_setup_type_tl {#1} }
} ,
+
case .code:n =
{
- \seq_if_empty:NTF \l_@@_dict_declension_seq
+ \seq_if_empty:NTF \l_@@_lang_declension_seq
{
\msg_info:nnxx { zref-clever } { language-no-decl-setup }
- { \l_@@_dict_language_tl } {#1}
+ { \l_@@_base_language_tl } {#1}
}
{
- \seq_if_in:NnTF \l_@@_dict_declension_seq {#1}
- { \tl_set:Nn \l_@@_dict_decl_case_tl {#1} }
+ \seq_if_in:NnTF \l_@@_lang_declension_seq {#1}
+ { \tl_set:Nn \l_@@_lang_decl_case_tl {#1} }
{
\msg_info:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l_@@_dict_language_tl }
- \seq_get_left:NN \l_@@_dict_declension_seq
- \l_@@_dict_decl_case_tl
+ {#1} { \l_@@_base_language_tl }
+ \seq_get_left:NN \l_@@_lang_declension_seq
+ \l_@@_lang_decl_case_tl
}
}
} ,
case .value_required:n = true ,
+
gender .code:n =
{
- \seq_if_empty:NTF \l_@@_dict_gender_seq
+ \seq_if_empty:NTF \l_@@_lang_gender_seq
{
\msg_info:nnxxx { zref-clever } { language-no-gender }
- { \l_@@_dict_language_tl } { gender } {#1}
+ { \l_@@_base_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l_@@_setup_type_tl
@@ -1353,27 +1373,71 @@
{ option-only-type-specific } { gender }
}
{
- \seq_if_in:NnTF \l_@@_dict_gender_seq {#1}
- { \@@_provide_dict_type_transl:nn { gender } {#1} }
+ \clist_clear:N \l_tmpa_clist
+ \clist_map_inline:nn {#1}
{
- \msg_info:nnxx { zref-clever } { gender-not-declared }
- { \l_@@_dict_language_tl } {#1}
+ \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
+ { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ {
+ \msg_info:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l_@@_base_language_tl } {##1}
+ }
}
+ \clist_if_empty:NF \l_tmpa_clist
+ {
+ \exp_args:Nnx \@@_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_@@_setup_type_tl
+ {
+ \@@_provide_lang_opt_default:nV
+ { cap } \l_keys_choice_tl
+ }
+ {
+ \@@_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_@@_setup_type_tl
+ {
+ \@@_provide_lang_opt_default:nV
+ { abbrev } \l_keys_choice_tl
+ }
+ {
+ \@@_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_@@_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_@@_setup_type_tl
- { \@@_provide_dict_default_transl:nn {#1} {##1} }
+ { \@@_provide_lang_opt_default:nn {#1} {##1} }
{
\msg_info:nnn { zref-clever }
{ option-not-type-specific } {#1}
@@ -1384,14 +1448,14 @@
\seq_map_inline:Nn
\c_@@_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_@@_setup_type_tl
- { \@@_provide_dict_default_transl:nn {#1} {##1} }
- { \@@_provide_dict_type_transl:nn {#1} {##1} }
+ { \@@_provide_lang_opt_default:nn {#1} {##1} }
+ { \@@_provide_lang_opt_type:nn {#1} {##1} }
} ,
}
}
@@ -1398,7 +1462,7 @@
\seq_map_inline:Nn
\c_@@_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 =
@@ -1409,11 +1473,11 @@
{ option-only-type-specific } {#1}
}
{
- \tl_if_empty:NTF \l_@@_dict_decl_case_tl
- { \@@_provide_dict_type_transl:nn {#1} {##1} }
+ \tl_if_empty:NTF \l_@@_lang_decl_case_tl
+ { \@@_provide_lang_opt_type:nn {#1} {##1} }
{
- \@@_provide_dict_type_transl:nn
- { \l_@@_dict_decl_case_tl - #1 } {##1}
+ \@@_provide_lang_opt_type:nn
+ { \l_@@_lang_decl_case_tl - #1 } {##1}
}
}
} ,
@@ -1425,22 +1489,22 @@
%
% \subsubsection*{Fallback}
%
-% All ``strings'' queried with \cs{@@_get_ref_string:nN} -- in practice, those
-% in either \cs{c_@@_ref_options_necessarily_not_type_specific_seq} or
+% All ``strings'' queried with \cs{@@_get_ref_opt_typeset:nN} -- in practice,
+% those in either \cs{c_@@_ref_options_necessarily_not_type_specific_seq} or
% \cs{c_@@_ref_options_possibly_type_specific_seq} -- must have their values
% set for ``fallback'', even if to empty ones, since this is what will be
-% retrieved in the absence of a proper translation, which will be the case if
-% \pkg{babel} or \pkg{polyglossia} is loaded and sets a language which
-% \pkg{zref-clever} does not know. On the other hand, ``type names'' are not
-% looked for in ``fallback'', since it is indeed impossible to provide any
-% reasonable value for them for a ``specified but unknown language''. Also
-% ``font'' options -- those in \cs{c_@@_ref_options_font_seq}, and queried
-% with \cs{@@_get_ref_font:nN} -- do not need to be provided here, since the
-% later function sets an empty value if the option is not found.
+% retrieved in the absence of a proper language-specific option, which will be
+% the case if \pkg{babel} or \pkg{polyglossia} is loaded and sets a language
+% which \pkg{zref-clever} does not know. On the other hand, ``type names''
+% are not looked for in ``fallback'', since it is indeed impossible to provide
+% any reasonable value for them for a ``specified but unknown language''.
+% Also ``font'' options -- those in \cs{c_@@_ref_options_font_seq}, and
+% queried with \cs{@@_get_ref_opt_font:nN} -- do not need to be provided here,
+% since the later function sets an empty value if the option is not found.
%
% \begin{macrocode}
-\prop_new:N \g_@@_fallback_dict_prop
-\prop_gset_from_keyval:Nn \g_@@_fallback_dict_prop
+\prop_new:N \g_@@_fallback_unknown_lang_prop
+\prop_gset_from_keyval:Nn \g_@@_fallback_unknown_lang_prop
{
tpairsep = {,~} ,
tlistsep = {,~} ,
@@ -1451,33 +1515,33 @@
listsep = {,~} ,
lastsep = {,~} ,
rangesep = {\textendash} ,
- refpre = {} ,
- refpos = {} ,
+ preref = {} ,
+ postref = {} ,
}
% \end{macrocode}
%
%
%
-% \subsubsection*{Get translations}
+% \subsubsection*{Get language options}
%
-% \begin{macro}{\@@_get_type_transl:nnnNF}
-% Get type-specific translation of \meta{key} for \meta{type} and
+% \begin{macro}{\@@_get_lang_opt_type:nnnNF}
+% Get type-specific language option of \meta{key} for \meta{type} and
% \meta{language}, and store it in \meta{tl variable} if found. If not
% found, leave the \meta{false code} on the stream, in which case the value
% of \meta{tl variable} should not be relied upon.
% \begin{syntax}
-% \cs{@@_get_type_transl:nnnNF} \Arg{language} \Arg{type} \Arg{key}
+% \cs{@@_get_lang_opt_type:nnnNF} \Arg{language} \Arg{type} \Arg{key}
% ~~\meta{tl variable} \Arg{false code}
% \end{syntax}
% \begin{macrocode}
\prg_new_protected_conditional:Npnn
- \@@_get_type_transl:nnnN #1#2#3#4 { F }
+ \@@_get_lang_opt_type:nnnN #1#2#3#4 { F }
{
\prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_dict_language_tl
+ \l_@@_base_language_tl
{
\prop_get:cnNTF
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ type- #2 - #3 } #4
{ \prg_return_true: }
{ \prg_return_false: }
@@ -1485,29 +1549,29 @@
{ \prg_return_false: }
}
\prg_generate_conditional_variant:Nnn
- \@@_get_type_transl:nnnN { xxxN , xxnN } { F }
+ \@@_get_lang_opt_type:nnnN { xxxN , xxnN } { F }
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\@@_get_default_transl:nnNF}
-% Get default translation of \meta{key} for \meta{language}, and store it in
-% \meta{tl variable} if found. If not found, leave the \meta{false code} on
-% the stream, in which case the value of \meta{tl variable} should not be
-% relied upon.
+% \begin{macro}{\@@_get_lang_opt_default:nnNF}
+% Get default language option of \meta{key} for \meta{language}, and store
+% it in \meta{tl variable} if found. If not found, leave the \meta{false
+% code} on the stream, in which case the value of \meta{tl variable} should
+% not be relied upon.
% \begin{syntax}
-% \cs{@@_get_default_transl:nnNF} \Arg{language} \Arg{key}
+% \cs{@@_get_lang_opt_default:nnNF} \Arg{language} \Arg{key}
% ~~\meta{tl variable} \Arg{false code}
% \end{syntax}
% \begin{macrocode}
\prg_new_protected_conditional:Npnn
- \@@_get_default_transl:nnN #1#2#3 { F }
+ \@@_get_lang_opt_default:nnN #1#2#3 { F }
{
\prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_dict_language_tl
+ \l_@@_base_language_tl
{
\prop_get:cnNTF
- { g_@@_dict_ \l_@@_dict_language_tl _prop }
+ { g_@@_lang_ \l_@@_base_language_tl _prop }
{ default- #2 } #3
{ \prg_return_true: }
{ \prg_return_false: }
@@ -1515,25 +1579,26 @@
{ \prg_return_false: }
}
\prg_generate_conditional_variant:Nnn
- \@@_get_default_transl:nnN { xnN } { F }
+ \@@_get_lang_opt_default:nnN { xnN } { F }
% \end{macrocode}
% \end{macro}
%
%
-% \begin{macro}{\@@_get_fallback_transl:nNF}
-% Get fallback translation of \meta{key}, and store it in \meta{tl variable}
-% if found. If not found, leave the \meta{false code} on the stream, in
-% which case the value of \meta{tl variable} should not be relied upon.
+% \begin{macro}{\@@_get_fallback_unknown_lang_opt:nNF}
+% Get fallback language option of \meta{key}, and store it in \meta{tl
+% variable} if found. If not found, leave the \meta{false code} on the
+% stream, in which case the value of \meta{tl variable} should not be relied
+% upon.
% \begin{syntax}
-% \cs{@@_get_fallback_transl:nNF} \Arg{key}
+% \cs{@@_get_fallback_unknown_lang_opt:nNF} \Arg{key}
% ~~\meta{tl variable} \Arg{false code}
% \end{syntax}
% \begin{macrocode}
% {<key>}<tl var to set>
\prg_new_protected_conditional:Npnn
- \@@_get_fallback_transl:nN #1#2 { F }
+ \@@_get_fallback_unknown_lang_opt:nN #1#2 { F }
{
- \prop_get:NnNTF \g_@@_fallback_dict_prop
+ \prop_get:NnNTF \g_@@_fallback_unknown_lang_prop
{ #1 } #2
{ \prg_return_true: }
{ \prg_return_false: }
@@ -1712,14 +1777,26 @@
% \subsubsection*{\opt{cap} and \opt{capfirst} options}
%
% \begin{macrocode}
-\bool_new:N \l_@@_capitalize_bool
\bool_new:N \l_@@_capitalize_first_bool
\keys_define:nn { zref-clever / reference }
{
- cap .bool_set:N = \l_@@_capitalize_bool ,
- cap .initial:n = false ,
+ cap .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ { \prop_remove:Nn \l_@@_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_@@_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_@@_capitalize_first_bool ,
@@ -1732,12 +1809,24 @@
% \subsubsection*{\opt{abbrev} and \opt{noabbrevfirst} options}
%
% \begin{macrocode}
-\bool_new:N \l_@@_abbrev_bool
\bool_new:N \l_@@_noabbrev_first_bool
\keys_define:nn { zref-clever / reference }
{
- abbrev .bool_set:N = \l_@@_abbrev_bool ,
- abbrev .initial:n = false ,
+ abbrev .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ { \prop_remove:Nn \l_@@_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_@@_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 ,
@@ -1871,8 +1960,8 @@
% executed. Finally, we set a third \texttt{begindocument} hook, at
% \texttt{begindocument/before}, so that it runs after any options set in the
% preamble. This hook redefines the \opt{lang} option for immediate execution
-% in the document body, and ensures the \texttt{current} language's dictionary
-% gets loaded, if it hadn't been already.
+% in the document body, and ensures the \texttt{current} language's language
+% file gets loaded, if it hadn't been already.
%
% For the \pkg{babel} and \pkg{polyglossia} variables which store the
% ``current'' and ``main'' languages, see
@@ -1911,9 +2000,9 @@
% Provide default value for \cs{l_@@_ref_language_tl} corresponding to option
% \opt{current}, but do so outside of the \pkg{l3keys} machinery (that is,
% instead of using \texttt{.initial:n}), so that we are able to distinguish
-% when the user actually gave the option, in which case the dictionary loading
-% is done verbosely, from when we are setting the default value (here), in
-% which case the dictionary loading is done silently.
+% when the user actually gave the option, in which case the language file
+% loading is done verbosely, from when we are setting the default value
+% (here), in which case the language file loading is done silently.
% \begin{macrocode}
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
@@ -1934,7 +2023,7 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
- \@@_provide_dictionary_verbose:x
+ \@@_provide_langfile_verbose:x
{ \l_@@_ref_language_tl }
}
@@ -1942,7 +2031,7 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_main_language_tl }
- \@@_provide_dictionary_verbose:x
+ \@@_provide_langfile_verbose:x
{ \l_@@_ref_language_tl }
}
}
@@ -1955,7 +2044,7 @@
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
}
- \@@_provide_dictionary_verbose:x
+ \@@_provide_langfile_verbose:x
{ \l_@@_ref_language_tl }
}
}
@@ -1975,12 +2064,12 @@
% language is already loaded, otherwise, ensure the default one
% (\texttt{current}) gets loaded early, but not verbosely.
% \begin{macrocode}
- \@@_provide_dictionary:x { \l_@@_ref_language_tl }
+ \@@_provide_langfile:x { \l_@@_ref_language_tl }
% \end{macrocode}
% Redefinition of the \texttt{lang} key option for the document body. Also,
-% drop the verbose dictionary loading in the document body, as it can become
-% intrusive depending on the use case, and does not provide much ``juice''
-% anyway: in \cs{zcref} missing names warnings will already ensue.
+% drop the verbose language file loading in the document body, as it can
+% become intrusive depending on the use case, and does not provide much
+% ``juice'' anyway: in \cs{zcref} missing names warnings will already ensue.
% \begin{macrocode}
\keys_define:nn { zref-clever / reference }
{
@@ -1992,7 +2081,7 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
- \@@_provide_dictionary:x
+ \@@_provide_langfile:x
{ \l_@@_ref_language_tl }
}
@@ -2000,7 +2089,7 @@
{
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_main_language_tl }
- \@@_provide_dictionary:x
+ \@@_provide_langfile:x
{ \l_@@_ref_language_tl }
}
}
@@ -2013,7 +2102,7 @@
\tl_set:Nn \l_@@_ref_language_tl
{ \l_@@_current_language_tl }
}
- \@@_provide_dictionary:x
+ \@@_provide_langfile:x
{ \l_@@_ref_language_tl }
}
} ,
@@ -2480,8 +2569,8 @@
% ``not necessarily type-specific'' options are pertinent here. However, they
% \emph{may} either be type-specific or language-specific, and thus must be
% stored in a property list, \cs{l_@@_ref_options_prop}, in order to be
-% retrieved from the option \emph{name} by \cs{@@_get_ref_string:nN} and
-% \cs{@@_get_ref_font:nN} according to context and precedence rules.
+% retrieved from the option \emph{name} by \cs{@@_get_ref_opt_typeset:nN} and
+% \cs{@@_get_ref_opt_font:nN} according to context and precedence rules.
%
% The keys are set so that any value, including an empty one, is added to
% \cs{l_@@_ref_options_prop}, while a key with \emph{no value} removes the
@@ -2505,6 +2594,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 }
+ } ,
+ }
% \end{macrocode}
%
%
@@ -2573,13 +2677,12 @@
%
% \cs{zcRefTypeSetup} is the main user interface for ``type-specific''
% reference formatting. Settings done by this command have a higher
-% precedence than any translation, hence they override any language-specific
-% setting, either done at \cs{zcLanguageSetup} or by the package's
-% dictionaries. On the other hand, they have a lower precedence than non
-% type-specific general options. The \meta{options} should be given in the
-% usual \texttt{key=val} format. The \meta{type} does not need to pre-exist,
-% the property list variable to store the properties for the type gets created
-% if need be.
+% precedence than any language-specific setting, either done at
+% \cs{zcLanguageSetup} or by the package's language files. On the other hand,
+% they have a lower precedence than non type-specific general options. The
+% \meta{options} should be given in the usual \texttt{key=val} format. The
+% \meta{type} does not need to pre-exist, the property list variable to store
+% the properties for the type gets created if need be.
%
% \begin{macro}[int]{\zcRefTypeSetup}
% \begin{syntax}
@@ -2599,14 +2702,14 @@
%
% Inside \cs{zcRefTypeSetup} any of the options \emph{can} receive empty
% values, and those values, if they exist in the property list, will override
-% translations, regardless of their emptiness. In principle, we could live
-% with the situation of, once a setting has been made in
+% language-specific options, regardless of their emptiness. In principle, we
+% could live with the situation of, once a setting has been made in
% \cs{l_@@_type_<type>_options_prop} or in \cs{l_@@_ref_options_prop} it stays
% there forever, and can only be overridden by a new value at the same
% precedence level or a higher one. But it would be nice if an user can
% ``unset'' an option at either of those scopes to go back to the lower
-% precedence level of the translations at any given point. So both in
-% \cs{zcRefTypeSetup} and in setting reference options (see
+% precedence level of the language-specific options at any given point. So
+% both in \cs{zcRefTypeSetup} and in setting reference options (see
% \zcref{sec:reference-options}), we leverage the distinction of an ``empty
% valued key'' (\texttt{key=} or \texttt{key=\{\}}) from a ``key with no
% value'' (\texttt{key}). This distinction is captured internally by the
@@ -2618,7 +2721,80 @@
% \url{https://tex.stackexchange.com/q/614690} and
% \url{https://github.com/latex3/latex3/pull/988}.
%
+%
% \begin{macrocode}
+\keys_define:nn { zref-clever / typesetup }
+ {
+ cap .code:n =
+ {
+ \tl_if_empty:nTF {#1}
+ {
+ \prop_remove:cn
+ {
+ l_@@_type_
+ \l_@@_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_@@_type_
+ \l_@@_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_@@_type_
+ \l_@@_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_@@_type_
+ \l_@@_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 ,
+ }
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
\seq_map_inline:Nn
\c_@@_ref_options_necessarily_not_type_specific_seq
{
@@ -2663,6 +2839,21 @@
} ,
}
}
+\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 }
+ } ,
+ }
% \end{macrocode}
%
%
@@ -2674,9 +2865,9 @@
% between the two cases is captured by the \texttt{type} key, which works as a
% sort of a ``switch''. Inside the \meta{options} argument of
% \cs{zcLanguageSetup}, any options made before the first \texttt{type} key
-% declare ``default'' (non type-specific) translations. When the
+% declare ``default'' (non type-specific) language options. When the
% \texttt{type} key is given with a value, the options following it will set
-% ``type-specific'' translations for that type. The current type can be
+% ``type-specific'' language options for that type. The current type can be
% switched off by an empty \texttt{type} key. \cs{zcLanguageSetup} is
% preamble only.
%
@@ -2689,32 +2880,32 @@
{
\group_begin:
\prop_get:NnNTF \g_@@_languages_prop {#1}
- \l_@@_dict_language_tl
+ \l_@@_base_language_tl
{
\tl_clear:N \l_@@_setup_type_tl
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_declension_seq
+ \l_@@_lang_declension_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ declension }
}
- \seq_if_empty:NTF \l_@@_dict_declension_seq
- { \tl_clear:N \l_@@_dict_decl_case_tl }
+ \seq_if_empty:NTF \l_@@_lang_declension_seq
+ { \tl_clear:N \l_@@_lang_decl_case_tl }
{
- \seq_get_left:NN \l_@@_dict_declension_seq
- \l_@@_dict_decl_case_tl
+ \seq_get_left:NN \l_@@_lang_declension_seq
+ \l_@@_lang_decl_case_tl
}
\exp_args:NNx \seq_set_from_clist:Nn
- \l_@@_dict_gender_seq
+ \l_@@_lang_gender_seq
{
\prop_item:cn
{
- g_@@_dict_
- \l_@@_dict_language_tl _prop
+ g_@@_lang_
+ \l_@@_base_language_tl _prop
}
{ gender }
}
@@ -2730,38 +2921,39 @@
%
% \begin{macro}
% {
-% \@@_declare_type_transl:nnnn ,
-% \@@_declare_default_transl:nnn ,
+% \@@_declare_lang_opt_type:nnnn ,
+% \@@_declare_lang_opt_default:nnn ,
% }
% A couple of auxiliary functions for the of
-% \texttt{{zref-clever/translation}} keys set in \cs{zcLanguageSetup}. They
+% \texttt{{zref-clever/langsetup}} keys set in \cs{zcLanguageSetup}. They
% respectively declare (unconditionally set) ``type-specific'' and
-% ``default'' translations.
+% ``default'' language-specific options.
% \begin{syntax}
-% \cs{@@_declare_type_transl:nnnn} \Arg{language} \Arg{type}
-% ~~\Arg{key} \Arg{translation}
-% \cs{@@_declare_default_transl:nnn} \Arg{language}
-% ~~\Arg{key} \Arg{translation}
+% \cs{@@_declare_lang_opt_type:nnnn} \Arg{language} \Arg{type}
+% ~~\Arg{key} \Arg{value}
+% \cs{@@_declare_lang_opt_default:nnn} \Arg{language}
+% ~~\Arg{key} \Arg{value}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_declare_type_transl:nnnn #1#2#3#4
+\cs_new_protected:Npn \@@_declare_lang_opt_type:nnnn #1#2#3#4
{
- \prop_gput:cnn { g_@@_dict_ #1 _prop }
+ \prop_gput:cnn { g_@@_lang_ #1 _prop }
{ type- #2 - #3 } {#4}
}
-\cs_generate_variant:Nn \@@_declare_type_transl:nnnn { VVnn , VVxn }
-\cs_new_protected:Npn \@@_declare_default_transl:nnn #1#2#3
+\cs_generate_variant:Nn
+ \@@_declare_lang_opt_type:nnnn { VVnn , VVxn , VVnx , VVnV }
+\cs_new_protected:Npn \@@_declare_lang_opt_default:nnn #1#2#3
{
- \prop_gput:cnn { g_@@_dict_ #1 _prop }
+ \prop_gput:cnn { g_@@_lang_ #1 _prop }
{ default- #2 } {#3}
}
-\cs_generate_variant:Nn \@@_declare_default_transl:nnn { Vnn }
+\cs_generate_variant:Nn \@@_declare_lang_opt_default:nnn { Vnn , VnV }
% \end{macrocode}
% \end{macro}
%
%
-% The set of keys for \texttt{{zref-clever/langsetup}}, which is used to
-% set language-specific translations in \cs{zcLanguageSetup}.
+% The set of keys for \texttt{{zref-clever/langsetup}}, which is used to set
+% language-specific options in \cs{zcLanguageSetup}.
%
% \begin{macrocode}
\keys_define:nn { zref-clever / langsetup }
@@ -2772,31 +2964,33 @@
{ \tl_clear:N \l_@@_setup_type_tl }
{ \tl_set:Nn \l_@@_setup_type_tl {#1} }
} ,
+
case .code:n =
{
- \seq_if_empty:NTF \l_@@_dict_declension_seq
+ \seq_if_empty:NTF \l_@@_lang_declension_seq
{
\msg_warning:nnxx { zref-clever } { language-no-decl-setup }
- { \l_@@_dict_language_tl } {#1}
+ { \l_@@_base_language_tl } {#1}
}
{
- \seq_if_in:NnTF \l_@@_dict_declension_seq {#1}
- { \tl_set:Nn \l_@@_dict_decl_case_tl {#1} }
+ \seq_if_in:NnTF \l_@@_lang_declension_seq {#1}
+ { \tl_set:Nn \l_@@_lang_decl_case_tl {#1} }
{
\msg_warning:nnxx { zref-clever } { unknown-decl-case }
- {#1} { \l_@@_dict_language_tl }
- \seq_get_left:NN \l_@@_dict_declension_seq
- \l_@@_dict_decl_case_tl
+ {#1} { \l_@@_base_language_tl }
+ \seq_get_left:NN \l_@@_lang_declension_seq
+ \l_@@_lang_decl_case_tl
}
}
} ,
case .value_required:n = true ,
+
gender .code:n =
{
- \seq_if_empty:NTF \l_@@_dict_gender_seq
+ \seq_if_empty:NTF \l_@@_lang_gender_seq
{
\msg_warning:nnxxx { zref-clever } { language-no-gender }
- { \l_@@_dict_language_tl } { gender } {#1}
+ { \l_@@_base_language_tl } { gender } {#1}
}
{
\tl_if_empty:NTF \l_@@_setup_type_tl
@@ -2805,21 +2999,68 @@
{ option-only-type-specific } { gender }
}
{
- \seq_if_in:NnTF \l_@@_dict_gender_seq {#1}
+ \clist_clear:N \l_tmpa_clist
+ \clist_map_inline:nn {#1}
{
- \@@_declare_type_transl:VVnn
- \l_@@_dict_language_tl
- \l_@@_setup_type_tl
- { gender } {#1}
+ \seq_if_in:NnTF \l_@@_lang_gender_seq {##1}
+ { \clist_put_right:Nn \l_tmpa_clist {##1} }
+ {
+ \msg_warning:nnxx { zref-clever }
+ { gender-not-declared }
+ { \l_@@_base_language_tl } {##1}
+ }
}
+ \clist_if_empty:NF \l_tmpa_clist
{
- \msg_warning:nnxx { zref-clever } { gender-not-declared }
- { \l_@@_dict_language_tl } {#1}
+ \@@_declare_lang_opt_type:VVnx
+ \l_@@_base_language_tl
+ \l_@@_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_@@_setup_type_tl
+ {
+ \@@_declare_lang_opt_default:VnV
+ \l_@@_base_language_tl
+ { cap } \l_keys_choice_tl
+ }
+ {
+ \@@_declare_lang_opt_type:VVnV
+ \l_@@_base_language_tl
+ \l_@@_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_@@_setup_type_tl
+ {
+ \@@_declare_lang_opt_default:VnV
+ \l_@@_base_language_tl
+ { abbrev } \l_keys_choice_tl
+ }
+ {
+ \@@_declare_lang_opt_type:VVnV
+ \l_@@_base_language_tl
+ \l_@@_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_@@_ref_options_necessarily_not_type_specific_seq
@@ -2831,8 +3072,8 @@
{
\tl_if_empty:NTF \l_@@_setup_type_tl
{
- \@@_declare_default_transl:Vnn
- \l_@@_dict_language_tl
+ \@@_declare_lang_opt_default:Vnn
+ \l_@@_base_language_tl
{#1} {##1}
}
{
@@ -2852,13 +3093,13 @@
{
\tl_if_empty:NTF \l_@@_setup_type_tl
{
- \@@_declare_default_transl:Vnn
- \l_@@_dict_language_tl
+ \@@_declare_lang_opt_default:Vnn
+ \l_@@_base_language_tl
{#1} {##1}
}
{
- \@@_declare_type_transl:VVnn
- \l_@@_dict_language_tl
+ \@@_declare_lang_opt_type:VVnn
+ \l_@@_base_language_tl
\l_@@_setup_type_tl
{#1} {##1}
}
@@ -2865,6 +3106,21 @@
} ,
}
}
+\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_@@_ref_options_type_names_seq
{
@@ -2879,18 +3135,18 @@
{ option-only-type-specific } {#1}
}
{
- \tl_if_empty:NTF \l_@@_dict_decl_case_tl
+ \tl_if_empty:NTF \l_@@_lang_decl_case_tl
{
- \@@_declare_type_transl:VVnn
- \l_@@_dict_language_tl
+ \@@_declare_lang_opt_type:VVnn
+ \l_@@_base_language_tl
\l_@@_setup_type_tl
{#1} {##1}
}
{
- \@@_declare_type_transl:VVxn
- \l_@@_dict_language_tl
+ \@@_declare_lang_opt_type:VVxn
+ \l_@@_base_language_tl
\l_@@_setup_type_tl
- { \l_@@_dict_decl_case_tl - #1 } {##1}
+ { \l_@@_lang_decl_case_tl - #1 } {##1}
}
}
} ,
@@ -2938,13 +3194,13 @@
\seq_set_from_clist:Nn \l_@@_zcref_labels_seq {#1}
\bool_set:Nn \l_@@_link_star_bool {#2}
% \end{macrocode}
-% Ensure dictionary for reference language is loaded, if available. We cannot
-% rely on \cs{keys_set:nn} for the task, since if the \opt{lang} option is set
-% for \texttt{current}, the actual language may have changed outside our
-% control. \cs{@@_provide_dictionary:x} does nothing if the dictionary is
-% already loaded.
+% Ensure language file for reference language is loaded, if available. We
+% cannot rely on \cs{keys_set:nn} for the task, since if the \opt{lang} option
+% is set for \texttt{current}, the actual language may have changed outside
+% our control. \cs{@@_provide_langfile:x} does nothing if the language file
+% is already loaded.
% \begin{macrocode}
- \@@_provide_dictionary:x { \l_@@_ref_language_tl }
+ \@@_provide_langfile:x { \l_@@_ref_language_tl }
% \end{macrocode}
% Process \cs{zcDeclareLanguage} options.
% \begin{macrocode}
@@ -2976,7 +3232,7 @@
% \begin{macrocode}
\tl_if_empty:NF \l_@@_zcref_note_tl
{
- \@@_get_ref_string:nN { notesep } \l_tmpa_tl
+ \@@_get_ref_opt_typeset:nN { notesep } \l_tmpa_tl
\l_tmpa_tl
\l_@@_zcref_note_tl
}
@@ -3175,7 +3431,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_label_type_put_new_right:n #1
{
- \@@_def_extract:Nnnn
+ \@@_extract_default:Nnnn
\l_@@_label_type_a_tl {#1} { zc at type } { \c_empty_tl }
\seq_if_in:NVF \l_@@_label_types_seq
\l_@@_label_type_a_tl
@@ -3201,9 +3457,9 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_sort_default:nn #1#2
{
- \@@_def_extract:Nnnn
+ \@@_extract_default:Nnnn
\l_@@_label_type_a_tl {#1} { zc at type } { zc at missingtype }
- \@@_def_extract:Nnnn
+ \@@_extract_default:Nnnn
\l_@@_label_type_b_tl {#2} { zc at type } { zc at missingtype }
\tl_if_eq:NNTF
@@ -3223,15 +3479,15 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_sort_default_same_type:nn #1#2
{
- \@@_def_extract:Nnnn \l_@@_label_enclval_a_tl
+ \@@_extract_default:Nnnn \l_@@_label_enclval_a_tl
{#1} { zc at enclval } { \c_empty_tl }
\tl_reverse:N \l_@@_label_enclval_a_tl
- \@@_def_extract:Nnnn \l_@@_label_enclval_b_tl
+ \@@_extract_default:Nnnn \l_@@_label_enclval_b_tl
{#2} { zc at enclval } { \c_empty_tl }
\tl_reverse:N \l_@@_label_enclval_b_tl
- \@@_def_extract:Nnnn \l_@@_label_extdoc_a_tl
+ \@@_extract_default:Nnnn \l_@@_label_extdoc_a_tl
{#1} { externaldocument } { \c_empty_tl }
- \@@_def_extract:Nnnn \l_@@_label_extdoc_b_tl
+ \@@_extract_default:Nnnn \l_@@_label_extdoc_b_tl
{#2} { externaldocument } { \c_empty_tl }
\bool_set_false:N \l_@@_sort_decided_bool
@@ -3638,13 +3894,15 @@
% \l_@@_listsep_tl ,
% \l_@@_lastsep_tl ,
% \l_@@_rangesep_tl ,
-% \l_@@_refpre_tl ,
-% \l_@@_refpos_tl ,
+% \l_@@_preref_tl ,
+% \l_@@_postref_tl ,
% \l_@@_namefont_tl ,
% \l_@@_reffont_tl ,
+% \l_@@_capitalize_bool ,
+% \l_@@_abbrev_bool ,
% }
-% Auxiliary variables for \cs{@@_typeset_refs:} separators, refpre/pos and
-% font options.
+% Auxiliary variables for \cs{@@_typeset_refs:} separators, pre-/postref and
+% font and other options.
% \begin{macrocode}
\tl_new:N \l_@@_tpairsep_tl
\tl_new:N \l_@@_tlistsep_tl
@@ -3654,10 +3912,12 @@
\tl_new:N \l_@@_listsep_tl
\tl_new:N \l_@@_lastsep_tl
\tl_new:N \l_@@_rangesep_tl
-\tl_new:N \l_@@_refpre_tl
-\tl_new:N \l_@@_refpos_tl
+\tl_new:N \l_@@_preref_tl
+\tl_new:N \l_@@_postref_tl
\tl_new:N \l_@@_namefont_tl
\tl_new:N \l_@@_reffont_tl
+\bool_new:N \l_@@_capitalize_bool
+\bool_new:N \l_@@_abbrev_bool
% \end{macrocode}
% \end{macro}
%
@@ -3692,11 +3952,11 @@
\int_zero:N \l_@@_range_same_count_int
% Get type block options (not type-specific).
- \@@_get_ref_string:nN { tpairsep }
+ \@@_get_ref_opt_typeset:nN { tpairsep }
\l_@@_tpairsep_tl
- \@@_get_ref_string:nN { tlistsep }
+ \@@_get_ref_opt_typeset:nN { tlistsep }
\l_@@_tlistsep_tl
- \@@_get_ref_string:nN { tlastsep }
+ \@@_get_ref_opt_typeset:nN { tlastsep }
\l_@@_tlastsep_tl
% Process label stack.
@@ -3721,9 +3981,11 @@
\tl_set:Nn \l_@@_label_type_b_tl { page }
}
{
- \@@_def_extract:NVnn \l_@@_label_type_a_tl
+ \@@_extract_default:NVnn
+ \l_@@_label_type_a_tl
\l_@@_label_a_tl { zc at type } { zc at missingtype }
- \@@_def_extract:NVnn \l_@@_label_type_b_tl
+ \@@_extract_default:NVnn
+ \l_@@_label_type_b_tl
\l_@@_label_b_tl { zc at type } { zc at missingtype }
}
@@ -3777,28 +4039,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_@@_label_count_int } = { 0 }
{
- \@@_get_ref_string:nN { namesep }
+ \@@_get_ref_opt_typeset:nN { namesep }
\l_@@_namesep_tl
- \@@_get_ref_string:nN { pairsep }
+ \@@_get_ref_opt_typeset:nN { pairsep }
\l_@@_pairsep_tl
- \@@_get_ref_string:nN { listsep }
+ \@@_get_ref_opt_typeset:nN { listsep }
\l_@@_listsep_tl
- \@@_get_ref_string:nN { lastsep }
+ \@@_get_ref_opt_typeset:nN { lastsep }
\l_@@_lastsep_tl
- \@@_get_ref_string:nN { rangesep }
+ \@@_get_ref_opt_typeset:nN { rangesep }
\l_@@_rangesep_tl
- \@@_get_ref_string:nN { refpre }
- \l_@@_refpre_tl
- \@@_get_ref_string:nN { refpos }
- \l_@@_refpos_tl
- \@@_get_ref_font:nN { namefont }
+ \@@_get_ref_opt_typeset:nN { preref }
+ \l_@@_preref_tl
+ \@@_get_ref_opt_typeset:nN { postref }
+ \l_@@_postref_tl
+ \@@_get_ref_opt_font:nN { namefont }
\l_@@_namefont_tl
- \@@_get_ref_font:nN { reffont }
+ \@@_get_ref_opt_font:nN { reffont }
\l_@@_reffont_tl
+ \@@_get_ref_opt_bool:nnN { cap } { false }
+ \l_@@_capitalize_bool
+ \@@_get_ref_opt_bool:nnN { abbrev } { false }
+ \l_@@_abbrev_bool
}
% Here we send this to a couple of auxiliary functions.
@@ -4348,7 +4614,7 @@
}
{
\bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpre_tl }
+ { \exp_not:V \l_@@_preref_tl }
% It's two `@s', but escaped for DocStrip.
\exp_not:N \hyper@@@@link
{ \@@_extract_url_unexp:n {#1} }
@@ -4355,7 +4621,7 @@
{ \@@_extract_unexp:nnn {#1} { anchor } { } }
{
\bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpre_tl }
+ { \exp_not:V \l_@@_preref_tl }
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
\@@_extract_unexp:nvn {#1}
@@ -4362,19 +4628,19 @@
{ l_@@_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
\bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
{
- \exp_not:V \l_@@_refpre_tl
+ \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
\@@_extract_unexp:nvn {#1}
{ l_@@_ref_property_tl } { }
\exp_not:N \group_end:
- \exp_not:V \l_@@_refpos_tl
+ \exp_not:V \l_@@_postref_tl
}
}
{ \@@_ref_default: }
@@ -4421,7 +4687,7 @@
\exp_not:V \l_@@_type_name_tl
\exp_not:N \group_end:
\exp_not:V \l_@@_namesep_tl
- \exp_not:V \l_@@_refpre_tl
+ \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
\@@_extract_unexp:Vvn
@@ -4429,10 +4695,10 @@
{ l_@@_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
\bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
{
\exp_not:N \group_begin:
@@ -4467,7 +4733,7 @@
}
{
\bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpre_tl }
+ { \exp_not:V \l_@@_preref_tl }
% It's two '@s', but escaped for DocStrip.
\exp_not:N \hyper@@@@link
{
@@ -4480,7 +4746,7 @@
}
{
\bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpre_tl }
+ { \exp_not:V \l_@@_preref_tl }
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
\@@_extract_unexp:Vvn
@@ -4488,13 +4754,13 @@
{ l_@@_ref_property_tl } { }
\exp_not:N \group_end:
\bool_if:NT \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
\bool_if:NF \l_@@_preposinlink_bool
- { \exp_not:V \l_@@_refpos_tl }
+ { \exp_not:V \l_@@_postref_tl }
}
{
- \exp_not:V \l_@@_refpre_tl
+ \exp_not:V \l_@@_preref_tl
\exp_not:N \group_begin:
\exp_not:V \l_@@_reffont_tl
\@@_extract_unexp:Vvn
@@ -4501,7 +4767,7 @@
\l_@@_type_first_label_tl
{ l_@@_ref_property_tl } { }
\exp_not:N \group_end:
- \exp_not:V \l_@@_refpos_tl
+ \exp_not:V \l_@@_postref_tl
}
}
{ \@@_ref_default: }
@@ -4594,15 +4860,17 @@
{ \l_@@_nudge_gender_bool }
{ ! \tl_if_empty_p:N \l_@@_ref_gender_tl }
{
- \@@_get_type_transl:xxnNF
+ \@@_get_lang_opt_type:xxnNF
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
{ gender }
\l_@@_type_name_gender_tl
{ \tl_clear:N \l_@@_type_name_gender_tl }
- \tl_if_eq:NNF
+ \clist_set:NV \l_tmpa_clist
+ \l_@@_type_name_gender_tl
+ \clist_if_in:NVF
+ \l_tmpa_clist
\l_@@_ref_gender_tl
- \l_@@_type_name_gender_tl
{
\tl_if_empty:NTF \l_@@_type_name_gender_tl
{
@@ -4640,7 +4908,7 @@
\tl_put_left:NV \l_@@_name_format_tl
\l_@@_ref_decl_case_tl
}
- \@@_get_type_transl:xxxNF
+ \@@_get_lang_opt_type:xxxNF
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
{ \l_@@_name_format_tl }
@@ -4682,13 +4950,13 @@
\l_@@_name_format_fallback_tl
\l_@@_ref_decl_case_tl
}
- \@@_get_type_transl:xxxNF
+ \@@_get_lang_opt_type:xxxNF
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
{ \l_@@_name_format_tl }
\l_@@_type_name_tl
{
- \@@_get_type_transl:xxxNF
+ \@@_get_lang_opt_type:xxxNF
{ \l_@@_ref_language_tl }
{ \l_@@_type_first_label_type_tl }
{ \l_@@_name_format_fallback_tl }
@@ -4776,9 +5044,9 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_labels_in_sequence:nn #1#2
{
- \@@_def_extract:Nnnn \l_@@_label_extdoc_a_tl
+ \@@_extract_default:Nnnn \l_@@_label_extdoc_a_tl
{#1} { externaldocument } { \c_empty_tl }
- \@@_def_extract:Nnnn \l_@@_label_extdoc_b_tl
+ \@@_extract_default:Nnnn \l_@@_label_extdoc_b_tl
{#2} { externaldocument } { \c_empty_tl }
\tl_if_eq:NNT
@@ -4855,27 +5123,28 @@
%
%
%
-% Finally, a couple of functions for retrieving options values, according to
-% the relevant precedence rules. They both receive an \meta{option} as
-% argument, and store the retrieved value in \meta{tl variable}. Though these
-% are mostly general functions (for a change\dots{}), they are not completely
-% so, they rely on the current state of \cs{l_@@_label_type_a_tl}, as set
-% during the processing of the label stack. This could be easily generalized,
-% of course, but I don't think it is worth it, \cs{l_@@_label_type_a_tl} is
-% indeed what we want in all practical cases. The difference between
-% \cs{@@_get_ref_string:nN} and \cs{@@_get_ref_font:nN} is the kind of option
-% each should be used for. \cs{@@_get_ref_string:nN} is meant for the general
-% options, and attempts to find values for them in all precedence levels (four
-% plus ``fallback''). \cs{@@_get_ref_font:nN} is intended for ``font''
+% Finally, some functions for retrieving reference options values, according
+% to the relevant precedence rules. They both receive an \meta{option} as
+% argument, and store the retrieved value in an appropriate. Though these are
+% mostly general functions (for a change\dots{}), they are not completely so,
+% they rely on the current state of \cs{l_@@_label_type_a_tl}, as set during
+% the processing of the label stack. This could be easily generalized, of
+% course, but I don't think it is worth it, \cs{l_@@_label_type_a_tl} is
+% indeed what we want in all practical cases. The difference between each of
+% these functions is the kind of option each should be used for.
+% \cs{@@_get_ref_opt_typeset:nN} is meant for the general options, and
+% attempts to find values for them in all precedence levels (four plus
+% ``fallback''). \cs{@@_get_ref_opt_font:nN} is intended for ``font''
% options, which cannot be ``language-specific'', thus for these we just
-% search general options and type options.
+% search general options and type options. \cs{@@_get_ref_opt_bool:nN} is
+% intended for boolean options.
%
-% \begin{macro}{\@@_get_ref_string:nN}
+% \begin{macro}{\@@_get_ref_opt_typeset:nN}
% \begin{syntax}
-% \cs{@@_get_ref_string:nN} \Arg{option} \Arg{tl variable}
+% \cs{@@_get_ref_opt_typeset:nN} \Arg{option} \Arg{tl variable}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_ref_string:nN #1#2
+\cs_new_protected:Npn \@@_get_ref_opt_typeset:nN #1#2
{
% First attempt: general options.
\prop_get:NnNF \l_@@_ref_options_prop {#1} #2
@@ -4906,19 +5175,19 @@
{#1} #2
}
{
- % If not found, try type specific translations.
- \@@_get_type_transl:xxnNF
+ % If not found, try type- and language-specific.
+ \@@_get_lang_opt_type:xxnNF
{ \l_@@_ref_language_tl }
{ \l_@@_label_type_a_tl }
{#1} #2
{
- % If not found, try default translations.
- \@@_get_default_transl:xnNF
+ % If not found, try language-specific default.
+ \@@_get_lang_opt_default:xnNF
{ \l_@@_ref_language_tl }
{#1} #2
{
% If not found, try fallback.
- \@@_get_fallback_transl:nNF {#1} #2
+ \@@_get_fallback_unknown_lang_opt:nNF {#1} #2
{
\tl_clear:N #2
\msg_warning:nnn { zref-clever }
@@ -4932,12 +5201,12 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_get_ref_font:nN}
+% \begin{macro}{\@@_get_ref_opt_font:nN}
% \begin{syntax}
-% \cs{@@_get_ref_font:nN} \Arg{option} \Arg{tl variable}
+% \cs{@@_get_ref_opt_font:nN} \Arg{option} \Arg{tl variable}
% \end{syntax}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_get_ref_font:nN #1#2
+\cs_new_protected:Npn \@@_get_ref_opt_font:nN #1#2
{
% First attempt: general options.
\prop_get:NnNF \l_@@_ref_options_prop {#1} #2
@@ -4967,7 +5236,75 @@
% \end{macro}
%
%
+% \begin{macro}{\@@_get_ref_opt_bool:nnN}
+% \begin{syntax}
+% \cs{@@_get_ref_opt_bool:nN} \Arg{option}
+% ~~\Arg{default} \Arg{bool variable}
+% \end{syntax}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_get_ref_opt_bool:nnN #1#2#3
+ {
+ % First attempt: general options.
+ \prop_get:NnNF \l_@@_ref_options_prop {#1} \l_tmpa_tl
+ {
+ % If not found, try type specific options.
+ \bool_lazy_and:nnTF
+ {
+ \prop_if_exist_p:c
+ {
+ l_@@_type_
+ \l_@@_label_type_a_tl _options_prop
+ }
+ }
+ {
+ \prop_if_in_p:cn
+ {
+ l_@@_type_
+ \l_@@_label_type_a_tl _options_prop
+ }
+ {#1}
+ }
+ {
+ \prop_get:cnN
+ {
+ l_@@_type_
+ \l_@@_label_type_a_tl _options_prop
+ }
+ {#1} \l_tmpa_tl
+ }
+ {
+ % If not found, try type- and language-specific.
+ \@@_get_lang_opt_type:xxnNF
+ { \l_@@_ref_language_tl }
+ { \l_@@_label_type_a_tl }
+ {#1} \l_tmpa_tl
+ {
+ % If not found, try language-specific default.
+ \@@_get_lang_opt_default:xnNF
+ { \l_@@_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
+ }
+% \end{macrocode}
+% \end{macro}
%
+%
% \section{Compatibility}
%
% This section is meant to aggregate any ``special handling'' needed for
@@ -5461,8 +5798,8 @@
\zcRefTypeSetup { equation }
{
reffont = \upshape ,
- refpre = {\textup{(}} ,
- refpos = {\textup{)}} ,
+ preref = {\textup{(}} ,
+ postref = {\textup{)}} ,
}
\msg_info:nnn { zref-clever } { compat-package } { amsmath }
}
@@ -5752,10 +6089,10 @@
%
%
%
-% \section{Dictionaries}
+% \section{Language files}
%
% Initial values for the English, German, French, Portuguese, and Spanish,
-% dictionaries have been provided by the author. Translations available for
+% language files have been provided by the author. Translations available for
% document elements' names in other packages have been an useful reference for
% the purpose, namely: \pkg{babel}, \pkg{cleveref}, \pkg{translator}, and
% \pkg{translations}.
@@ -5763,7 +6100,7 @@
%
% \subsection{English}
%
-% English dictionary has been initially provided by the author.
+% English language file has been initially provided by the author.
%
% \begin{macrocode}
%<*package>
@@ -5779,7 +6116,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*dict-english>
+%<*lang-english>
% \end{macrocode}
%
% \begin{macrocode}
@@ -5838,8 +6175,6 @@
name-sg = page ,
Name-pl = Pages ,
name-pl = pages ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
rangesep = {\textendash} ,
type = line ,
@@ -5897,8 +6232,8 @@
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
Name-sg = Theorem ,
@@ -5980,7 +6315,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</dict-english>
+%</lang-english>
% \end{macrocode}
%
%
@@ -5987,7 +6322,7 @@
%
% \subsection{German}
%
-% German dictionary has been initially provided by the author.
+% German language file has been initially provided by the author.
%
% \begin{macrocode}
%<*package>
@@ -6004,7 +6339,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*dict-german>
+%<*lang-german>
% \end{macrocode}
%
% \begin{macrocode}
@@ -6251,8 +6586,8 @@
case = G ,
Name-sg = Gleichung ,
Name-pl = Gleichungen ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = n ,
@@ -6451,7 +6786,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</dict-german>
+%</lang-german>
% \end{macrocode}
%
%
@@ -6458,11 +6793,11 @@
%
% \subsection{French}
%
-% French dictionary has been initially provided by the author, and has been
-% improved thanks to Denis Bitouzé (\githubissue{1}) and participants of the
-% Groupe francophone des Utilisateurs de \TeX{} (GUTenberg) (at
-% \url{https://groups.google.com/g/gut_fr/c/rNLm6weGcyg}) and the
-% \texttt{fr.comp.text.tex} (at
+% French language file has been initially provided by the author, and has been
+% improved thanks to Denis Bitouzé and François Lagarde (at \githubissue{1})
+% and participants of the Groupe francophone des Utilisateurs de \TeX{}
+% (GUTenberg) (at \url{https://groups.google.com/g/gut_fr/c/rNLm6weGcyg}) and
+% the \texttt{fr.comp.text.tex} (at
% \url{https://groups.google.com/g/fr.comp.text.tex/c/Fa11Tf6MFFs}) mailing
% lists.
%
@@ -6477,7 +6812,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*dict-french>
+%<*lang-french>
% \end{macrocode}
%
% \begin{macrocode}
@@ -6596,8 +6931,8 @@
name-sg = équation ,
Name-pl = Équations ,
name-pl = équations ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -6692,7 +7027,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</dict-french>
+%</lang-french>
% \end{macrocode}
%
%
@@ -6699,7 +7034,7 @@
%
% \subsection{Portuguese}
%
-% Portuguese dictionary provided by the author, who's a native speaker of
+% Portuguese language file provided by the author, who's a native speaker of
% (Brazilian) Portuguese. I do expect this to be sufficiently general, but if
% Portuguese speakers from other places feel the need for a Portuguese
% variant, please let me know.
@@ -6714,7 +7049,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*dict-portuguese>
+%<*lang-portuguese>
% \end{macrocode}
%
% \begin{macrocode}
@@ -6780,8 +7115,6 @@
name-sg = página ,
Name-pl = Páginas ,
name-pl = páginas ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
rangesep = {\textendash} ,
type = line ,
@@ -6847,8 +7180,8 @@
name-sg-ab = eq. ,
Name-pl-ab = Eqs. ,
name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -6943,7 +7276,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</dict-portuguese>
+%</lang-portuguese>
% \end{macrocode}
%
%
@@ -6950,7 +7283,7 @@
%
% \subsection{Spanish}
%
-% Spanish dictionary has been initially provided by the author.
+% Spanish language file has been initially provided by the author.
%
% \begin{macrocode}
%<*package>
@@ -6959,7 +7292,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-%<*dict-spanish>
+%<*lang-spanish>
% \end{macrocode}
%
% \begin{macrocode}
@@ -7078,8 +7411,8 @@
name-sg = ecuación ,
Name-pl = Ecuaciones ,
name-pl = ecuaciones ,
- refpre = {(} ,
- refpos = {)} ,
+ preref = {(} ,
+ postref = {)} ,
type = theorem ,
gender = m ,
@@ -7174,10 +7507,258 @@
% \end{macrocode}
%
% \begin{macrocode}
-%</dict-spanish>
+%</lang-spanish>
% \end{macrocode}
%
%
+%
+% \subsection{Dutch}
+%
+% Dutch language file initially contributed by \texttt{niluxv} (\githubPR{5}).
+% All genders were checked against the ``Dikke Van Dale''. Many words have
+% multiple genders.
+%
+% \begin{macrocode}
+%<*package>
+\zcDeclareLanguage [ gender = { f , m , n } ] { dutch }
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*lang-dutch>
+% \end{macrocode}
+%
+% \begin{macrocode}
+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 ,
+% \end{macrocode}
+%
+% 2022-01-09, \texttt{niluxv}: An alternative plural is ``lemmata''. That is
+% also a correct English plural for lemma, but the English language file
+% chooses ``lemmas''. For consistency we therefore choose ``lemma's''.
+%
+% \begin{macrocode}
+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 ,
+% \end{macrocode}
+%
+% 2022-01-09, \texttt{niluxv}: EN-NL Van Dale translates listing as (3)
+% ``uitdraai van computerprogramma'', ``listing''.
+%
+% \begin{macrocode}
+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{macrocode}
+%
+% \begin{macrocode}
+%</lang-dutch>
+% \end{macrocode}
+%
+%
% \PrintIndex
%
%
Modified: trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.ins 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/source/latex/zref-clever/zref-clever.ins 2022-01-11 22:01:01 UTC (rev 61572)
@@ -4,7 +4,7 @@
%
% This file is part 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
@@ -50,7 +50,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
@@ -90,10 +90,11 @@
\endpostamble
\generate{\file{zref-clever.sty}{\from{zref-clever.dtx}{package}}}
-\generate{\file{zref-clever-english.dict}{\from{zref-clever.dtx}{dict-english}}}
-\generate{\file{zref-clever-german.dict}{\from{zref-clever.dtx}{dict-german}}}
-\generate{\file{zref-clever-french.dict}{\from{zref-clever.dtx}{dict-french}}}
-\generate{\file{zref-clever-portuguese.dict}{\from{zref-clever.dtx}{dict-portuguese}}}
-\generate{\file{zref-clever-spanish.dict}{\from{zref-clever.dtx}{dict-spanish}}}
+\generate{\file{zref-clever-english.lang}{\from{zref-clever.dtx}{lang-english}}}
+\generate{\file{zref-clever-german.lang}{\from{zref-clever.dtx}{lang-german}}}
+\generate{\file{zref-clever-french.lang}{\from{zref-clever.dtx}{lang-french}}}
+\generate{\file{zref-clever-portuguese.lang}{\from{zref-clever.dtx}{lang-portuguese}}}
+\generate{\file{zref-clever-spanish.lang}{\from{zref-clever.dtx}{lang-spanish}}}
+\generate{\file{zref-clever-dutch.lang}{\from{zref-clever.dtx}{lang-dutch}}}
\endbatchfile
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-dutch.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -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'.
Deleted: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.dict 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,241 +0,0 @@
-%%
-%% This is file `zref-clever-english.dict',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zref-clever.dtx (with options: `dict-english')
-%%
-%% This file was generated from file(s) of the LaTeX package "zref-clever".
-%%
-%% Copyright (C) 2021 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 = {~and\nobreakspace} ,
-listsep = {,~} ,
-lastsep = {~and\nobreakspace} ,
-tpairsep = {~and\nobreakspace} ,
-tlistsep = {,~} ,
-tlastsep = {,~and\nobreakspace} ,
-notesep = {~} ,
-rangesep = {~to\nobreakspace} ,
-
-type = book ,
- Name-sg = Book ,
- name-sg = book ,
- Name-pl = Books ,
- name-pl = books ,
-
-type = part ,
- Name-sg = Part ,
- name-sg = part ,
- Name-pl = Parts ,
- name-pl = parts ,
-
-type = chapter ,
- Name-sg = Chapter ,
- name-sg = chapter ,
- Name-pl = Chapters ,
- name-pl = chapters ,
-
-type = section ,
- Name-sg = Section ,
- name-sg = section ,
- Name-pl = Sections ,
- name-pl = sections ,
-
-type = paragraph ,
- Name-sg = Paragraph ,
- name-sg = paragraph ,
- Name-pl = Paragraphs ,
- name-pl = paragraphs ,
- Name-sg-ab = Par. ,
- name-sg-ab = par. ,
- Name-pl-ab = Par. ,
- name-pl-ab = par. ,
-
-type = appendix ,
- Name-sg = Appendix ,
- name-sg = appendix ,
- Name-pl = Appendices ,
- name-pl = appendices ,
-
-type = page ,
- Name-sg = Page ,
- name-sg = page ,
- Name-pl = Pages ,
- name-pl = pages ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
- rangesep = {\textendash} ,
-
-type = line ,
- Name-sg = Line ,
- name-sg = line ,
- Name-pl = Lines ,
- name-pl = lines ,
-
-type = figure ,
- Name-sg = Figure ,
- name-sg = figure ,
- Name-pl = Figures ,
- name-pl = figures ,
- Name-sg-ab = Fig. ,
- name-sg-ab = fig. ,
- Name-pl-ab = Figs. ,
- name-pl-ab = figs. ,
-
-type = table ,
- Name-sg = Table ,
- name-sg = table ,
- Name-pl = Tables ,
- name-pl = tables ,
-
-type = item ,
- Name-sg = Item ,
- name-sg = item ,
- Name-pl = Items ,
- name-pl = items ,
-
-type = footnote ,
- Name-sg = Footnote ,
- name-sg = footnote ,
- Name-pl = Footnotes ,
- name-pl = footnotes ,
-
-type = endnote ,
- Name-sg = Note ,
- name-sg = note ,
- Name-pl = Notes ,
- name-pl = notes ,
-
-type = note ,
- Name-sg = Note ,
- name-sg = note ,
- Name-pl = Notes ,
- name-pl = notes ,
-
-type = equation ,
- Name-sg = Equation ,
- name-sg = equation ,
- Name-pl = Equations ,
- name-pl = equations ,
- Name-sg-ab = Eq. ,
- name-sg-ab = eq. ,
- Name-pl-ab = Eqs. ,
- name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
-
-type = theorem ,
- Name-sg = Theorem ,
- name-sg = theorem ,
- Name-pl = Theorems ,
- name-pl = theorems ,
-
-type = lemma ,
- Name-sg = Lemma ,
- name-sg = lemma ,
- Name-pl = Lemmas ,
- name-pl = lemmas ,
-
-type = corollary ,
- Name-sg = Corollary ,
- name-sg = corollary ,
- Name-pl = Corollaries ,
- name-pl = corollaries ,
-
-type = proposition ,
- Name-sg = Proposition ,
- name-sg = proposition ,
- Name-pl = Propositions ,
- name-pl = propositions ,
-
-type = definition ,
- Name-sg = Definition ,
- name-sg = definition ,
- Name-pl = Definitions ,
- name-pl = definitions ,
-
-type = proof ,
- Name-sg = Proof ,
- name-sg = proof ,
- Name-pl = Proofs ,
- name-pl = proofs ,
-
-type = result ,
- Name-sg = Result ,
- name-sg = result ,
- Name-pl = Results ,
- name-pl = results ,
-
-type = remark ,
- Name-sg = Remark ,
- name-sg = remark ,
- Name-pl = Remarks ,
- name-pl = remarks ,
-
-type = example ,
- Name-sg = Example ,
- name-sg = example ,
- Name-pl = Examples ,
- name-pl = examples ,
-
-type = algorithm ,
- Name-sg = Algorithm ,
- name-sg = algorithm ,
- Name-pl = Algorithms ,
- name-pl = algorithms ,
-
-type = listing ,
- Name-sg = Listing ,
- name-sg = listing ,
- Name-pl = Listings ,
- name-pl = listings ,
-
-type = exercise ,
- Name-sg = Exercise ,
- name-sg = exercise ,
- Name-pl = Exercises ,
- name-pl = exercises ,
-
-type = solution ,
- Name-sg = Solution ,
- name-sg = solution ,
- Name-pl = Solutions ,
- name-pl = solutions ,
-%%
-%%
-%% End of file `zref-clever-english.dict'.
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-english.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -0,0 +1,239 @@
+%%
+%% This is file `zref-clever-english.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-english')
+%%
+%% 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 = {~and\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~and\nobreakspace} ,
+tpairsep = {~and\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {,~and\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~to\nobreakspace} ,
+
+type = book ,
+ Name-sg = Book ,
+ name-sg = book ,
+ Name-pl = Books ,
+ name-pl = books ,
+
+type = part ,
+ Name-sg = Part ,
+ name-sg = part ,
+ Name-pl = Parts ,
+ name-pl = parts ,
+
+type = chapter ,
+ Name-sg = Chapter ,
+ name-sg = chapter ,
+ Name-pl = Chapters ,
+ name-pl = chapters ,
+
+type = section ,
+ Name-sg = Section ,
+ name-sg = section ,
+ Name-pl = Sections ,
+ name-pl = sections ,
+
+type = paragraph ,
+ Name-sg = Paragraph ,
+ name-sg = paragraph ,
+ Name-pl = Paragraphs ,
+ name-pl = paragraphs ,
+ Name-sg-ab = Par. ,
+ name-sg-ab = par. ,
+ Name-pl-ab = Par. ,
+ name-pl-ab = par. ,
+
+type = appendix ,
+ Name-sg = Appendix ,
+ name-sg = appendix ,
+ Name-pl = Appendices ,
+ name-pl = appendices ,
+
+type = page ,
+ Name-sg = Page ,
+ name-sg = page ,
+ Name-pl = Pages ,
+ name-pl = pages ,
+ rangesep = {\textendash} ,
+
+type = line ,
+ Name-sg = Line ,
+ name-sg = line ,
+ Name-pl = Lines ,
+ name-pl = lines ,
+
+type = figure ,
+ Name-sg = Figure ,
+ name-sg = figure ,
+ Name-pl = Figures ,
+ name-pl = figures ,
+ Name-sg-ab = Fig. ,
+ name-sg-ab = fig. ,
+ Name-pl-ab = Figs. ,
+ name-pl-ab = figs. ,
+
+type = table ,
+ Name-sg = Table ,
+ name-sg = table ,
+ Name-pl = Tables ,
+ name-pl = tables ,
+
+type = item ,
+ Name-sg = Item ,
+ name-sg = item ,
+ Name-pl = Items ,
+ name-pl = items ,
+
+type = footnote ,
+ Name-sg = Footnote ,
+ name-sg = footnote ,
+ Name-pl = Footnotes ,
+ name-pl = footnotes ,
+
+type = endnote ,
+ Name-sg = Note ,
+ name-sg = note ,
+ Name-pl = Notes ,
+ name-pl = notes ,
+
+type = note ,
+ Name-sg = Note ,
+ name-sg = note ,
+ Name-pl = Notes ,
+ name-pl = notes ,
+
+type = equation ,
+ Name-sg = Equation ,
+ name-sg = equation ,
+ Name-pl = Equations ,
+ name-pl = equations ,
+ Name-sg-ab = Eq. ,
+ name-sg-ab = eq. ,
+ Name-pl-ab = Eqs. ,
+ name-pl-ab = eqs. ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ Name-sg = Theorem ,
+ name-sg = theorem ,
+ Name-pl = Theorems ,
+ name-pl = theorems ,
+
+type = lemma ,
+ Name-sg = Lemma ,
+ name-sg = lemma ,
+ Name-pl = Lemmas ,
+ name-pl = lemmas ,
+
+type = corollary ,
+ Name-sg = Corollary ,
+ name-sg = corollary ,
+ Name-pl = Corollaries ,
+ name-pl = corollaries ,
+
+type = proposition ,
+ Name-sg = Proposition ,
+ name-sg = proposition ,
+ Name-pl = Propositions ,
+ name-pl = propositions ,
+
+type = definition ,
+ Name-sg = Definition ,
+ name-sg = definition ,
+ Name-pl = Definitions ,
+ name-pl = definitions ,
+
+type = proof ,
+ Name-sg = Proof ,
+ name-sg = proof ,
+ Name-pl = Proofs ,
+ name-pl = proofs ,
+
+type = result ,
+ Name-sg = Result ,
+ name-sg = result ,
+ Name-pl = Results ,
+ name-pl = results ,
+
+type = remark ,
+ Name-sg = Remark ,
+ name-sg = remark ,
+ Name-pl = Remarks ,
+ name-pl = remarks ,
+
+type = example ,
+ Name-sg = Example ,
+ name-sg = example ,
+ Name-pl = Examples ,
+ name-pl = examples ,
+
+type = algorithm ,
+ Name-sg = Algorithm ,
+ name-sg = algorithm ,
+ Name-pl = Algorithms ,
+ name-pl = algorithms ,
+
+type = listing ,
+ Name-sg = Listing ,
+ name-sg = listing ,
+ Name-pl = Listings ,
+ name-pl = listings ,
+
+type = exercise ,
+ Name-sg = Exercise ,
+ name-sg = exercise ,
+ Name-pl = Exercises ,
+ name-pl = exercises ,
+
+type = solution ,
+ Name-sg = Solution ,
+ name-sg = solution ,
+ Name-pl = Solutions ,
+ name-pl = solutions ,
+%%
+%%
+%% End of file `zref-clever-english.lang'.
Deleted: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.dict 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,255 +0,0 @@
-%%
-%% This is file `zref-clever-french.dict',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zref-clever.dtx (with options: `dict-french')
-%%
-%% This file was generated from file(s) of the LaTeX package "zref-clever".
-%%
-%% Copyright (C) 2021 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 = {~et\nobreakspace} ,
-listsep = {,~} ,
-lastsep = {~et\nobreakspace} ,
-tpairsep = {~et\nobreakspace} ,
-tlistsep = {,~} ,
-tlastsep = {~et\nobreakspace} ,
-notesep = {~} ,
-rangesep = {~à\nobreakspace} ,
-
-type = book ,
- gender = m ,
- Name-sg = Livre ,
- name-sg = livre ,
- Name-pl = Livres ,
- name-pl = livres ,
-
-type = part ,
- gender = f ,
- Name-sg = Partie ,
- name-sg = partie ,
- Name-pl = Parties ,
- name-pl = parties ,
-
-type = chapter ,
- gender = m ,
- Name-sg = Chapitre ,
- name-sg = chapitre ,
- Name-pl = Chapitres ,
- name-pl = chapitres ,
-
-type = section ,
- gender = f ,
- Name-sg = Section ,
- name-sg = section ,
- Name-pl = Sections ,
- name-pl = sections ,
-
-type = paragraph ,
- gender = m ,
- Name-sg = Paragraphe ,
- name-sg = paragraphe ,
- Name-pl = Paragraphes ,
- name-pl = paragraphes ,
-
-type = appendix ,
- gender = f ,
- Name-sg = Annexe ,
- name-sg = annexe ,
- Name-pl = Annexes ,
- name-pl = annexes ,
-
-type = page ,
- gender = f ,
- Name-sg = Page ,
- name-sg = page ,
- Name-pl = Pages ,
- name-pl = pages ,
- rangesep = {-} ,
-
-type = line ,
- gender = f ,
- Name-sg = Ligne ,
- name-sg = ligne ,
- Name-pl = Lignes ,
- name-pl = lignes ,
-
-type = figure ,
- gender = f ,
- Name-sg = Figure ,
- name-sg = figure ,
- Name-pl = Figures ,
- name-pl = figures ,
-
-type = table ,
- gender = f ,
- Name-sg = Table ,
- name-sg = table ,
- Name-pl = Tables ,
- name-pl = tables ,
-
-type = item ,
- gender = m ,
- Name-sg = Point ,
- name-sg = point ,
- Name-pl = Points ,
- name-pl = points ,
-
-type = footnote ,
- gender = f ,
- Name-sg = Note ,
- name-sg = note ,
- Name-pl = Notes ,
- name-pl = notes ,
-
-type = endnote ,
- gender = f ,
- Name-sg = Note ,
- name-sg = note ,
- Name-pl = Notes ,
- name-pl = notes ,
-
-type = note ,
- gender = f ,
- Name-sg = Note ,
- name-sg = note ,
- Name-pl = Notes ,
- name-pl = notes ,
-
-type = equation ,
- gender = f ,
- Name-sg = Équation ,
- name-sg = équation ,
- Name-pl = Équations ,
- name-pl = équations ,
- refpre = {(} ,
- refpos = {)} ,
-
-type = theorem ,
- gender = m ,
- Name-sg = Théorème ,
- name-sg = théorème ,
- Name-pl = Théorèmes ,
- name-pl = théorèmes ,
-
-type = lemma ,
- gender = m ,
- Name-sg = Lemme ,
- name-sg = lemme ,
- Name-pl = Lemmes ,
- name-pl = lemmes ,
-
-type = corollary ,
- gender = m ,
- Name-sg = Corollaire ,
- name-sg = corollaire ,
- Name-pl = Corollaires ,
- name-pl = corollaires ,
-
-type = proposition ,
- gender = f ,
- Name-sg = Proposition ,
- name-sg = proposition ,
- Name-pl = Propositions ,
- name-pl = propositions ,
-
-type = definition ,
- gender = f ,
- Name-sg = Définition ,
- name-sg = définition ,
- Name-pl = Définitions ,
- name-pl = définitions ,
-
-type = proof ,
- gender = f ,
- Name-sg = Démonstration ,
- name-sg = démonstration ,
- Name-pl = Démonstrations ,
- name-pl = démonstrations ,
-
-type = result ,
- gender = m ,
- Name-sg = Résultat ,
- name-sg = résultat ,
- Name-pl = Résultats ,
- name-pl = résultats ,
-
-type = remark ,
- gender = f ,
- Name-sg = Remarque ,
- name-sg = remarque ,
- Name-pl = Remarques ,
- name-pl = remarques ,
-
-type = example ,
- gender = m ,
- Name-sg = Exemple ,
- name-sg = exemple ,
- Name-pl = Exemples ,
- name-pl = exemples ,
-
-type = algorithm ,
- gender = m ,
- Name-sg = Algorithme ,
- name-sg = algorithme ,
- Name-pl = Algorithmes ,
- name-pl = algorithmes ,
-
-type = listing ,
- gender = m ,
- Name-sg = Listing ,
- name-sg = listing ,
- Name-pl = Listings ,
- name-pl = listings ,
-
-type = exercise ,
- gender = m ,
- Name-sg = Exercice ,
- name-sg = exercice ,
- Name-pl = Exercices ,
- name-pl = exercices ,
-
-type = solution ,
- gender = f ,
- Name-sg = Solution ,
- name-sg = solution ,
- Name-pl = Solutions ,
- name-pl = solutions ,
-%%
-%%
-%% End of file `zref-clever-french.dict'.
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-french.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -0,0 +1,255 @@
+%%
+%% This is file `zref-clever-french.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-french')
+%%
+%% 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 = {~et\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~et\nobreakspace} ,
+tpairsep = {~et\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {~et\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~à\nobreakspace} ,
+
+type = book ,
+ gender = m ,
+ Name-sg = Livre ,
+ name-sg = livre ,
+ Name-pl = Livres ,
+ name-pl = livres ,
+
+type = part ,
+ gender = f ,
+ Name-sg = Partie ,
+ name-sg = partie ,
+ Name-pl = Parties ,
+ name-pl = parties ,
+
+type = chapter ,
+ gender = m ,
+ Name-sg = Chapitre ,
+ name-sg = chapitre ,
+ Name-pl = Chapitres ,
+ name-pl = chapitres ,
+
+type = section ,
+ gender = f ,
+ Name-sg = Section ,
+ name-sg = section ,
+ Name-pl = Sections ,
+ name-pl = sections ,
+
+type = paragraph ,
+ gender = m ,
+ Name-sg = Paragraphe ,
+ name-sg = paragraphe ,
+ Name-pl = Paragraphes ,
+ name-pl = paragraphes ,
+
+type = appendix ,
+ gender = f ,
+ Name-sg = Annexe ,
+ name-sg = annexe ,
+ Name-pl = Annexes ,
+ name-pl = annexes ,
+
+type = page ,
+ gender = f ,
+ Name-sg = Page ,
+ name-sg = page ,
+ Name-pl = Pages ,
+ name-pl = pages ,
+ rangesep = {-} ,
+
+type = line ,
+ gender = f ,
+ Name-sg = Ligne ,
+ name-sg = ligne ,
+ Name-pl = Lignes ,
+ name-pl = lignes ,
+
+type = figure ,
+ gender = f ,
+ Name-sg = Figure ,
+ name-sg = figure ,
+ Name-pl = Figures ,
+ name-pl = figures ,
+
+type = table ,
+ gender = f ,
+ Name-sg = Table ,
+ name-sg = table ,
+ Name-pl = Tables ,
+ name-pl = tables ,
+
+type = item ,
+ gender = m ,
+ Name-sg = Point ,
+ name-sg = point ,
+ Name-pl = Points ,
+ name-pl = points ,
+
+type = footnote ,
+ gender = f ,
+ Name-sg = Note ,
+ name-sg = note ,
+ Name-pl = Notes ,
+ name-pl = notes ,
+
+type = endnote ,
+ gender = f ,
+ Name-sg = Note ,
+ name-sg = note ,
+ Name-pl = Notes ,
+ name-pl = notes ,
+
+type = note ,
+ gender = f ,
+ Name-sg = Note ,
+ name-sg = note ,
+ Name-pl = Notes ,
+ name-pl = notes ,
+
+type = equation ,
+ gender = f ,
+ Name-sg = Équation ,
+ name-sg = équation ,
+ Name-pl = Équations ,
+ name-pl = équations ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ gender = m ,
+ Name-sg = Théorème ,
+ name-sg = théorème ,
+ Name-pl = Théorèmes ,
+ name-pl = théorèmes ,
+
+type = lemma ,
+ gender = m ,
+ Name-sg = Lemme ,
+ name-sg = lemme ,
+ Name-pl = Lemmes ,
+ name-pl = lemmes ,
+
+type = corollary ,
+ gender = m ,
+ Name-sg = Corollaire ,
+ name-sg = corollaire ,
+ Name-pl = Corollaires ,
+ name-pl = corollaires ,
+
+type = proposition ,
+ gender = f ,
+ Name-sg = Proposition ,
+ name-sg = proposition ,
+ Name-pl = Propositions ,
+ name-pl = propositions ,
+
+type = definition ,
+ gender = f ,
+ Name-sg = Définition ,
+ name-sg = définition ,
+ Name-pl = Définitions ,
+ name-pl = définitions ,
+
+type = proof ,
+ gender = f ,
+ Name-sg = Démonstration ,
+ name-sg = démonstration ,
+ Name-pl = Démonstrations ,
+ name-pl = démonstrations ,
+
+type = result ,
+ gender = m ,
+ Name-sg = Résultat ,
+ name-sg = résultat ,
+ Name-pl = Résultats ,
+ name-pl = résultats ,
+
+type = remark ,
+ gender = f ,
+ Name-sg = Remarque ,
+ name-sg = remarque ,
+ Name-pl = Remarques ,
+ name-pl = remarques ,
+
+type = example ,
+ gender = m ,
+ Name-sg = Exemple ,
+ name-sg = exemple ,
+ Name-pl = Exemples ,
+ name-pl = exemples ,
+
+type = algorithm ,
+ gender = m ,
+ Name-sg = Algorithme ,
+ name-sg = algorithme ,
+ Name-pl = Algorithmes ,
+ name-pl = algorithmes ,
+
+type = listing ,
+ gender = m ,
+ Name-sg = Listing ,
+ name-sg = listing ,
+ Name-pl = Listings ,
+ name-pl = listings ,
+
+type = exercise ,
+ gender = m ,
+ Name-sg = Exercice ,
+ name-sg = exercice ,
+ Name-pl = Exercices ,
+ name-pl = exercices ,
+
+type = solution ,
+ gender = f ,
+ Name-sg = Solution ,
+ name-sg = solution ,
+ Name-pl = Solutions ,
+ name-pl = solutions ,
+%%
+%%
+%% End of file `zref-clever-french.lang'.
Deleted: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.dict 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,487 +0,0 @@
-%%
-%% This is file `zref-clever-german.dict',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zref-clever.dtx (with options: `dict-german')
-%%
-%% This file was generated from file(s) of the LaTeX package "zref-clever".
-%%
-%% Copyright (C) 2021 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 = {~und\nobreakspace} ,
-listsep = {,~} ,
-lastsep = {~und\nobreakspace} ,
-tpairsep = {~und\nobreakspace} ,
-tlistsep = {,~} ,
-tlastsep = {~und\nobreakspace} ,
-notesep = {~} ,
-rangesep = {~bis\nobreakspace} ,
-
-type = book ,
- gender = n ,
- case = N ,
- Name-sg = Buch ,
- Name-pl = Bücher ,
- case = A ,
- Name-sg = Buch ,
- Name-pl = Bücher ,
- case = D ,
- Name-sg = Buch ,
- Name-pl = Büchern ,
- case = G ,
- Name-sg = Buches ,
- Name-pl = Bücher ,
-
-type = part ,
- gender = m ,
- case = N ,
- Name-sg = Teil ,
- Name-pl = Teile ,
- case = A ,
- Name-sg = Teil ,
- Name-pl = Teile ,
- case = D ,
- Name-sg = Teil ,
- Name-pl = Teilen ,
- case = G ,
- Name-sg = Teiles ,
- Name-pl = Teile ,
-
-type = chapter ,
- gender = n ,
- case = N ,
- Name-sg = Kapitel ,
- Name-pl = Kapitel ,
- case = A ,
- Name-sg = Kapitel ,
- Name-pl = Kapitel ,
- case = D ,
- Name-sg = Kapitel ,
- Name-pl = Kapiteln ,
- case = G ,
- Name-sg = Kapitels ,
- Name-pl = Kapitel ,
-
-type = section ,
- gender = m ,
- case = N ,
- Name-sg = Abschnitt ,
- Name-pl = Abschnitte ,
- case = A ,
- Name-sg = Abschnitt ,
- Name-pl = Abschnitte ,
- case = D ,
- Name-sg = Abschnitt ,
- Name-pl = Abschnitten ,
- case = G ,
- Name-sg = Abschnitts ,
- Name-pl = Abschnitte ,
-
-type = paragraph ,
- gender = m ,
- case = N ,
- Name-sg = Absatz ,
- Name-pl = Absätze ,
- case = A ,
- Name-sg = Absatz ,
- Name-pl = Absätze ,
- case = D ,
- Name-sg = Absatz ,
- Name-pl = Absätzen ,
- case = G ,
- Name-sg = Absatzes ,
- Name-pl = Absätze ,
-
-type = appendix ,
- gender = m ,
- case = N ,
- Name-sg = Anhang ,
- Name-pl = Anhänge ,
- case = A ,
- Name-sg = Anhang ,
- Name-pl = Anhänge ,
- case = D ,
- Name-sg = Anhang ,
- Name-pl = Anhängen ,
- case = G ,
- Name-sg = Anhangs ,
- Name-pl = Anhänge ,
-
-type = page ,
- gender = f ,
- case = N ,
- Name-sg = Seite ,
- Name-pl = Seiten ,
- case = A ,
- Name-sg = Seite ,
- Name-pl = Seiten ,
- case = D ,
- Name-sg = Seite ,
- Name-pl = Seiten ,
- case = G ,
- Name-sg = Seite ,
- Name-pl = Seiten ,
- rangesep = {\textendash} ,
-
-type = line ,
- gender = f ,
- case = N ,
- Name-sg = Zeile ,
- Name-pl = Zeilen ,
- case = A ,
- Name-sg = Zeile ,
- Name-pl = Zeilen ,
- case = D ,
- Name-sg = Zeile ,
- Name-pl = Zeilen ,
- case = G ,
- Name-sg = Zeile ,
- Name-pl = Zeilen ,
-
-type = figure ,
- gender = f ,
- case = N ,
- Name-sg = Abbildung ,
- Name-pl = Abbildungen ,
- Name-sg-ab = Abb. ,
- Name-pl-ab = Abb. ,
- case = A ,
- Name-sg = Abbildung ,
- Name-pl = Abbildungen ,
- Name-sg-ab = Abb. ,
- Name-pl-ab = Abb. ,
- case = D ,
- Name-sg = Abbildung ,
- Name-pl = Abbildungen ,
- Name-sg-ab = Abb. ,
- Name-pl-ab = Abb. ,
- case = G ,
- Name-sg = Abbildung ,
- Name-pl = Abbildungen ,
- Name-sg-ab = Abb. ,
- Name-pl-ab = Abb. ,
-
-type = table ,
- gender = f ,
- case = N ,
- Name-sg = Tabelle ,
- Name-pl = Tabellen ,
- case = A ,
- Name-sg = Tabelle ,
- Name-pl = Tabellen ,
- case = D ,
- Name-sg = Tabelle ,
- Name-pl = Tabellen ,
- case = G ,
- Name-sg = Tabelle ,
- Name-pl = Tabellen ,
-
-type = item ,
- gender = m ,
- case = N ,
- Name-sg = Punkt ,
- Name-pl = Punkte ,
- case = A ,
- Name-sg = Punkt ,
- Name-pl = Punkte ,
- case = D ,
- Name-sg = Punkt ,
- Name-pl = Punkten ,
- case = G ,
- Name-sg = Punktes ,
- Name-pl = Punkte ,
-
-type = footnote ,
- gender = f ,
- case = N ,
- Name-sg = Fußnote ,
- Name-pl = Fußnoten ,
- case = A ,
- Name-sg = Fußnote ,
- Name-pl = Fußnoten ,
- case = D ,
- Name-sg = Fußnote ,
- Name-pl = Fußnoten ,
- case = G ,
- Name-sg = Fußnote ,
- Name-pl = Fußnoten ,
-
-type = endnote ,
- gender = f ,
- case = N ,
- Name-sg = Endnote ,
- Name-pl = Endnoten ,
- case = A ,
- Name-sg = Endnote ,
- Name-pl = Endnoten ,
- case = D ,
- Name-sg = Endnote ,
- Name-pl = Endnoten ,
- case = G ,
- Name-sg = Endnote ,
- Name-pl = Endnoten ,
-
-type = note ,
- gender = f ,
- case = N ,
- Name-sg = Anmerkung ,
- Name-pl = Anmerkungen ,
- case = A ,
- Name-sg = Anmerkung ,
- Name-pl = Anmerkungen ,
- case = D ,
- Name-sg = Anmerkung ,
- Name-pl = Anmerkungen ,
- case = G ,
- Name-sg = Anmerkung ,
- Name-pl = Anmerkungen ,
-
-type = equation ,
- gender = f ,
- case = N ,
- Name-sg = Gleichung ,
- Name-pl = Gleichungen ,
- case = A ,
- Name-sg = Gleichung ,
- Name-pl = Gleichungen ,
- case = D ,
- Name-sg = Gleichung ,
- Name-pl = Gleichungen ,
- case = G ,
- Name-sg = Gleichung ,
- Name-pl = Gleichungen ,
- refpre = {(} ,
- refpos = {)} ,
-
-type = theorem ,
- gender = n ,
- case = N ,
- Name-sg = Theorem ,
- Name-pl = Theoreme ,
- case = A ,
- Name-sg = Theorem ,
- Name-pl = Theoreme ,
- case = D ,
- Name-sg = Theorem ,
- Name-pl = Theoremen ,
- case = G ,
- Name-sg = Theorems ,
- Name-pl = Theoreme ,
-
-type = lemma ,
- gender = n ,
- case = N ,
- Name-sg = Lemma ,
- Name-pl = Lemmata ,
- case = A ,
- Name-sg = Lemma ,
- Name-pl = Lemmata ,
- case = D ,
- Name-sg = Lemma ,
- Name-pl = Lemmata ,
- case = G ,
- Name-sg = Lemmas ,
- Name-pl = Lemmata ,
-
-type = corollary ,
- gender = n ,
- case = N ,
- Name-sg = Korollar ,
- Name-pl = Korollare ,
- case = A ,
- Name-sg = Korollar ,
- Name-pl = Korollare ,
- case = D ,
- Name-sg = Korollar ,
- Name-pl = Korollaren ,
- case = G ,
- Name-sg = Korollars ,
- Name-pl = Korollare ,
-
-type = proposition ,
- gender = m ,
- case = N ,
- Name-sg = Satz ,
- Name-pl = Sätze ,
- case = A ,
- Name-sg = Satz ,
- Name-pl = Sätze ,
- case = D ,
- Name-sg = Satz ,
- Name-pl = Sätzen ,
- case = G ,
- Name-sg = Satzes ,
- Name-pl = Sätze ,
-
-type = definition ,
- gender = f ,
- case = N ,
- Name-sg = Definition ,
- Name-pl = Definitionen ,
- case = A ,
- Name-sg = Definition ,
- Name-pl = Definitionen ,
- case = D ,
- Name-sg = Definition ,
- Name-pl = Definitionen ,
- case = G ,
- Name-sg = Definition ,
- Name-pl = Definitionen ,
-
-type = proof ,
- gender = m ,
- case = N ,
- Name-sg = Beweis ,
- Name-pl = Beweise ,
- case = A ,
- Name-sg = Beweis ,
- Name-pl = Beweise ,
- case = D ,
- Name-sg = Beweis ,
- Name-pl = Beweisen ,
- case = G ,
- Name-sg = Beweises ,
- Name-pl = Beweise ,
-
-type = result ,
- gender = n ,
- case = N ,
- Name-sg = Ergebnis ,
- Name-pl = Ergebnisse ,
- case = A ,
- Name-sg = Ergebnis ,
- Name-pl = Ergebnisse ,
- case = D ,
- Name-sg = Ergebnis ,
- Name-pl = Ergebnissen ,
- case = G ,
- Name-sg = Ergebnisses ,
- Name-pl = Ergebnisse ,
-
-type = remark ,
- gender = f ,
- case = N ,
- Name-sg = Bemerkung ,
- Name-pl = Bemerkungen ,
- case = A ,
- Name-sg = Bemerkung ,
- Name-pl = Bemerkungen ,
- case = D ,
- Name-sg = Bemerkung ,
- Name-pl = Bemerkungen ,
- case = G ,
- Name-sg = Bemerkung ,
- Name-pl = Bemerkungen ,
-
-type = example ,
- gender = n ,
- case = N ,
- Name-sg = Beispiel ,
- Name-pl = Beispiele ,
- case = A ,
- Name-sg = Beispiel ,
- Name-pl = Beispiele ,
- case = D ,
- Name-sg = Beispiel ,
- Name-pl = Beispielen ,
- case = G ,
- Name-sg = Beispiels ,
- Name-pl = Beispiele ,
-
-type = algorithm ,
- gender = m ,
- case = N ,
- Name-sg = Algorithmus ,
- Name-pl = Algorithmen ,
- case = A ,
- Name-sg = Algorithmus ,
- Name-pl = Algorithmen ,
- case = D ,
- Name-sg = Algorithmus ,
- Name-pl = Algorithmen ,
- case = G ,
- Name-sg = Algorithmus ,
- Name-pl = Algorithmen ,
-
-type = listing ,
- gender = n ,
- case = N ,
- Name-sg = Listing ,
- Name-pl = Listings ,
- case = A ,
- Name-sg = Listing ,
- Name-pl = Listings ,
- case = D ,
- Name-sg = Listing ,
- Name-pl = Listings ,
- case = G ,
- Name-sg = Listings ,
- Name-pl = Listings ,
-
-type = exercise ,
- gender = f ,
- case = N ,
- Name-sg = Übungsaufgabe ,
- Name-pl = Übungsaufgaben ,
- case = A ,
- Name-sg = Übungsaufgabe ,
- Name-pl = Übungsaufgaben ,
- case = D ,
- Name-sg = Übungsaufgabe ,
- Name-pl = Übungsaufgaben ,
- case = G ,
- Name-sg = Übungsaufgabe ,
- Name-pl = Übungsaufgaben ,
-
-type = solution ,
- gender = f ,
- case = N ,
- Name-sg = Lösung ,
- Name-pl = Lösungen ,
- case = A ,
- Name-sg = Lösung ,
- Name-pl = Lösungen ,
- case = D ,
- Name-sg = Lösung ,
- Name-pl = Lösungen ,
- case = G ,
- Name-sg = Lösung ,
- Name-pl = Lösungen ,
-%%
-%%
-%% End of file `zref-clever-german.dict'.
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-german.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -0,0 +1,487 @@
+%%
+%% This is file `zref-clever-german.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-german')
+%%
+%% 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 = {~und\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~und\nobreakspace} ,
+tpairsep = {~und\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {~und\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~bis\nobreakspace} ,
+
+type = book ,
+ gender = n ,
+ case = N ,
+ Name-sg = Buch ,
+ Name-pl = Bücher ,
+ case = A ,
+ Name-sg = Buch ,
+ Name-pl = Bücher ,
+ case = D ,
+ Name-sg = Buch ,
+ Name-pl = Büchern ,
+ case = G ,
+ Name-sg = Buches ,
+ Name-pl = Bücher ,
+
+type = part ,
+ gender = m ,
+ case = N ,
+ Name-sg = Teil ,
+ Name-pl = Teile ,
+ case = A ,
+ Name-sg = Teil ,
+ Name-pl = Teile ,
+ case = D ,
+ Name-sg = Teil ,
+ Name-pl = Teilen ,
+ case = G ,
+ Name-sg = Teiles ,
+ Name-pl = Teile ,
+
+type = chapter ,
+ gender = n ,
+ case = N ,
+ Name-sg = Kapitel ,
+ Name-pl = Kapitel ,
+ case = A ,
+ Name-sg = Kapitel ,
+ Name-pl = Kapitel ,
+ case = D ,
+ Name-sg = Kapitel ,
+ Name-pl = Kapiteln ,
+ case = G ,
+ Name-sg = Kapitels ,
+ Name-pl = Kapitel ,
+
+type = section ,
+ gender = m ,
+ case = N ,
+ Name-sg = Abschnitt ,
+ Name-pl = Abschnitte ,
+ case = A ,
+ Name-sg = Abschnitt ,
+ Name-pl = Abschnitte ,
+ case = D ,
+ Name-sg = Abschnitt ,
+ Name-pl = Abschnitten ,
+ case = G ,
+ Name-sg = Abschnitts ,
+ Name-pl = Abschnitte ,
+
+type = paragraph ,
+ gender = m ,
+ case = N ,
+ Name-sg = Absatz ,
+ Name-pl = Absätze ,
+ case = A ,
+ Name-sg = Absatz ,
+ Name-pl = Absätze ,
+ case = D ,
+ Name-sg = Absatz ,
+ Name-pl = Absätzen ,
+ case = G ,
+ Name-sg = Absatzes ,
+ Name-pl = Absätze ,
+
+type = appendix ,
+ gender = m ,
+ case = N ,
+ Name-sg = Anhang ,
+ Name-pl = Anhänge ,
+ case = A ,
+ Name-sg = Anhang ,
+ Name-pl = Anhänge ,
+ case = D ,
+ Name-sg = Anhang ,
+ Name-pl = Anhängen ,
+ case = G ,
+ Name-sg = Anhangs ,
+ Name-pl = Anhänge ,
+
+type = page ,
+ gender = f ,
+ case = N ,
+ Name-sg = Seite ,
+ Name-pl = Seiten ,
+ case = A ,
+ Name-sg = Seite ,
+ Name-pl = Seiten ,
+ case = D ,
+ Name-sg = Seite ,
+ Name-pl = Seiten ,
+ case = G ,
+ Name-sg = Seite ,
+ Name-pl = Seiten ,
+ rangesep = {\textendash} ,
+
+type = line ,
+ gender = f ,
+ case = N ,
+ Name-sg = Zeile ,
+ Name-pl = Zeilen ,
+ case = A ,
+ Name-sg = Zeile ,
+ Name-pl = Zeilen ,
+ case = D ,
+ Name-sg = Zeile ,
+ Name-pl = Zeilen ,
+ case = G ,
+ Name-sg = Zeile ,
+ Name-pl = Zeilen ,
+
+type = figure ,
+ gender = f ,
+ case = N ,
+ Name-sg = Abbildung ,
+ Name-pl = Abbildungen ,
+ Name-sg-ab = Abb. ,
+ Name-pl-ab = Abb. ,
+ case = A ,
+ Name-sg = Abbildung ,
+ Name-pl = Abbildungen ,
+ Name-sg-ab = Abb. ,
+ Name-pl-ab = Abb. ,
+ case = D ,
+ Name-sg = Abbildung ,
+ Name-pl = Abbildungen ,
+ Name-sg-ab = Abb. ,
+ Name-pl-ab = Abb. ,
+ case = G ,
+ Name-sg = Abbildung ,
+ Name-pl = Abbildungen ,
+ Name-sg-ab = Abb. ,
+ Name-pl-ab = Abb. ,
+
+type = table ,
+ gender = f ,
+ case = N ,
+ Name-sg = Tabelle ,
+ Name-pl = Tabellen ,
+ case = A ,
+ Name-sg = Tabelle ,
+ Name-pl = Tabellen ,
+ case = D ,
+ Name-sg = Tabelle ,
+ Name-pl = Tabellen ,
+ case = G ,
+ Name-sg = Tabelle ,
+ Name-pl = Tabellen ,
+
+type = item ,
+ gender = m ,
+ case = N ,
+ Name-sg = Punkt ,
+ Name-pl = Punkte ,
+ case = A ,
+ Name-sg = Punkt ,
+ Name-pl = Punkte ,
+ case = D ,
+ Name-sg = Punkt ,
+ Name-pl = Punkten ,
+ case = G ,
+ Name-sg = Punktes ,
+ Name-pl = Punkte ,
+
+type = footnote ,
+ gender = f ,
+ case = N ,
+ Name-sg = Fußnote ,
+ Name-pl = Fußnoten ,
+ case = A ,
+ Name-sg = Fußnote ,
+ Name-pl = Fußnoten ,
+ case = D ,
+ Name-sg = Fußnote ,
+ Name-pl = Fußnoten ,
+ case = G ,
+ Name-sg = Fußnote ,
+ Name-pl = Fußnoten ,
+
+type = endnote ,
+ gender = f ,
+ case = N ,
+ Name-sg = Endnote ,
+ Name-pl = Endnoten ,
+ case = A ,
+ Name-sg = Endnote ,
+ Name-pl = Endnoten ,
+ case = D ,
+ Name-sg = Endnote ,
+ Name-pl = Endnoten ,
+ case = G ,
+ Name-sg = Endnote ,
+ Name-pl = Endnoten ,
+
+type = note ,
+ gender = f ,
+ case = N ,
+ Name-sg = Anmerkung ,
+ Name-pl = Anmerkungen ,
+ case = A ,
+ Name-sg = Anmerkung ,
+ Name-pl = Anmerkungen ,
+ case = D ,
+ Name-sg = Anmerkung ,
+ Name-pl = Anmerkungen ,
+ case = G ,
+ Name-sg = Anmerkung ,
+ Name-pl = Anmerkungen ,
+
+type = equation ,
+ gender = f ,
+ case = N ,
+ Name-sg = Gleichung ,
+ Name-pl = Gleichungen ,
+ case = A ,
+ Name-sg = Gleichung ,
+ Name-pl = Gleichungen ,
+ case = D ,
+ Name-sg = Gleichung ,
+ Name-pl = Gleichungen ,
+ case = G ,
+ Name-sg = Gleichung ,
+ Name-pl = Gleichungen ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ gender = n ,
+ case = N ,
+ Name-sg = Theorem ,
+ Name-pl = Theoreme ,
+ case = A ,
+ Name-sg = Theorem ,
+ Name-pl = Theoreme ,
+ case = D ,
+ Name-sg = Theorem ,
+ Name-pl = Theoremen ,
+ case = G ,
+ Name-sg = Theorems ,
+ Name-pl = Theoreme ,
+
+type = lemma ,
+ gender = n ,
+ case = N ,
+ Name-sg = Lemma ,
+ Name-pl = Lemmata ,
+ case = A ,
+ Name-sg = Lemma ,
+ Name-pl = Lemmata ,
+ case = D ,
+ Name-sg = Lemma ,
+ Name-pl = Lemmata ,
+ case = G ,
+ Name-sg = Lemmas ,
+ Name-pl = Lemmata ,
+
+type = corollary ,
+ gender = n ,
+ case = N ,
+ Name-sg = Korollar ,
+ Name-pl = Korollare ,
+ case = A ,
+ Name-sg = Korollar ,
+ Name-pl = Korollare ,
+ case = D ,
+ Name-sg = Korollar ,
+ Name-pl = Korollaren ,
+ case = G ,
+ Name-sg = Korollars ,
+ Name-pl = Korollare ,
+
+type = proposition ,
+ gender = m ,
+ case = N ,
+ Name-sg = Satz ,
+ Name-pl = Sätze ,
+ case = A ,
+ Name-sg = Satz ,
+ Name-pl = Sätze ,
+ case = D ,
+ Name-sg = Satz ,
+ Name-pl = Sätzen ,
+ case = G ,
+ Name-sg = Satzes ,
+ Name-pl = Sätze ,
+
+type = definition ,
+ gender = f ,
+ case = N ,
+ Name-sg = Definition ,
+ Name-pl = Definitionen ,
+ case = A ,
+ Name-sg = Definition ,
+ Name-pl = Definitionen ,
+ case = D ,
+ Name-sg = Definition ,
+ Name-pl = Definitionen ,
+ case = G ,
+ Name-sg = Definition ,
+ Name-pl = Definitionen ,
+
+type = proof ,
+ gender = m ,
+ case = N ,
+ Name-sg = Beweis ,
+ Name-pl = Beweise ,
+ case = A ,
+ Name-sg = Beweis ,
+ Name-pl = Beweise ,
+ case = D ,
+ Name-sg = Beweis ,
+ Name-pl = Beweisen ,
+ case = G ,
+ Name-sg = Beweises ,
+ Name-pl = Beweise ,
+
+type = result ,
+ gender = n ,
+ case = N ,
+ Name-sg = Ergebnis ,
+ Name-pl = Ergebnisse ,
+ case = A ,
+ Name-sg = Ergebnis ,
+ Name-pl = Ergebnisse ,
+ case = D ,
+ Name-sg = Ergebnis ,
+ Name-pl = Ergebnissen ,
+ case = G ,
+ Name-sg = Ergebnisses ,
+ Name-pl = Ergebnisse ,
+
+type = remark ,
+ gender = f ,
+ case = N ,
+ Name-sg = Bemerkung ,
+ Name-pl = Bemerkungen ,
+ case = A ,
+ Name-sg = Bemerkung ,
+ Name-pl = Bemerkungen ,
+ case = D ,
+ Name-sg = Bemerkung ,
+ Name-pl = Bemerkungen ,
+ case = G ,
+ Name-sg = Bemerkung ,
+ Name-pl = Bemerkungen ,
+
+type = example ,
+ gender = n ,
+ case = N ,
+ Name-sg = Beispiel ,
+ Name-pl = Beispiele ,
+ case = A ,
+ Name-sg = Beispiel ,
+ Name-pl = Beispiele ,
+ case = D ,
+ Name-sg = Beispiel ,
+ Name-pl = Beispielen ,
+ case = G ,
+ Name-sg = Beispiels ,
+ Name-pl = Beispiele ,
+
+type = algorithm ,
+ gender = m ,
+ case = N ,
+ Name-sg = Algorithmus ,
+ Name-pl = Algorithmen ,
+ case = A ,
+ Name-sg = Algorithmus ,
+ Name-pl = Algorithmen ,
+ case = D ,
+ Name-sg = Algorithmus ,
+ Name-pl = Algorithmen ,
+ case = G ,
+ Name-sg = Algorithmus ,
+ Name-pl = Algorithmen ,
+
+type = listing ,
+ gender = n ,
+ case = N ,
+ Name-sg = Listing ,
+ Name-pl = Listings ,
+ case = A ,
+ Name-sg = Listing ,
+ Name-pl = Listings ,
+ case = D ,
+ Name-sg = Listing ,
+ Name-pl = Listings ,
+ case = G ,
+ Name-sg = Listings ,
+ Name-pl = Listings ,
+
+type = exercise ,
+ gender = f ,
+ case = N ,
+ Name-sg = Übungsaufgabe ,
+ Name-pl = Übungsaufgaben ,
+ case = A ,
+ Name-sg = Übungsaufgabe ,
+ Name-pl = Übungsaufgaben ,
+ case = D ,
+ Name-sg = Übungsaufgabe ,
+ Name-pl = Übungsaufgaben ,
+ case = G ,
+ Name-sg = Übungsaufgabe ,
+ Name-pl = Übungsaufgaben ,
+
+type = solution ,
+ gender = f ,
+ case = N ,
+ Name-sg = Lösung ,
+ Name-pl = Lösungen ,
+ case = A ,
+ Name-sg = Lösung ,
+ Name-pl = Lösungen ,
+ case = D ,
+ Name-sg = Lösung ,
+ Name-pl = Lösungen ,
+ case = G ,
+ Name-sg = Lösung ,
+ Name-pl = Lösungen ,
+%%
+%%
+%% End of file `zref-clever-german.lang'.
Deleted: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.dict 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,269 +0,0 @@
-%%
-%% This is file `zref-clever-portuguese.dict',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zref-clever.dtx (with options: `dict-portuguese')
-%%
-%% This file was generated from file(s) of the LaTeX package "zref-clever".
-%%
-%% Copyright (C) 2021 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 = {~e\nobreakspace} ,
-listsep = {,~} ,
-lastsep = {~e\nobreakspace} ,
-tpairsep = {~e\nobreakspace} ,
-tlistsep = {,~} ,
-tlastsep = {~e\nobreakspace} ,
-notesep = {~} ,
-rangesep = {~a\nobreakspace} ,
-
-type = book ,
- gender = m ,
- Name-sg = Livro ,
- name-sg = livro ,
- Name-pl = Livros ,
- name-pl = livros ,
-
-type = part ,
- gender = f ,
- Name-sg = Parte ,
- name-sg = parte ,
- Name-pl = Partes ,
- name-pl = partes ,
-
-type = chapter ,
- gender = m ,
- Name-sg = Capítulo ,
- name-sg = capítulo ,
- Name-pl = Capítulos ,
- name-pl = capítulos ,
-
-type = section ,
- gender = f ,
- Name-sg = Seção ,
- name-sg = seção ,
- Name-pl = Seções ,
- name-pl = seções ,
-
-type = paragraph ,
- gender = m ,
- Name-sg = Parágrafo ,
- name-sg = parágrafo ,
- Name-pl = Parágrafos ,
- name-pl = parágrafos ,
- Name-sg-ab = Par. ,
- name-sg-ab = par. ,
- Name-pl-ab = Par. ,
- name-pl-ab = par. ,
-
-type = appendix ,
- gender = m ,
- Name-sg = Apêndice ,
- name-sg = apêndice ,
- Name-pl = Apêndices ,
- name-pl = apêndices ,
-
-type = page ,
- gender = f ,
- Name-sg = Página ,
- name-sg = página ,
- Name-pl = Páginas ,
- name-pl = páginas ,
- name-sg-ab = p. ,
- name-pl-ab = pp. ,
- rangesep = {\textendash} ,
-
-type = line ,
- gender = f ,
- Name-sg = Linha ,
- name-sg = linha ,
- Name-pl = Linhas ,
- name-pl = linhas ,
-
-type = figure ,
- gender = f ,
- Name-sg = Figura ,
- name-sg = figura ,
- Name-pl = Figuras ,
- name-pl = figuras ,
- Name-sg-ab = Fig. ,
- name-sg-ab = fig. ,
- Name-pl-ab = Figs. ,
- name-pl-ab = figs. ,
-
-type = table ,
- gender = f ,
- Name-sg = Tabela ,
- name-sg = tabela ,
- Name-pl = Tabelas ,
- name-pl = tabelas ,
-
-type = item ,
- gender = m ,
- Name-sg = Item ,
- name-sg = item ,
- Name-pl = Itens ,
- name-pl = itens ,
-
-type = footnote ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = endnote ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = note ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = equation ,
- gender = f ,
- Name-sg = Equação ,
- name-sg = equação ,
- Name-pl = Equações ,
- name-pl = equações ,
- Name-sg-ab = Eq. ,
- name-sg-ab = eq. ,
- Name-pl-ab = Eqs. ,
- name-pl-ab = eqs. ,
- refpre = {(} ,
- refpos = {)} ,
-
-type = theorem ,
- gender = m ,
- Name-sg = Teorema ,
- name-sg = teorema ,
- Name-pl = Teoremas ,
- name-pl = teoremas ,
-
-type = lemma ,
- gender = m ,
- Name-sg = Lema ,
- name-sg = lema ,
- Name-pl = Lemas ,
- name-pl = lemas ,
-
-type = corollary ,
- gender = m ,
- Name-sg = Corolário ,
- name-sg = corolário ,
- Name-pl = Corolários ,
- name-pl = corolários ,
-
-type = proposition ,
- gender = f ,
- Name-sg = Proposição ,
- name-sg = proposição ,
- Name-pl = Proposições ,
- name-pl = proposições ,
-
-type = definition ,
- gender = f ,
- Name-sg = Definição ,
- name-sg = definição ,
- Name-pl = Definições ,
- name-pl = definições ,
-
-type = proof ,
- gender = f ,
- Name-sg = Demonstração ,
- name-sg = demonstração ,
- Name-pl = Demonstrações ,
- name-pl = demonstrações ,
-
-type = result ,
- gender = m ,
- Name-sg = Resultado ,
- name-sg = resultado ,
- Name-pl = Resultados ,
- name-pl = resultados ,
-
-type = remark ,
- gender = f ,
- Name-sg = Observação ,
- name-sg = observação ,
- Name-pl = Observações ,
- name-pl = observações ,
-
-type = example ,
- gender = m ,
- Name-sg = Exemplo ,
- name-sg = exemplo ,
- Name-pl = Exemplos ,
- name-pl = exemplos ,
-
-type = algorithm ,
- gender = m ,
- Name-sg = Algoritmo ,
- name-sg = algoritmo ,
- Name-pl = Algoritmos ,
- name-pl = algoritmos ,
-
-type = listing ,
- gender = f ,
- Name-sg = Listagem ,
- name-sg = listagem ,
- Name-pl = Listagens ,
- name-pl = listagens ,
-
-type = exercise ,
- gender = m ,
- Name-sg = Exercício ,
- name-sg = exercício ,
- Name-pl = Exercícios ,
- name-pl = exercícios ,
-
-type = solution ,
- gender = f ,
- Name-sg = Solução ,
- name-sg = solução ,
- Name-pl = Soluções ,
- name-pl = soluções ,
-%%
-%%
-%% End of file `zref-clever-portuguese.dict'.
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-portuguese.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -0,0 +1,267 @@
+%%
+%% This is file `zref-clever-portuguese.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-portuguese')
+%%
+%% 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 = {~e\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~e\nobreakspace} ,
+tpairsep = {~e\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {~e\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~a\nobreakspace} ,
+
+type = book ,
+ gender = m ,
+ Name-sg = Livro ,
+ name-sg = livro ,
+ Name-pl = Livros ,
+ name-pl = livros ,
+
+type = part ,
+ gender = f ,
+ Name-sg = Parte ,
+ name-sg = parte ,
+ Name-pl = Partes ,
+ name-pl = partes ,
+
+type = chapter ,
+ gender = m ,
+ Name-sg = Capítulo ,
+ name-sg = capítulo ,
+ Name-pl = Capítulos ,
+ name-pl = capítulos ,
+
+type = section ,
+ gender = f ,
+ Name-sg = Seção ,
+ name-sg = seção ,
+ Name-pl = Seções ,
+ name-pl = seções ,
+
+type = paragraph ,
+ gender = m ,
+ Name-sg = Parágrafo ,
+ name-sg = parágrafo ,
+ Name-pl = Parágrafos ,
+ name-pl = parágrafos ,
+ Name-sg-ab = Par. ,
+ name-sg-ab = par. ,
+ Name-pl-ab = Par. ,
+ name-pl-ab = par. ,
+
+type = appendix ,
+ gender = m ,
+ Name-sg = Apêndice ,
+ name-sg = apêndice ,
+ Name-pl = Apêndices ,
+ name-pl = apêndices ,
+
+type = page ,
+ gender = f ,
+ Name-sg = Página ,
+ name-sg = página ,
+ Name-pl = Páginas ,
+ name-pl = páginas ,
+ rangesep = {\textendash} ,
+
+type = line ,
+ gender = f ,
+ Name-sg = Linha ,
+ name-sg = linha ,
+ Name-pl = Linhas ,
+ name-pl = linhas ,
+
+type = figure ,
+ gender = f ,
+ Name-sg = Figura ,
+ name-sg = figura ,
+ Name-pl = Figuras ,
+ name-pl = figuras ,
+ Name-sg-ab = Fig. ,
+ name-sg-ab = fig. ,
+ Name-pl-ab = Figs. ,
+ name-pl-ab = figs. ,
+
+type = table ,
+ gender = f ,
+ Name-sg = Tabela ,
+ name-sg = tabela ,
+ Name-pl = Tabelas ,
+ name-pl = tabelas ,
+
+type = item ,
+ gender = m ,
+ Name-sg = Item ,
+ name-sg = item ,
+ Name-pl = Itens ,
+ name-pl = itens ,
+
+type = footnote ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = endnote ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = note ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = equation ,
+ gender = f ,
+ Name-sg = Equação ,
+ name-sg = equação ,
+ Name-pl = Equações ,
+ name-pl = equações ,
+ Name-sg-ab = Eq. ,
+ name-sg-ab = eq. ,
+ Name-pl-ab = Eqs. ,
+ name-pl-ab = eqs. ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ gender = m ,
+ Name-sg = Teorema ,
+ name-sg = teorema ,
+ Name-pl = Teoremas ,
+ name-pl = teoremas ,
+
+type = lemma ,
+ gender = m ,
+ Name-sg = Lema ,
+ name-sg = lema ,
+ Name-pl = Lemas ,
+ name-pl = lemas ,
+
+type = corollary ,
+ gender = m ,
+ Name-sg = Corolário ,
+ name-sg = corolário ,
+ Name-pl = Corolários ,
+ name-pl = corolários ,
+
+type = proposition ,
+ gender = f ,
+ Name-sg = Proposição ,
+ name-sg = proposição ,
+ Name-pl = Proposições ,
+ name-pl = proposições ,
+
+type = definition ,
+ gender = f ,
+ Name-sg = Definição ,
+ name-sg = definição ,
+ Name-pl = Definições ,
+ name-pl = definições ,
+
+type = proof ,
+ gender = f ,
+ Name-sg = Demonstração ,
+ name-sg = demonstração ,
+ Name-pl = Demonstrações ,
+ name-pl = demonstrações ,
+
+type = result ,
+ gender = m ,
+ Name-sg = Resultado ,
+ name-sg = resultado ,
+ Name-pl = Resultados ,
+ name-pl = resultados ,
+
+type = remark ,
+ gender = f ,
+ Name-sg = Observação ,
+ name-sg = observação ,
+ Name-pl = Observações ,
+ name-pl = observações ,
+
+type = example ,
+ gender = m ,
+ Name-sg = Exemplo ,
+ name-sg = exemplo ,
+ Name-pl = Exemplos ,
+ name-pl = exemplos ,
+
+type = algorithm ,
+ gender = m ,
+ Name-sg = Algoritmo ,
+ name-sg = algoritmo ,
+ Name-pl = Algoritmos ,
+ name-pl = algoritmos ,
+
+type = listing ,
+ gender = f ,
+ Name-sg = Listagem ,
+ name-sg = listagem ,
+ Name-pl = Listagens ,
+ name-pl = listagens ,
+
+type = exercise ,
+ gender = m ,
+ Name-sg = Exercício ,
+ name-sg = exercício ,
+ Name-pl = Exercícios ,
+ name-pl = exercícios ,
+
+type = solution ,
+ gender = f ,
+ Name-sg = Solução ,
+ name-sg = solução ,
+ Name-pl = Soluções ,
+ name-pl = soluções ,
+%%
+%%
+%% End of file `zref-clever-portuguese.lang'.
Deleted: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.dict 2022-01-11 22:01:01 UTC (rev 61572)
@@ -1,255 +0,0 @@
-%%
-%% This is file `zref-clever-spanish.dict',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% zref-clever.dtx (with options: `dict-spanish')
-%%
-%% This file was generated from file(s) of the LaTeX package "zref-clever".
-%%
-%% Copyright (C) 2021 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 = {~y\nobreakspace} ,
-listsep = {,~} ,
-lastsep = {~y\nobreakspace} ,
-tpairsep = {~y\nobreakspace} ,
-tlistsep = {,~} ,
-tlastsep = {~y\nobreakspace} ,
-notesep = {~} ,
-rangesep = {~a\nobreakspace} ,
-
-type = book ,
- gender = m ,
- Name-sg = Libro ,
- name-sg = libro ,
- Name-pl = Libros ,
- name-pl = libros ,
-
-type = part ,
- gender = f ,
- Name-sg = Parte ,
- name-sg = parte ,
- Name-pl = Partes ,
- name-pl = partes ,
-
-type = chapter ,
- gender = m ,
- Name-sg = Capítulo ,
- name-sg = capítulo ,
- Name-pl = Capítulos ,
- name-pl = capítulos ,
-
-type = section ,
- gender = f ,
- Name-sg = Sección ,
- name-sg = sección ,
- Name-pl = Secciones ,
- name-pl = secciones ,
-
-type = paragraph ,
- gender = m ,
- Name-sg = Párrafo ,
- name-sg = párrafo ,
- Name-pl = Párrafos ,
- name-pl = párrafos ,
-
-type = appendix ,
- gender = m ,
- Name-sg = Apéndice ,
- name-sg = apéndice ,
- Name-pl = Apéndices ,
- name-pl = apéndices ,
-
-type = page ,
- gender = f ,
- Name-sg = Página ,
- name-sg = página ,
- Name-pl = Páginas ,
- name-pl = páginas ,
- rangesep = {\textendash} ,
-
-type = line ,
- gender = f ,
- Name-sg = Línea ,
- name-sg = línea ,
- Name-pl = Líneas ,
- name-pl = líneas ,
-
-type = figure ,
- gender = f ,
- Name-sg = Figura ,
- name-sg = figura ,
- Name-pl = Figuras ,
- name-pl = figuras ,
-
-type = table ,
- gender = m ,
- Name-sg = Cuadro ,
- name-sg = cuadro ,
- Name-pl = Cuadros ,
- name-pl = cuadros ,
-
-type = item ,
- gender = m ,
- Name-sg = Punto ,
- name-sg = punto ,
- Name-pl = Puntos ,
- name-pl = puntos ,
-
-type = footnote ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = endnote ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = note ,
- gender = f ,
- Name-sg = Nota ,
- name-sg = nota ,
- Name-pl = Notas ,
- name-pl = notas ,
-
-type = equation ,
- gender = f ,
- Name-sg = Ecuación ,
- name-sg = ecuación ,
- Name-pl = Ecuaciones ,
- name-pl = ecuaciones ,
- refpre = {(} ,
- refpos = {)} ,
-
-type = theorem ,
- gender = m ,
- Name-sg = Teorema ,
- name-sg = teorema ,
- Name-pl = Teoremas ,
- name-pl = teoremas ,
-
-type = lemma ,
- gender = m ,
- Name-sg = Lema ,
- name-sg = lema ,
- Name-pl = Lemas ,
- name-pl = lemas ,
-
-type = corollary ,
- gender = m ,
- Name-sg = Corolario ,
- name-sg = corolario ,
- Name-pl = Corolarios ,
- name-pl = corolarios ,
-
-type = proposition ,
- gender = f ,
- Name-sg = Proposición ,
- name-sg = proposición ,
- Name-pl = Proposiciones ,
- name-pl = proposiciones ,
-
-type = definition ,
- gender = f ,
- Name-sg = Definición ,
- name-sg = definición ,
- Name-pl = Definiciones ,
- name-pl = definiciones ,
-
-type = proof ,
- gender = f ,
- Name-sg = Demostración ,
- name-sg = demostración ,
- Name-pl = Demostraciones ,
- name-pl = demostraciones ,
-
-type = result ,
- gender = m ,
- Name-sg = Resultado ,
- name-sg = resultado ,
- Name-pl = Resultados ,
- name-pl = resultados ,
-
-type = remark ,
- gender = f ,
- Name-sg = Observación ,
- name-sg = observación ,
- Name-pl = Observaciones ,
- name-pl = observaciones ,
-
-type = example ,
- gender = m ,
- Name-sg = Ejemplo ,
- name-sg = ejemplo ,
- Name-pl = Ejemplos ,
- name-pl = ejemplos ,
-
-type = algorithm ,
- gender = m ,
- Name-sg = Algoritmo ,
- name-sg = algoritmo ,
- Name-pl = Algoritmos ,
- name-pl = algoritmos ,
-
-type = listing ,
- gender = m ,
- Name-sg = Listado ,
- name-sg = listado ,
- Name-pl = Listados ,
- name-pl = listados ,
-
-type = exercise ,
- gender = m ,
- Name-sg = Ejercicio ,
- name-sg = ejercicio ,
- Name-pl = Ejercicios ,
- name-pl = ejercicios ,
-
-type = solution ,
- gender = f ,
- Name-sg = Solución ,
- name-sg = solución ,
- Name-pl = Soluciones ,
- name-pl = soluciones ,
-%%
-%%
-%% End of file `zref-clever-spanish.dict'.
Added: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever-spanish.lang 2022-01-11 22:01:01 UTC (rev 61572)
@@ -0,0 +1,255 @@
+%%
+%% This is file `zref-clever-spanish.lang',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% zref-clever.dtx (with options: `lang-spanish')
+%%
+%% 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 = {~y\nobreakspace} ,
+listsep = {,~} ,
+lastsep = {~y\nobreakspace} ,
+tpairsep = {~y\nobreakspace} ,
+tlistsep = {,~} ,
+tlastsep = {~y\nobreakspace} ,
+notesep = {~} ,
+rangesep = {~a\nobreakspace} ,
+
+type = book ,
+ gender = m ,
+ Name-sg = Libro ,
+ name-sg = libro ,
+ Name-pl = Libros ,
+ name-pl = libros ,
+
+type = part ,
+ gender = f ,
+ Name-sg = Parte ,
+ name-sg = parte ,
+ Name-pl = Partes ,
+ name-pl = partes ,
+
+type = chapter ,
+ gender = m ,
+ Name-sg = Capítulo ,
+ name-sg = capítulo ,
+ Name-pl = Capítulos ,
+ name-pl = capítulos ,
+
+type = section ,
+ gender = f ,
+ Name-sg = Sección ,
+ name-sg = sección ,
+ Name-pl = Secciones ,
+ name-pl = secciones ,
+
+type = paragraph ,
+ gender = m ,
+ Name-sg = Párrafo ,
+ name-sg = párrafo ,
+ Name-pl = Párrafos ,
+ name-pl = párrafos ,
+
+type = appendix ,
+ gender = m ,
+ Name-sg = Apéndice ,
+ name-sg = apéndice ,
+ Name-pl = Apéndices ,
+ name-pl = apéndices ,
+
+type = page ,
+ gender = f ,
+ Name-sg = Página ,
+ name-sg = página ,
+ Name-pl = Páginas ,
+ name-pl = páginas ,
+ rangesep = {\textendash} ,
+
+type = line ,
+ gender = f ,
+ Name-sg = Línea ,
+ name-sg = línea ,
+ Name-pl = Líneas ,
+ name-pl = líneas ,
+
+type = figure ,
+ gender = f ,
+ Name-sg = Figura ,
+ name-sg = figura ,
+ Name-pl = Figuras ,
+ name-pl = figuras ,
+
+type = table ,
+ gender = m ,
+ Name-sg = Cuadro ,
+ name-sg = cuadro ,
+ Name-pl = Cuadros ,
+ name-pl = cuadros ,
+
+type = item ,
+ gender = m ,
+ Name-sg = Punto ,
+ name-sg = punto ,
+ Name-pl = Puntos ,
+ name-pl = puntos ,
+
+type = footnote ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = endnote ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = note ,
+ gender = f ,
+ Name-sg = Nota ,
+ name-sg = nota ,
+ Name-pl = Notas ,
+ name-pl = notas ,
+
+type = equation ,
+ gender = f ,
+ Name-sg = Ecuación ,
+ name-sg = ecuación ,
+ Name-pl = Ecuaciones ,
+ name-pl = ecuaciones ,
+ preref = {(} ,
+ postref = {)} ,
+
+type = theorem ,
+ gender = m ,
+ Name-sg = Teorema ,
+ name-sg = teorema ,
+ Name-pl = Teoremas ,
+ name-pl = teoremas ,
+
+type = lemma ,
+ gender = m ,
+ Name-sg = Lema ,
+ name-sg = lema ,
+ Name-pl = Lemas ,
+ name-pl = lemas ,
+
+type = corollary ,
+ gender = m ,
+ Name-sg = Corolario ,
+ name-sg = corolario ,
+ Name-pl = Corolarios ,
+ name-pl = corolarios ,
+
+type = proposition ,
+ gender = f ,
+ Name-sg = Proposición ,
+ name-sg = proposición ,
+ Name-pl = Proposiciones ,
+ name-pl = proposiciones ,
+
+type = definition ,
+ gender = f ,
+ Name-sg = Definición ,
+ name-sg = definición ,
+ Name-pl = Definiciones ,
+ name-pl = definiciones ,
+
+type = proof ,
+ gender = f ,
+ Name-sg = Demostración ,
+ name-sg = demostración ,
+ Name-pl = Demostraciones ,
+ name-pl = demostraciones ,
+
+type = result ,
+ gender = m ,
+ Name-sg = Resultado ,
+ name-sg = resultado ,
+ Name-pl = Resultados ,
+ name-pl = resultados ,
+
+type = remark ,
+ gender = f ,
+ Name-sg = Observación ,
+ name-sg = observación ,
+ Name-pl = Observaciones ,
+ name-pl = observaciones ,
+
+type = example ,
+ gender = m ,
+ Name-sg = Ejemplo ,
+ name-sg = ejemplo ,
+ Name-pl = Ejemplos ,
+ name-pl = ejemplos ,
+
+type = algorithm ,
+ gender = m ,
+ Name-sg = Algoritmo ,
+ name-sg = algoritmo ,
+ Name-pl = Algoritmos ,
+ name-pl = algoritmos ,
+
+type = listing ,
+ gender = m ,
+ Name-sg = Listado ,
+ name-sg = listado ,
+ Name-pl = Listados ,
+ name-pl = listados ,
+
+type = exercise ,
+ gender = m ,
+ Name-sg = Ejercicio ,
+ name-sg = ejercicio ,
+ Name-pl = Ejercicios ,
+ name-pl = ejercicios ,
+
+type = solution ,
+ gender = f ,
+ Name-sg = Solución ,
+ name-sg = solución ,
+ Name-pl = Soluciones ,
+ name-pl = soluciones ,
+%%
+%%
+%% End of file `zref-clever-spanish.lang'.
Modified: trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty 2022-01-11 22:00:38 UTC (rev 61571)
+++ trunk/Master/texmf-dist/tex/latex/zref-clever/zref-clever.sty 2022-01-11 22:01:01 UTC (rev 61572)
@@ -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 at 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 at 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,7 +417,7 @@
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 ,
@@ -413,7 +424,7 @@
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 ,
@@ -420,7 +431,7 @@
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,11 +466,11 @@
{
\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 }
@@ -466,22 +477,22 @@
{ 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}
{
- \msg_info:nnxx { zref-clever } { gender-not-declared }
- { \l__zrefclever_dict_language_tl } {#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
+ {
+ \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,14 +759,14 @@
\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} }
} ,
}
}
@@ -714,7 +773,7 @@
\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,14 +940,26 @@
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 ,
@@ -895,12 +966,24 @@
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,13 +1808,13 @@
{
\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}
}
@@ -1590,6 +1821,21 @@
} ,
}
}
+\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 at 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 at type } { zc at missingtype }
- \__zrefclever_def_extract:Nnnn
+ \__zrefclever_extract_default:Nnnn
\l__zrefclever_label_type_b_tl {#2} { zc at type } { zc at 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 at 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 at 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 at type } { zc at 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 at type } { zc at 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,7 +2819,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
{ \__zrefclever_extract_url_unexp:n {#1} }
@@ -2572,7 +2826,7 @@
{ \__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}
@@ -2579,19 +2833,19 @@
{ 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,13 +2945,13 @@
{ 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
@@ -2704,7 +2958,7 @@
\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
+ \clist_set:NV \l_tmpa_clist
+ \l__zrefclever_type_name_gender_tl
+ \clist_if_in:NVF
+ \l_tmpa_clist
\l__zrefclever_ref_gender_tl
- \l__zrefclever_type_name_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'.
More information about the tex-live-commits
mailing list.