summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-07-24 03:04:00 +0000
committerNorbert Preining <norbert@preining.info>2023-07-24 03:04:00 +0000
commit19444d4440a66200b03e05b567996375d0404a46 (patch)
tree450f6790376fe84313c8b2840fe51307bcac2f9e /macros/latex
parent8e64fc98a1773bc22a0f010f106d56a028e48597 (diff)
CTAN sync 202307240303
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/create-theorem/README.md2
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.pdfbin82573 -> 88000 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.tex116
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem.sty418
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.pdfbin58374 -> 65016 bytes
-rw-r--r--macros/latex/contrib/crefthe/crefthe-doc.tex64
-rw-r--r--macros/latex/contrib/crefthe/crefthe.sty64
7 files changed, 540 insertions, 124 deletions
diff --git a/macros/latex/contrib/create-theorem/README.md b/macros/latex/contrib/create-theorem/README.md
index 5b741c38c5..c731811c3d 100644
--- a/macros/latex/contrib/create-theorem/README.md
+++ b/macros/latex/contrib/create-theorem/README.md
@@ -1,6 +1,6 @@
<!-- Copyright (C) 2021-2023 by Jinwen XU -->
-# `create-theorem` - Initializing theorem-like environments with multilingual support
+# `create-theorem` - Initializing and configuring theorem-like environments, with multilingual support
The package `create-theorem` provides the commands `\NameTheorem`, `\CreateTheorem` and `\SetTheorem` for naming, initializing and configuring theorem-like environments. All of these commands have key-value based interface and are especially useful in multi-language documents, allowing the easy declaration of theorem-like environments that can automatically adapt to the language settings.
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
index 977be9c913..7f2154adcb 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
index d7ef8a56d9..c61a73a87e 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.tex
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
@@ -46,6 +46,7 @@
crefformat,
crefthe,crefthename,
Crefthe,Crefthename,
+ crefthevariantname,Crefthevariantname,
crefthemark,
selectlanguage,
languagename,
@@ -106,10 +107,10 @@
\begin{document}
-\def\PackageVersion{2023/07/14}
+\def\PackageVersion{2023/07/23}
\def\PackageSubVersion{}
-\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
+\title{\createtheorempackage{}\\\smallskip\itshape Initializing and configuring theorem-like environments, with multilingual support}
\author{Jinwen XU}
\thanks{Corresponding to: \texttt{\createtheorempackage{} \PackageVersion\PackageSubVersion}}
\date{\TheDate{\PackageVersion}[only-year-month], in Beijing}
@@ -217,20 +218,32 @@ Supported keys are:
\begin{code}
[(*\meta{singular definite article}*)]{(*\meta{singular name}*)}[(*\meta{plural definite article}*)]{(*\meta{plural name}*)}
\end{code}
+ This would be useful for languages like French, Italian, Spanish, etc.
+ \item Also supports the syntax of \lstinline|\crefthevariantname|, thus you can assign different set of names for different variants/declensions (the first line in the configuration is the default name set, which is used in case no variants is specified when referencing):
+\begin{code}
+(*\commandoption{crefname}*) = {
+ (*\meta{language name}*) = { [...]{...}[...]{...}
+ , (*\meta{variant 1}*) = [...]{...}[...]{...}
+ , (*\meta{variant 2}*) = [...]{...}[...]{...}
+ ...
+ }
+ }
+\end{code}
+ This would be useful for languages like German, Russian, etc.
\end{itemize}
\item \commandoption{crefname style}\lstinline| = |\meta{style}
\begin{itemize}
- \item The style of the \textquote{crefname}, you can specify the font, text style, color, etc.
+ \item The style of \textquote{crefname} when referencing, you may specify the font, text style, color, etc.
\item Synonymous names: \commandoption{crefname-style} \,$|$\, \commandoption{crefnamestyle}
\end{itemize}
\item \commandoption{Crefname}\lstinline| = |\meta{configuration}
\begin{itemize}
\item The name for \lstinline|\Cref| the environment, its syntax is the same as that of \commandoption{crefname}.
- \item Also supports the syntax of \lstinline|\Crefthename|.
+ \item Also supports the syntax of \lstinline|\Crefthename| and \lstinline|\Crefthevariantname|.
\end{itemize}
\item \commandoption{Crefname style}\lstinline| = |\meta{style}
\begin{itemize}
- \item The style of the \textquote{Crefname}, you can specify the font, text style, color, etc.
+ \item The style of \textquote{Crefname} when referencing, you may specify the font, text style, color, etc.
\item Synonymous names: \commandoption{Crefname-style} \,$|$\, \commandoption{Crefnamestyle}
\end{itemize}
\item \commandoption{numbering style}\lstinline| = |\meta{style}
@@ -263,7 +276,6 @@ The syntax of \lstinline|\CreateTheorem| is as follows:
When the \meta{key-value configuration} is empty, don't forget to include the second pair of curly brackets, for example, \lstinline|\CreateTheorem{theorem}{}|.
\end{tip}
-\enlargethispage{2\baselineskip}
Supported keys are:
\vspace{-.2\baselineskip}
\begin{itemize}[label=,leftmargin=1.25em,itemindent=-1.25em]
@@ -289,6 +301,7 @@ Supported keys are:
\item If you are using \textsf{ntheorem} as the backend, then you need to load it with option \packageoption{thmmarks}.
\item Synonymous names: \commandoption{qed symbol} \,$|$\, \commandoption{qed-symbol} \,$|$\, \commandoption{qedsymbol}
\end{itemize}
+\pagebreak
\item \commandoption{parent counter}\lstinline| = |\meta{parent counter}
\begin{itemize}
\item Specifying the \meta{parent counter} for the current environment, \emph{i.e.}, numbering will restart whenever that sectional level is encountered.
@@ -309,7 +322,6 @@ Supported keys are:
\item It must be placed \emph{before} \commandoption{qed} if you want the starred version to have a Q.E.D symbol.
\item Synonymous names: \commandoption{create-starred-version} \,$|$\, \commandoption{createstarredversion} \,$|$\, \\\phantom{Synonymous names: }\commandoption{create numberless version} \,$|$\, \commandoption{create-numberless-version}~\,$|$\\\phantom{Synonymous names: }\commandoption{createnumberlessversion}
\end{itemize}
-\pagebreak
\item \commandoption{copy existed}\lstinline| = |\meta{existed environment}
\begin{itemize}
\item Defining the current environment to be the same as \meta{existed environment}.
@@ -329,6 +341,7 @@ Supported keys are:
\medskip
Please note that, for the sake of generality, the environment \meta{env} and its starred relative \meta{env}\texttt{*} do \emph{not} share the same set of names when they are separately defined. However, with proper usage of \commandoption{create starred version} and \commandoption{copy existed}, you should already be able to produce all of the following combinations that shares the same set of names: 1$)$ numbered \meta{env}, numbered \meta{env}\texttt{*} ; 2$)$ numbered \meta{env}, unnumbered \meta{env}\texttt{*} ; 3$)$ unnumbered \meta{env}, numbered \meta{env}\texttt{*} ; and 4$)$ unnumbered \meta{env}, unnumbered \meta{env}\texttt{*}. I left it as an easy exercise for you ;-)
+The answer can be found in section \labelcref{subsec:numbering}.
\medskip
\subsection[Configuring theorem-like environments]{Configuring theorem-like environments with \texttt{\textcolor{code-main}{\textbackslash SetTheorem}}}
@@ -384,6 +397,7 @@ In some cases, you may define an internal environment (for example, a generic ve
The command \lstinline|\NameTheorem| introduced earlier is for defining the names of a given environment for each language, which is more natural to use within a real-life document. However, for package/class authors wishing to maintain their language configuration files, it would be more convenient to use the following \lstinline|\NameTheorems|, which assigns the names for a given language all at once, made it possible to preset the names inside external files.
+\enlargethispage*{\baselineskip}
The syntax of \lstinline|\NameTheorems| is as follows (please note that the \meta{language name} here should be consistent with \lstinline|\languagename|):
\begin{code}
\NameTheorems{(*\meta{language name}*)}{(*\meta{key-value configuration}*)}
@@ -409,15 +423,14 @@ Supported keys are (notice that you \emph{cannot} set the styles via \lstinline|
(*\meta{name of environment}*) = {(*\meta{singular name}*)}{(*\meta{plural name}*)}
}
\end{code}
- \item Also supports the syntax of \lstinline|\crefthename|, thus you can assign names of the form:
-\begin{code}
-[(*\meta{singular definite article}*)]{(*\meta{singular name}*)}[(*\meta{plural definite article}*)]{(*\meta{plural name}*)}
-\end{code}
+ \item Also supports the syntax of \lstinline|\crefthename| and \lstinline|\crefthevariantname|.\\
+ Please refer to the description of \lstinline|\NameTheorem| for more details.
\end{itemize}
\item \commandoption{Crefname}\lstinline| = |\meta{configuration}
\begin{itemize}
\item The names for \lstinline|\Cref| the environments, its syntax is the same as that of \commandoption{crefname}.
- \item Also supports the syntax of \lstinline|\Crefthename|.
+ \item Also supports the syntax of \lstinline|\Crefthename| and \lstinline|\Crefthevariantname|.\\
+ Please refer to the description of \lstinline|\NameTheorem| for more details.
\end{itemize}
\end{itemize}
@@ -460,30 +473,51 @@ or to do it in one turn:
\end{code}
\smallskip
-This is not exciting at all. Now, let's say we are writing a bilingual note in English and French. (I shall omit the \lstinline|\NameTheorem| version and do it all at once in \lstinline|\CreateTheorem|.)
+This is not exciting at all. Now, let's say we are writing a trilingual note in English, French and German. (I shall omit the \lstinline|\NameTheorem| version and do it all at once in \lstinline|\CreateTheorem|.)
\begin{code}
\CreateTheorem{idea}
{
(*\commandoption{name}*) = {
(*\commandoption{heading}*) = { english = Idea,
- french = Idée, },
+ french = Idée,
+ ngerman = Idee, },
(*\commandoption{crefname}*) = { english = {idea}{ideas},
- french = [l']{idée}[les]{idées}, },
+ french = [l']{idée}[les]{idées},
+ ngerman = { {Idee}{Idee}
+ , Nominativ = [die]{Idee}[die]{Ideen}
+ , Genitiv = [der]{Idee}[der]{Ideen}
+ , Dativ = [der]{Idee}[den]{Ideen}
+ , Akkusativ = [die]{Idee}[die]{Ideen}
+ } },
(*\commandoption{Crefname}*) = { english = {Idea}{Ideas},
- french = [L']{idée}[Les]{idées}, },
+ french = [L']{idée}[Les]{idées},
+ ngerman = { {Idee}{Idee}
+ , Nominativ = [Die]{Idee}[Die]{Ideen}
+ , Genitiv = [Der]{Idee}[Der]{Ideen}
+ , Dativ = [Der]{Idee}[Den]{Ideen}
+ , Akkusativ = [Die]{Idee}[Die]{Ideen}
+ } },
},
(*\commandoption{parent counter}*) = section,
}
\end{code}
-With this, if you use \lstinline|\selectlanguage{french}|, the {\normalfont\texttt{idea}} environment shall be automatically displayed as \textquote{Idée}. And if you \lstinline|\crefthe| it, the definite article and the name showed up properly just as expected.
+With this, if you use \lstinline|\selectlanguage{french}|, the {\normalfont\texttt{idea}} environment shall be automatically displayed as \textquote{Idée}. And if you \lstinline|\crefthe| it, the definite article and the name would show up properly just as expected.
+
+The same happens for German with \lstinline|\selectlanguage{ngerman}|, and when referencing an {\normalfont\texttt{idea}} environment, you may specify the declension as with \lstinline|\crefthe[|\meta{prep}\lstinline|,variant=Nominativ]{|\meta{label}\lstinline|}|, or simply with shortcut such as \lstinline|\crefthe[|\meta{prep}\lstinline|,nom.]{|\meta{label}\lstinline|}|.
+
+\begin{tip}
+ For more datailed usage of the referencing command \lstinline|\crefthe|, please refer to the documentation of the package \textsf{crefthe}.
+\end{tip}
-Next we shall deal with the problem of numbering. Let's continue to use this environment {\normalfont\texttt{idea}} for demonstration -- suppose that we have already set the names with \lstinline|\NameTheorem|.
+\bigskip
+Next we shall deal with the problem of numbering. Let's continue to use this environment {\normalfont\texttt{idea}} for demonstration --- suppose that we have already set the names with \lstinline|\NameTheorem|.
\medskip
\subsection{Let's play with numbering}
+\label{subsec:numbering}
Remember the exercise I left you in the previous section? Let's do it together now.
@@ -535,13 +569,12 @@ This is essentially the combination of the first two cases --- we need to create
\medskip
In each case, the two environments {\normalfont\texttt{idea}} and {\normalfont\texttt{idea*}} share the same set of names.
-\enlargethispage{\baselineskip}
\begin{tip}[Attention]
- The sole purpose of this section is to demonstrate the feature of this package -- some combinations are not recommended to use in the actual documents.
+ The sole purpose of this section is to demonstrate the feature of this package --- some combinations are not recommended to use in the actual documents.
\end{tip}
-\subsection{The \emph{proofless} version -- theorems with a Q.E.D. symbol}
+\subsection{The \emph{proofless} version --- theorems with a Q.E.D. symbol}
Sometimes you may encounter a theorem without a proof, in which case you might want a Q.E.D. symbol when the theorem is finished. This can be easily achieved via:
@@ -628,7 +661,7 @@ A typical configuration looks like this:
}
\end{code}
-Here is another example for French:
+Here is an example for French:
\begin{code}
\NameTheorems { french }
@@ -642,27 +675,56 @@ Here is another example for French:
, (*\commandoption{crefname}*) = {
, theorem = [le]{théorème}[les]{théorèmes}
, proposition = [la]{proposition}[les]{propositions}
- , example = [l']{example}[les]{examples}
+ , example = [l']{exemple}[les]{exemples}
...
}
, (*\commandoption{Crefname}*) = {
, theorem = [Le]{théorème}[Les]{théorèmes}
, proposition = [La]{proposition}[Les]{propositions}
- , example = [L']{example}[Les]{examples}
+ , example = [L']{exemple}[Les]{exemples}
+ ...
+ }
+ }
+\end{code}
+
+And an example for German:
+
+\begin{code}
+\NameTheorems { ngerman }
+ {
+ , (*\commandoption{heading}*) = {
+ , theorem = Satz
+ ...
+ }
+ , (*\commandoption{crefname}*) = {
+ , theorem = { {Satz}{Sätze}
+ , Nominativ = [der]{Satz}[die]{Sätze}
+ , Genitiv = [des]{Satzes}[der]{Sätze}
+ , Dativ = [dem]{Satz}[den]{Sätzen}
+ , Akkusativ = [den]{Satz}[die]{Sätze}
+ }
+ ...
+ }
+ , (*\commandoption{Crefname}*) = {
+ , theorem = { {Satz}{Sätze}
+ , Nominativ = [Der]{Satz}[Die]{Sätze}
+ , Genitiv = [Des]{Satzes}[Der]{Sätze}
+ , Dativ = [Dem]{Satz}[Den]{Sätzen}
+ , Akkusativ = [Den]{Satz}[Die]{Sätze}
+ }
...
}
}
\end{code}
\medskip
-The configuration using \lstinline|\NameTheorems| is compatible with that using \lstinline|\NameTheorem| and there is no need to worry about duplicated definitions -- new settings will automatically overwrite the old ones.
+The configuration using \lstinline|\NameTheorems| is compatible with that using \lstinline|\NameTheorem| and there is no need to worry about duplicated definitions --- new settings will automatically overwrite the old ones.
-\bigskip
+\clearpage
\section{Known issues}
\begin{itemize}
- \item The current mechanism does not work well for German, a problem originated in the package \textsf{crefthe}. The author plans to adopt a more refined approach in a later version so as to support the various grammatical situations in German.
\item \createtheorempackage{} modifies some undocumented internal macros of \textsf{cleveref}, so the behaviour might not be stable if \textsf{cleveref} gets updated.
\item The counter aliasing function is still not perfect, (sometimes) causing incorrect ordering in the result of \lstinline|\cref|.
\item There might be inaccuracies in the translation of those preset names.
diff --git a/macros/latex/contrib/create-theorem/create-theorem.sty b/macros/latex/contrib/create-theorem/create-theorem.sty
index 7eefe80b81..a488ad7bc3 100644
--- a/macros/latex/contrib/create-theorem/create-theorem.sty
+++ b/macros/latex/contrib/create-theorem/create-theorem.sty
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage
{create-theorem}
- {2023/07/14} {}
+ {2023/07/23} {}
{Initializing theorem-like environments with multilingual support}
\keys_define:nn { create-theorem }
@@ -201,17 +201,31 @@
\cs_new:Nn \__crthm_set_name_crefname:nnn
% #1 = env name
% #2 = language name
- % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}
+ % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}, or a set of crefnames for different variants
{
- \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { c }
+ \str_if_in:nnTF { #3 } { = }
+ {
+ \crefthe_parse_variant:n { #3 }
+ \crefthe_pass_variant_to:n { \__crthm_set_name_crefname_generic:w { #1 } { #2 } } { c }
+ }
+ {
+ \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { c }
+ }
}
\cs_new:Nn \__crthm_set_name_Crefname:nnn
% #1 = env name
% #2 = language name
- % #3 = corresponding Crefname {..}{..} or [..]{..}[..]{..}
+ % #3 = corresponding Crefname {..}{..} or [..]{..}[..]{..}, or a set of crefnames for different variants
{
- \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { C }
+ \str_if_in:nnTF { #3 } { = }
+ {
+ \crefthe_parse_variant:n { #3 }
+ \crefthe_pass_variant_to:n { \__crthm_set_name_crefname_generic:w { #1 } { #2 } } { C }
+ }
+ {
+ \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { C }
+ }
}
\NewExpandableDocumentCommand \__crthm_set_name_crefname_generic:w { m m O{} m O{} m m }
@@ -773,17 +787,31 @@
\cs_new:Nn \__crthm_set_name_per_lang_crefname:nnn
% #1 = language name
% #2 = env name
- % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}
+ % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}, or a set of crefnames for different variants
{
- \__crthm_set_name_crefname_generic:w { #2 } { #1 } #3 { c }
+ \str_if_in:nnTF { #3 } { = }
+ {
+ \crefthe_parse_variant:n { #3 }
+ \crefthe_pass_variant_to:n { \__crthm_set_name_crefname_generic:w { #2 } { #1 } } { c }
+ }
+ {
+ \__crthm_set_name_crefname_generic:w { #2 } { #1 } #3 { c }
+ }
}
\cs_new:Nn \__crthm_set_name_per_lang_Crefname:nnn
% #1 = language name
% #2 = env name
- % #3 = corresponding Crefname {..}{..} or [..]{..}[..]{..}
+ % #3 = corresponding Crefname {..}{..} or [..]{..}[..]{..}, or a set of crefnames for different variants
{
- \__crthm_set_name_crefname_generic:w { #2 } { #1 } #3 { C }
+ \str_if_in:nnTF { #3 } { = }
+ {
+ \crefthe_parse_variant:n { #3 }
+ \crefthe_pass_variant_to:n { \__crthm_set_name_crefname_generic:w { #2 } { #1 } } { C }
+ }
+ {
+ \__crthm_set_name_crefname_generic:w { #2 } { #1 } #3 { C }
+ }
}
@@ -1146,7 +1174,12 @@
, crefname = {
, english = {application}{applications}
, french = [l']{application}[les]{applications}
- , ngerman = {Anwendung}{Anwendungen}
+ , ngerman = { {Anwendung}{Anwendungen}
+ , Nominativ = [die]{Anwendung}[die]{Anwendungen}
+ , Genitiv = [der]{Anwendung}[der]{Anwendungen}
+ , Dativ = [der]{Anwendung}[den]{Anwendungen}
+ , Akkusativ = [die]{Anwendung}[die]{Anwendungen}
+ }
, italian = [l']{applicazione}[le]{applicazioni}
, portuguese = [a]{aplicação}[as]{aplicações}
, brazilian = [a]{aplicação}[as]{aplicações}
@@ -1159,7 +1192,12 @@
, Crefname = {
, english = {Application}{Applications}
, french = [L']{application}[Les]{applications}
- , ngerman = {Anwendung}{Anwendungen}
+ , ngerman = { {Anwendung}{Anwendungen}
+ , Nominativ = [Die]{Anwendung}[Die]{Anwendungen}
+ , Genitiv = [Der]{Anwendung}[Der]{Anwendungen}
+ , Dativ = [Der]{Anwendung}[Den]{Anwendungen}
+ , Akkusativ = [Die]{Anwendung}[Die]{Anwendungen}
+ }
, italian = [L']{applicazione}[Le]{applicazioni}
, portuguese = [A]{aplicação}[As]{aplicações}
, brazilian = [A]{aplicação}[As]{aplicações}
@@ -1176,7 +1214,7 @@
, heading = {
, english = Assertion
, french = Assertion
- , ngerman = Behauptung
+ , ngerman = Assertion
, italian = Asserzione
, portuguese = Asserção
, brazilian = Asserção
@@ -1189,7 +1227,12 @@
, crefname = {
, english = {assertion}{assertions}
, french = [l']{assertion}[les]{assertions}
- , ngerman = {Behauptung}{Behauptungen}
+ , ngerman = { {Assertion}{Assertionen}
+ , Nominativ = [die]{Assertion}[die]{Assertionen}
+ , Genitiv = [der]{Assertion}[der]{Assertionen}
+ , Dativ = [der]{Assertion}[den]{Assertionen}
+ , Akkusativ = [die]{Assertion}[die]{Assertionen}
+ }
, italian = [l']{asserzione}[le]{asserzioni}
, portuguese = [a]{asserção}[as]{asserções}
, brazilian = [a]{asserção}[as]{asserções}
@@ -1202,7 +1245,12 @@
, Crefname = {
, english = {Assertion}{Assertions}
, french = [L']{assertion}[Les]{assertions}
- , ngerman = {Behauptung}{Behauptungen}
+ , ngerman = { {Assertion}{Assertionen}
+ , Nominativ = [Die]{Assertion}[Die]{Assertionen}
+ , Genitiv = [Der]{Assertion}[Der]{Assertionen}
+ , Dativ = [Der]{Assertion}[Den]{Assertionen}
+ , Akkusativ = [Die]{Assertion}[Die]{Assertionen}
+ }
, italian = [L']{asserzione}[Le]{asserzioni}
, portuguese = [A]{asserção}[As]{asserções}
, brazilian = [A]{asserção}[As]{asserções}
@@ -1232,7 +1280,12 @@
, crefname = {
, english = {assumption}{assumptions}
, french = [la]{supposition}[les]{suppositions}
- , ngerman = {Annahme}{Annahmen}
+ , ngerman = { {Annahme}{Annahmen}
+ , Nominativ = [die]{Annahme}[die]{Annahmen}
+ , Genitiv = [der]{Annahme}[der]{Annahmen}
+ , Dativ = [der]{Annahme}[den]{Annahmen}
+ , Akkusativ = [die]{Annahme}[die]{Annahmen}
+ }
, italian = [la]{supposizione}[le]{supposizioni}
, portuguese = [a]{suposição}[as]{suposições}
, brazilian = [a]{suposição}[as]{suposições}
@@ -1245,7 +1298,12 @@
, Crefname = {
, english = {Assumption}{Assumptions}
, french = [La]{supposition}[Les]{suppositions}
- , ngerman = {Annahme}{Annahmen}
+ , ngerman = { {Annahme}{Annahmen}
+ , Nominativ = [Die]{Annahme}[Die]{Annahmen}
+ , Genitiv = [Der]{Annahme}[Der]{Annahmen}
+ , Dativ = [Der]{Annahme}[Den]{Annahmen}
+ , Akkusativ = [Die]{Annahme}[Die]{Annahmen}
+ }
, italian = [la]{supposizione}[le]{supposizioni}
, portuguese = [A]{suposição}[As]{suposições}
, brazilian = [A]{suposição}[As]{suposições}
@@ -1275,7 +1333,12 @@
, crefname = {
, english = {axiom}{axioms}
, french = [l']{axiome}[les]{axiomes}
- , ngerman = {Axiom}{Axiome}
+ , ngerman = { {Axiom}{Axiome}
+ , Nominativ = [das]{Axiom}[die]{Axiome}
+ , Genitiv = [des]{Axioms}[der]{Axiome}
+ , Dativ = [dem]{Axiom}[den]{Axiomen}
+ , Akkusativ = [das]{Axiom}[die]{Axiome}
+ }
, italian = [l']{assioma}[gli]{assiomi}
, portuguese = [o]{axioma}[os]{axiomas}
, brazilian = [o]{axioma}[os]{axiomas}
@@ -1288,7 +1351,12 @@
, Crefname = {
, english = {Axiom}{Axioms}
, french = [L']{axiome}[Les]{axiomes}
- , ngerman = {Axiom}{Axiome}
+ , ngerman = { {Axiom}{Axiome}
+ , Nominativ = [Das]{Axiom}[Die]{Axiome}
+ , Genitiv = [Des]{Axioms}[Der]{Axiome}
+ , Dativ = [Dem]{Axiom}[Den]{Axiomen}
+ , Akkusativ = [Das]{Axiom}[Die]{Axiome}
+ }
, italian = [L']{assioma}[Gli]{assiomi}
, portuguese = [O]{axioma}[Os]{axiomas}
, brazilian = [O]{axioma}[Os]{axiomas}
@@ -1305,7 +1373,7 @@
, heading = {
, english = Claim
, french = Affirmation
- , ngerman = Affirmation
+ , ngerman = Behauptung
, italian = Affermazione
, portuguese = Afirmação
, brazilian = Afirmação
@@ -1318,7 +1386,12 @@
, crefname = {
, english = {claim}{claims}
, french = [l']{affirmation}[les]{affirmations}
- , ngerman = {Affirmation}{Affirmationen}
+ , ngerman = { {Behauptung}{Behauptungen}
+ , Nominativ = [die]{Behauptung}[die]{Behauptungen}
+ , Genitiv = [der]{Behauptung}[der]{Behauptungen}
+ , Dativ = [der]{Behauptung}[den]{Behauptungen}
+ , Akkusativ = [die]{Behauptung}[die]{Behauptungen}
+ }
, italian = [l']{affermazione}[le]{affermazioni}
, portuguese = [a]{afirmação}[as]{afirmações}
, brazilian = [a]{afirmação}[as]{afirmações}
@@ -1331,7 +1404,12 @@
, Crefname = {
, english = {Claim}{Claims}
, french = [L']{affirmation}[Les]{affirmations}
- , ngerman = {Affirmation}{Affirmationen}
+ , ngerman = { {Behauptung}{Behauptungen}
+ , Nominativ = [Die]{Behauptung}[Die]{Behauptungen}
+ , Genitiv = [Der]{Behauptung}[Der]{Behauptungen}
+ , Dativ = [Der]{Behauptung}[Den]{Behauptungen}
+ , Akkusativ = [Die]{Behauptung}[Die]{Behauptungen}
+ }
, italian = [L']{affermazione}[Le]{affermazioni}
, portuguese = [A]{afirmação}[As]{afirmações}
, brazilian = [A]{afirmação}[As]{afirmações}
@@ -1361,7 +1439,12 @@
, crefname = {
, english = {conclusion}{conclusions}
, french = [la]{conclusion}[Les]{conclusions}
- , ngerman = {Schlussfolgerung}{Schlussfolgerungen}
+ , ngerman = { {Schlussfolgerung}{Schlussfolgerungen}
+ , Nominativ = [die]{Schlussfolgerung}[die]{Schlussfolgerungen}
+ , Genitiv = [der]{Schlussfolgerung}[der]{Schlussfolgerungen}
+ , Dativ = [der]{Schlussfolgerung}[den]{Schlussfolgerungen}
+ , Akkusativ = [die]{Schlussfolgerung}[die]{Schlussfolgerungen}
+ }
, italian = [la]{conclusione}[le]{conclusioni}
, portuguese = [a]{conclusão}[as]{conclusões}
, brazilian = [a]{conclusão}[as]{conclusões}
@@ -1374,7 +1457,12 @@
, Crefname = {
, english = {Conclusion}{Conclusions}
, french = [La]{conclusion}[Les]{conclusions}
- , ngerman = {Schlussfolgerung}{Schlussfolgerungen}
+ , ngerman = { {Schlussfolgerung}{Schlussfolgerungen}
+ , Nominativ = [Die]{Schlussfolgerung}[Die]{Schlussfolgerungen}
+ , Genitiv = [Der]{Schlussfolgerung}[Der]{Schlussfolgerungen}
+ , Dativ = [Der]{Schlussfolgerung}[Den]{Schlussfolgerungen}
+ , Akkusativ = [Die]{Schlussfolgerung}[Die]{Schlussfolgerungen}
+ }
, italian = [La]{conclusione}[Le]{conclusioni}
, portuguese = [A]{conclusão}[As]{conclusões}
, brazilian = [A]{conclusão}[As]{conclusões}
@@ -1404,7 +1492,12 @@
, crefname = {
, english = {conjecture}{conjectures}
, french = [la]{conjecture}[les]{conjectures}
- , ngerman = {Vermutung}{Vermutungen}
+ , ngerman = { {Vermutung}{Vermutungen}
+ , Nominativ = [die]{Vermutung}[die]{Vermutungen}
+ , Genitiv = [der]{Vermutung}[der]{Vermutungen}
+ , Dativ = [der]{Vermutung}[den]{Vermutungen}
+ , Akkusativ = [die]{Vermutung}[die]{Vermutungen}
+ }
, italian = [la]{congettura}[le]{congetture}
, portuguese = [a]{conjetura}[as]{conjeturas}
, brazilian = [a]{conjectura}[as]{conjecturas}
@@ -1417,7 +1510,12 @@
, Crefname = {
, english = {Conjecture}{Conjectures}
, french = [La]{conjecture}[Les]{conjectures}
- , ngerman = {Vermutung}{Vermutungen}
+ , ngerman = { {Vermutung}{Vermutungen}
+ , Nominativ = [Die]{Vermutung}[Die]{Vermutungen}
+ , Genitiv = [Der]{Vermutung}[Der]{Vermutungen}
+ , Dativ = [Der]{Vermutung}[Den]{Vermutungen}
+ , Akkusativ = [Die]{Vermutung}[Die]{Vermutungen}
+ }
, italian = [La]{congettura}[Le]{congetture}
, portuguese = [A]{conjetura}[As]{conjeturas}
, brazilian = [A]{conjectura}[As]{conjecturas}
@@ -1447,7 +1545,12 @@
, crefname = {
, english = {construction}{constructions}
, french = [la]{construction}[les]{constructions}
- , ngerman = {Konstruktion}{Konstruktionen}
+ , ngerman = { {Konstruktion}{Konstruktionen}
+ , Nominativ = [die]{Konstruktion}[die]{Konstruktionen}
+ , Genitiv = [der]{Konstruktion}[der]{Konstruktionen}
+ , Dativ = [der]{Konstruktion}[den]{Konstruktionen}
+ , Akkusativ = [die]{Konstruktion}[die]{Konstruktionen}
+ }
, italian = [la]{costruzione}[le]{costruzioni}
, portuguese = [a]{construção}[as]{construções}
, brazilian = [a]{construção}[as]{construções}
@@ -1460,7 +1563,12 @@
, Crefname = {
, english = {Construction}{Constructions}
, french = [La]{construction}[Les]{constructions}
- , ngerman = {Konstruktion}{Konstruktionen}
+ , ngerman = { {Konstruktion}{Konstruktionen}
+ , Nominativ = [Die]{Konstruktion}[Die]{Konstruktionen}
+ , Genitiv = [Der]{Konstruktion}[Der]{Konstruktionen}
+ , Dativ = [Der]{Konstruktion}[Den]{Konstruktionen}
+ , Akkusativ = [Die]{Konstruktion}[Die]{Konstruktionen}
+ }
, italian = [La]{costruzione}[Le]{costruzioni}
, portuguese = [A]{construção}[As]{construções}
, brazilian = [A]{construção}[As]{construções}
@@ -1490,7 +1598,12 @@
, crefname = {
, english = {convention}{conventions}
, french = [la]{convention}[les]{conventions}
- , ngerman = {Konvention}{Konventionen}
+ , ngerman = { {Konvention}{Konventionen}
+ , Nominativ = [die]{Konvention}[die]{Konventionen}
+ , Genitiv = [der]{Konvention}[der]{Konventionen}
+ , Dativ = [der]{Konvention}[den]{Konventionen}
+ , Akkusativ = [die]{Konvention}[die]{Konventionen}
+ }
, italian = [la]{convenzione}[le]{convenzioni}
, portuguese = [a]{convenção}[as]{convenções}
, brazilian = [a]{convenção}[as]{convenções}
@@ -1503,7 +1616,12 @@
, Crefname = {
, english = {Convention}{Conventions}
, french = [La]{convention}[Les]{conventions}
- , ngerman = {Konvention}{Konventionen}
+ , ngerman = { {Konvention}{Konventionen}
+ , Nominativ = [Die]{Konvention}[Die]{Konventionen}
+ , Genitiv = [Der]{Konvention}[Der]{Konventionen}
+ , Dativ = [Der]{Konvention}[Den]{Konventionen}
+ , Akkusativ = [Die]{Konvention}[Die]{Konventionen}
+ }
, italian = [La]{convenzione}[Le]{convenzioni}
, portuguese = [A]{convenção}[As]{convenções}
, brazilian = [A]{convenção}[As]{convenções}
@@ -1533,7 +1651,12 @@
, crefname = {
, english = {corollary}{corollaries}
, french = [le]{corollaire}[les]{corollaires}
- , ngerman = {Korollar}{Korollare}
+ , ngerman = { {Korollar}{Korollare}
+ , Nominativ = [das]{Korollar}[die]{Korollare}
+ , Genitiv = [des]{Korollars}[der]{Korollare}
+ , Dativ = [dem]{Korollar}[den]{Korollaren}
+ , Akkusativ = [das]{Korollar}[die]{Korollare}
+ }
, italian = [il]{corollario}[i]{corollari}
, portuguese = [o]{corolário}[os]{corolários}
, brazilian = [o]{corolário}[os]{corolários}
@@ -1546,7 +1669,12 @@
, Crefname = {
, english = {Corollary}{Corollaries}
, french = [Le]{corollaire}[Les]{corollaires}
- , ngerman = {Korollar}{Korollare}
+ , ngerman = { {Korollar}{Korollare}
+ , Nominativ = [Das]{Korollar}[Die]{Korollare}
+ , Genitiv = [Des]{Korollars}[Der]{Korollare}
+ , Dativ = [Dem]{Korollar}[Den]{Korollaren}
+ , Akkusativ = [Das]{Korollar}[Die]{Korollare}
+ }
, italian = [Il]{corollario}[I]{corollari}
, portuguese = [O]{corolário}[Os]{corolários}
, brazilian = [O]{corolário}[Os]{corolários}
@@ -1576,7 +1704,12 @@
, crefname = {
, english = {definition}{definitions}
, french = [la]{définition}[les]{définitions}
- , ngerman = {Definition}{Definitionen}
+ , ngerman = { {Definition}{Definitionen}
+ , Nominativ = [die]{Definition}[die]{Definitionen}
+ , Genitiv = [der]{Definition}[der]{Definitionen}
+ , Dativ = [der]{Definition}[den]{Definitionen}
+ , Akkusativ = [die]{Definition}[die]{Definitionen}
+ }
, italian = [la]{definizione}[le]{definizioni}
, portuguese = [a]{definição}[as]{definições}
, brazilian = [a]{definição}[as]{definições}
@@ -1589,7 +1722,12 @@
, Crefname = {
, english = {Definition}{Definitions}
, french = [La]{définition}[Les]{définitions}
- , ngerman = {Definition}{Definitionen}
+ , ngerman = { {Definition}{Definitionen}
+ , Nominativ = [Die]{Definition}[Die]{Definitionen}
+ , Genitiv = [Der]{Definition}[Der]{Definitionen}
+ , Dativ = [Der]{Definition}[Den]{Definitionen}
+ , Akkusativ = [Die]{Definition}[Die]{Definitionen}
+ }
, italian = [La]{definizione}[Le]{definizioni}
, portuguese = [A]{definição}[As]{definições}
, brazilian = [A]{definição}[As]{definições}
@@ -1619,7 +1757,12 @@
, crefname = {
, english = {example}{examples}
, french = [l']{exemple}[les]{exemples}
- , ngerman = {Beispiel}{Beispiele}
+ , ngerman = { {Beispiel}{Beispiele}
+ , Nominativ = [das]{Beispiel}[die]{Beispiele}
+ , Genitiv = [des]{Beispiels}[der]{Beispiele}
+ , Dativ = [dem]{Beispiel}[den]{Beispielen}
+ , Akkusativ = [das]{Beispiel}[die]{Beispiele}
+ }
, italian = [l']{esempio}[gli]{esempi}
, portuguese = [o]{exemplo}[os]{exemplos}
, brazilian = [o]{exemplo}[os]{exemplos}
@@ -1632,7 +1775,12 @@
, Crefname = {
, english = {Example}{Examples}
, french = [L']{exemple}[Les]{exemples}
- , ngerman = {Beispiel}{Beispiele}
+ , ngerman = { {Beispiel}{Beispiele}
+ , Nominativ = [Das]{Beispiel}[Die]{Beispiele}
+ , Genitiv = [Des]{Beispiels}[Der]{Beispiele}
+ , Dativ = [Dem]{Beispiel}[Den]{Beispielen}
+ , Akkusativ = [Das]{Beispiel}[Die]{Beispiele}
+ }
, italian = [L']{esempio}[Gli]{esempi}
, portuguese = [O]{exemplo}[Os]{exemplos}
, brazilian = [O]{exemplo}[Os]{exemplos}
@@ -1662,7 +1810,12 @@
, crefname = {
, english = {exercise}{exercises}
, french = [l']{exercice}[les]{exercices}
- , ngerman = {Übung}{Übungen}
+ , ngerman = { {Übung}{Übungen}
+ , Nominativ = [die]{Übung}[die]{Übungen}
+ , Genitiv = [der]{Übung}[der]{Übungen}
+ , Dativ = [der]{Übung}[den]{Übungen}
+ , Akkusativ = [die]{Übung}[die]{Übungen}
+ }
, italian = [l']{esercizio}[gli]{esercizi}
, portuguese = [o]{exercício}[os]{exercícios}
, brazilian = [o]{exercício}[os]{exercícios}
@@ -1675,7 +1828,12 @@
, Crefname = {
, english = {Exercise}{Exercises}
, french = [L']{exercice}[Les]{exercices}
- , ngerman = {Übung}{Übungen}
+ , ngerman = { {Übung}{Übungen}
+ , Nominativ = [Die]{Übung}[Die]{Übungen}
+ , Genitiv = [Der]{Übung}[Der]{Übungen}
+ , Dativ = [Der]{Übung}[Den]{Übungen}
+ , Akkusativ = [Die]{Übung}[Die]{Übungen}
+ }
, italian = [L']{esercizio}[Gli]{esercizi}
, portuguese = [O]{exercício}[Os]{exercícios}
, brazilian = [O]{exercício}[Os]{exercícios}
@@ -1692,7 +1850,7 @@
, heading = {
, english = Fact
, french = Fait
- , ngerman = Fakt
+ , ngerman = Tatsache
, italian = Fatto
, portuguese = Facto
, brazilian = Fato
@@ -1705,7 +1863,12 @@
, crefname = {
, english = {fact}{facts}
, french = [le]{fait}[les]{faits}
- , ngerman = {Fakt}{Fakten}
+ , ngerman = { {Tatsache}{Tatsachen}
+ , Nominativ = [die]{Tatsache}[die]{Tatsachen}
+ , Genitiv = [der]{Tatsache}[der]{Tatsachen}
+ , Dativ = [der]{Tatsache}[den]{Tatsachen}
+ , Akkusativ = [die]{Tatsache}[die]{Tatsachen}
+ }
, italian = [il]{fatto}[i]{fatti}
, portuguese = [o]{facto}[os]{factos}
, brazilian = [o]{fato}[os]{fatos}
@@ -1718,7 +1881,12 @@
, Crefname = {
, english = {Fact}{Facts}
, french = [Le]{fait}[Les]{faits}
- , ngerman = {Fakt}{Fakten}
+ , ngerman = { {Tatsache}{Tatsachen}
+ , Nominativ = [Die]{Tatsache}[Die]{Tatsachen}
+ , Genitiv = [Der]{Tatsache}[Der]{Tatsachen}
+ , Dativ = [Der]{Tatsache}[Den]{Tatsachen}
+ , Akkusativ = [Die]{Tatsache}[Die]{Tatsachen}
+ }
, italian = [Il]{fatto}[I]{fatti}
, portuguese = [O]{facto}[Os]{factos}
, brazilian = [O]{fato}[Os]{fatos}
@@ -1748,7 +1916,12 @@
, crefname = {
, english = {hypothesis}{hypotheses}
, french = [l']{hypothèse}[les]{hypothèses}
- , ngerman = {Hypothese}{Hypothesen}
+ , ngerman = { {Hypothese}{Hypothesen}
+ , Nominativ = [die]{Hypothese}[die]{Hypothesen}
+ , Genitiv = [der]{Hypothese}[der]{Hypothesen}
+ , Dativ = [der]{Hypothese}[den]{Hypothesen}
+ , Akkusativ = [die]{Hypothese}[die]{Hypothesen}
+ }
, italian = [l']{ipotesi}[le]{ipotesi}
, portuguese = [a]{hipótese}[as]{hipóteses}
, brazilian = [a]{hipótese}[as]{hipóteses}
@@ -1761,7 +1934,12 @@
, Crefname = {
, english = {Hypothesis}{Hypotheses}
, french = [L']{hypothèse}[Les]{hypothèses}
- , ngerman = {Hypothese}{Hypothesen}
+ , ngerman = { {Hypothese}{Hypothesen}
+ , Nominativ = [Die]{Hypothese}[Die]{Hypothesen}
+ , Genitiv = [Der]{Hypothese}[Der]{Hypothesen}
+ , Dativ = [Der]{Hypothese}[Den]{Hypothesen}
+ , Akkusativ = [Die]{Hypothese}[Die]{Hypothesen}
+ }
, italian = [L']{ipotesi}[Le]{ipotesi}
, portuguese = [A]{hipótese}[As]{hipóteses}
, brazilian = [A]{hipótese}[As]{hipóteses}
@@ -1791,7 +1969,12 @@
, crefname = {
, english = {lemma}{Lemmas}
, french = [le]{lemme}[les]{lemmes}
- , ngerman = {Lemma}{Lemmata}
+ , ngerman = { {Lemma}{Lemmata}
+ , Nominativ = [das]{Lemma}[die]{Lemmata}
+ , Genitiv = [des]{Lemmas}[der]{Lemmata}
+ , Dativ = [dem]{Lemma}[den]{Lemmata}
+ , Akkusativ = [das]{Lemma}[die]{Lemmata}
+ }
, italian = [il]{lemma}[i]{lemmi}
, portuguese = [o]{lema}[os]{lemas}
, brazilian = [o]{lema}[os]{lemas}
@@ -1804,7 +1987,12 @@
, Crefname = {
, english = {Lemma}{Lemmas}
, french = [Le]{lemme}[Les]{lemmes}
- , ngerman = {Lemma}{Lemmata}
+ , ngerman = { {Lemma}{Lemmata}
+ , Nominativ = [Das]{Lemma}[Die]{Lemmata}
+ , Genitiv = [Des]{Lemmas}[Der]{Lemmata}
+ , Dativ = [Dem]{Lemma}[Den]{Lemmata}
+ , Akkusativ = [Das]{Lemma}[Die]{Lemmata}
+ }
, italian = [Il]{lemma}[I]{lemmi}
, portuguese = [O]{lema}[Os]{lemas}
, brazilian = [O]{lema}[Os]{lemas}
@@ -1834,7 +2022,12 @@
, crefname = {
, english = {notation}{notations}
, french = [la]{notation}[les]{notations}
- , ngerman = {Notation}{Notationen}
+ , ngerman = { {Notation}{Notationen}
+ , Nominativ = [die]{Notation}[die]{Notationen}
+ , Genitiv = [der]{Notation}[der]{Notationen}
+ , Dativ = [der]{Notation}[den]{Notationen}
+ , Akkusativ = [die]{Notation}[die]{Notationen}
+ }
, italian = [la]{notazione}[le]{notazioni}
, portuguese = [a]{notação}[as]{notações}
, brazilian = [a]{notação}[as]{notações}
@@ -1847,7 +2040,12 @@
, Crefname = {
, english = {Notation}{Notations}
, french = [La]{notation}[Les]{notations}
- , ngerman = {Notation}{Notationen}
+ , ngerman = { {Notation}{Notationen}
+ , Nominativ = [Die]{Notation}[Die]{Notationen}
+ , Genitiv = [Der]{Notation}[Der]{Notationen}
+ , Dativ = [Der]{Notation}[Den]{Notationen}
+ , Akkusativ = [Die]{Notation}[Die]{Notationen}
+ }
, italian = [La]{notazione}[Le]{notazioni}
, portuguese = [A]{notação}[As]{notações}
, brazilian = [A]{notação}[As]{notações}
@@ -1877,7 +2075,12 @@
, crefname = {
, english = {observation}{observations}
, french = [la]{observation}[les]{observations}
- , ngerman = {Beobachtung}{Beobachtungen}
+ , ngerman = { {Beobachtung}{Beobachtungen}
+ , Nominativ = [die]{Beobachtung}[die]{Beobachtungen}
+ , Genitiv = [der]{Beobachtung}[der]{Beobachtungen}
+ , Dativ = [der]{Beobachtung}[den]{Beobachtungen}
+ , Akkusativ = [die]{Beobachtung}[die]{Beobachtungen}
+ }
, italian = [l']{osservazione}[le]{osservazioni}
, portuguese = [a]{observação}[as]{observações}
, brazilian = [a]{observação}[as]{observações}
@@ -1890,7 +2093,12 @@
, Crefname = {
, english = {Observation}{Observations}
, french = [La]{observation}[Les]{observations}
- , ngerman = {Beobachtung}{Beobachtungen}
+ , ngerman = { {Beobachtung}{Beobachtungen}
+ , Nominativ = [Die]{Beobachtung}[Die]{Beobachtungen}
+ , Genitiv = [Der]{Beobachtung}[Der]{Beobachtungen}
+ , Dativ = [Der]{Beobachtung}[Den]{Beobachtungen}
+ , Akkusativ = [Die]{Beobachtung}[Die]{Beobachtungen}
+ }
, italian = [L']{osservazione}[Le]{osservazioni}
, portuguese = [A]{observação}[As]{observações}
, brazilian = [A]{observação}[As]{observações}
@@ -1920,7 +2128,12 @@
, crefname = {
, english = {postulate}{postulates}
, french = [le]{postulat}[les]{postulats}
- , ngerman = {Postulat}{Postulate}
+ , ngerman = { {Postulat}{Postulate}
+ , Nominativ = [das]{Postulat}[die]{Postulate}
+ , Genitiv = [des]{Postulates}[der]{Postulate}
+ , Dativ = [dem]{Postulat}[den]{Postulaten}
+ , Akkusativ = [das]{Postulat}[die]{Postulate}
+ }
, italian = [il]{postulato}[i]{postulati}
, portuguese = [o]{postulado}[os]{postulados}
, brazilian = [o]{postulado}[os]{postulados}
@@ -1933,7 +2146,12 @@
, Crefname = {
, english = {Postulate}{Postulates}
, french = [Le]{postulat}[Les]{postulats}
- , ngerman = {Postulat}{Postulate}
+ , ngerman = { {Postulat}{Postulate}
+ , Nominativ = [Das]{Postulat}[Die]{Postulate}
+ , Genitiv = [Des]{Postulates}[Der]{Postulate}
+ , Dativ = [Dem]{Postulat}[Den]{Postulaten}
+ , Akkusativ = [Das]{Postulat}[Die]{Postulate}
+ }
, italian = [Il]{postulato}[I]{postulati}
, portuguese = [O]{postulado}[Os]{postulados}
, brazilian = [O]{postulado}[Os]{postulados}
@@ -1963,7 +2181,12 @@
, crefname = {
, english = {problem}{problems}
, french = [le]{problème}[les]{problèmes}
- , ngerman = {Problem}{Probleme}
+ , ngerman = { {Problem}{Probleme}
+ , Nominativ = [das]{Problem}[die]{Probleme}
+ , Genitiv = [des]{Problems}[der]{Probleme}
+ , Dativ = [dem]{Problem}[den]{Problemen}
+ , Akkusativ = [das]{Problem}[die]{Probleme}
+ }
, italian = [il]{problema}[i]{problemi}
, portuguese = [o]{problema}[os]{problemas}
, brazilian = [o]{problema}[os]{problemas}
@@ -1976,7 +2199,12 @@
, Crefname = {
, english = {Problem}{Problems}
, french = [Le]{problème}[Les]{problèmes}
- , ngerman = {Problem}{Probleme}
+ , ngerman = { {Problem}{Probleme}
+ , Nominativ = [Das]{Problem}[Die]{Probleme}
+ , Genitiv = [Des]{Problems}[Der]{Probleme}
+ , Dativ = [Dem]{Problem}[Den]{Problemen}
+ , Akkusativ = [Das]{Problem}[Die]{Probleme}
+ }
, italian = [Il]{problema}[I]{problemi}
, portuguese = [O]{problema}[Os]{problemas}
, brazilian = [O]{problema}[Os]{problemas}
@@ -2006,7 +2234,12 @@
, crefname = {
, english = {property}{properties}
, french = [la]{propriété}[les]{propriétés}
- , ngerman = {Eigenschaft}{Eigenschaften}
+ , ngerman = { {Eigenschaft}{Eigenschaften}
+ , Nominativ = [die]{Eigenschaft}[die]{Eigenschaften}
+ , Genitiv = [der]{Eigenschaft}[der]{Eigenschaften}
+ , Dativ = [der]{Eigenschaft}[den]{Eigenschaften}
+ , Akkusativ = [die]{Eigenschaft}[die]{Eigenschaften}
+ }
, italian = [la]{proprietà}[le]{proprietà}
, portuguese = [a]{propriedade}[as]{propriedades}
, brazilian = [a]{propriedade}[as]{propriedades}
@@ -2019,7 +2252,12 @@
, Crefname = {
, english = {Property}{Properties}
, french = [La]{propriété}[Les]{propriétés}
- , ngerman = {Eigenschaft}{Eigenschaften}
+ , ngerman = { {Eigenschaft}{Eigenschaften}
+ , Nominativ = [Die]{Eigenschaft}[Die]{Eigenschaften}
+ , Genitiv = [Der]{Eigenschaft}[Der]{Eigenschaften}
+ , Dativ = [Der]{Eigenschaft}[Den]{Eigenschaften}
+ , Akkusativ = [Die]{Eigenschaft}[Die]{Eigenschaften}
+ }
, italian = [La]{proprietà}[Le]{proprietà}
, portuguese = [A]{propriedade}[As]{propriedades}
, brazilian = [A]{propriedade}[As]{propriedades}
@@ -2049,7 +2287,12 @@
, crefname = {
, english = {proposition}{propositions}
, french = [la]{proposition}[les]{propositions}
- , ngerman = {Proposition}{Propositionen}
+ , ngerman = { {Proposition}{Propositionen}
+ , Nominativ = [die]{Proposition}[die]{Propositionen}
+ , Genitiv = [der]{Proposition}[der]{Propositionen}
+ , Dativ = [der]{Proposition}[den]{Propositionen}
+ , Akkusativ = [die]{Proposition}[die]{Propositionen}
+ }
, italian = [la]{proposizione}[le]{proposte}
, portuguese = [a]{proposição}[as]{proposições}
, brazilian = [a]{proposição}[as]{proposições}
@@ -2062,7 +2305,12 @@
, Crefname = {
, english = {Proposition}{Propositions}
, french = [La]{proposition}[Les]{propositions}
- , ngerman = {Proposition}{Propositionen}
+ , ngerman = { {Proposition}{Propositionen}
+ , Nominativ = [Die]{Proposition}[Die]{Propositionen}
+ , Genitiv = [Der]{Proposition}[Der]{Propositionen}
+ , Dativ = [Der]{Proposition}[Den]{Propositionen}
+ , Akkusativ = [Die]{Proposition}[Die]{Propositionen}
+ }
, italian = [La]{proposizione}[Le]{proposte}
, portuguese = [A]{proposição}[As]{proposições}
, brazilian = [A]{proposição}[As]{proposições}
@@ -2092,7 +2340,12 @@
, crefname = {
, english = {question}{questions}
, french = [la]{question}[les]{questions}
- , ngerman = {Frage}{Fragen}
+ , ngerman = { {Frage}{Fragen}
+ , Nominativ = [die]{Frage}[die]{Fragen}
+ , Genitiv = [der]{Frage}[der]{Fragen}
+ , Dativ = [der]{Frage}[den]{Fragen}
+ , Akkusativ = [die]{Frage}[die]{Fragen}
+ }
, italian = [la]{domanda}[le]{domande}
, portuguese = [a]{pergunta}[as]{perguntas}
, brazilian = [a]{pergunta}[as]{perguntas}
@@ -2105,7 +2358,12 @@
, Crefname = {
, english = {Question}{Questions}
, french = [La]{question}[Les]{questions}
- , ngerman = {Frage}{Fragen}
+ , ngerman = { {Frage}{Fragen}
+ , Nominativ = [Die]{Frage}[Die]{Fragen}
+ , Genitiv = [Der]{Frage}[Der]{Fragen}
+ , Dativ = [Der]{Frage}[Den]{Fragen}
+ , Akkusativ = [Die]{Frage}[Die]{Fragen}
+ }
, italian = [La]{domanda}[Le]{domande}
, portuguese = [A]{pergunta}[As]{perguntas}
, brazilian = [A]{pergunta}[As]{perguntas}
@@ -2122,7 +2380,7 @@
, heading = {
, english = Recall
, french = Rappel
- , ngerman = Rückruf
+ , ngerman = Erinnerung
, italian = Richiamo
, portuguese = Recordação
, brazilian = Recordação
@@ -2135,7 +2393,12 @@
, crefname = {
, english = {recall}{recalls}
, french = [le]{rappel}[les]{rappels}
- , ngerman = {Rückruf}{Rückrufe}
+ , ngerman = { {Erinnerung}{Erinnerungen}
+ , Nominativ = [die]{Erinnerung}[die]{Erinnerungen}
+ , Genitiv = [der]{Erinnerung}[der]{Erinnerungen}
+ , Dativ = [der]{Erinnerung}[den]{Erinnerungen}
+ , Akkusativ = [die]{Erinnerung}[die]{Erinnerungen}
+ }
, italian = [il]{richiamo}[i]{richiami}
, portuguese = [a]{recordação}[as]{recordações}
, brazilian = [a]{recordação}[as]{recordações}
@@ -2148,7 +2411,12 @@
, Crefname = {
, english = {Recall}{Recalls}
, french = [Le]{rappel}[Les]{rappels}
- , ngerman = {Rückruf}{Rückrufe}
+ , ngerman = { {Erinnerung}{Erinnerungen}
+ , Nominativ = [Die]{Erinnerung}[Die]{Erinnerungen}
+ , Genitiv = [Der]{Erinnerung}[Der]{Erinnerungen}
+ , Dativ = [Der]{Erinnerung}[Den]{Erinnerungen}
+ , Akkusativ = [Die]{Erinnerung}[Die]{Erinnerungen}
+ }
, italian = [Il]{richiamo}[I]{richiami}
, portuguese = [A]{recordação}[As]{recordações}
, brazilian = [A]{recordação}[As]{recordações}
@@ -2178,7 +2446,12 @@
, crefname = {
, english = {remark}{remarks}
, french = [la]{remarque}[les]{remarques}
- , ngerman = {Bemerkung}{Bemerkungen}
+ , ngerman = { {Bemerkung}{Bemerkungen}
+ , Nominativ = [die]{Bemerkung}[die]{Bemerkungen}
+ , Genitiv = [der]{Bemerkung}[der]{Bemerkungen}
+ , Dativ = [der]{Bemerkung}[den]{Bemerkungen}
+ , Akkusativ = [die]{Bemerkung}[die]{Bemerkungen}
+ }
, italian = [il]{commento}[i]{commenti}
, portuguese = [o]{comentário}[os]{comentários}
, brazilian = [o]{comentário}[os]{comentários}
@@ -2191,7 +2464,12 @@
, Crefname = {
, english = {Remark}{Remarks}
, french = [La]{remarque}[Les]{remarques}
- , ngerman = {Bemerkung}{Bemerkungen}
+ , ngerman = { {Bemerkung}{Bemerkungen}
+ , Nominativ = [Die]{Bemerkung}[Die]{Bemerkungen}
+ , Genitiv = [Der]{Bemerkung}[Der]{Bemerkungen}
+ , Dativ = [Der]{Bemerkung}[Den]{Bemerkungen}
+ , Akkusativ = [Die]{Bemerkung}[Die]{Bemerkungen}
+ }
, italian = [Il]{commento}[I]{commenti}
, portuguese = [O]{comentário}[Os]{comentários}
, brazilian = [O]{comentário}[Os]{comentários}
@@ -2221,7 +2499,12 @@
, crefname = {
, english = {theorem}{theorems}
, french = [le]{théorème}[les]{théorèmes}
- , ngerman = {Satz}{Sätze}
+ , ngerman = { {Satz}{Sätze}
+ , Nominativ = [der]{Satz}[die]{Sätze}
+ , Genitiv = [des]{Satzes}[der]{Sätze}
+ , Dativ = [dem]{Satz}[den]{Sätzen}
+ , Akkusativ = [den]{Satz}[die]{Sätze}
+ }
, italian = [il]{teorema}[i]{teoremi}
, portuguese = [o]{teorema}[os]{teoremas}
, brazilian = [o]{teorema}[os]{teoremas}
@@ -2234,7 +2517,12 @@
, Crefname = {
, english = {Theorem}{Theorems}
, french = [Le]{théorème}[Les]{théorèmes}
- , ngerman = {Satz}{Sätze}
+ , ngerman = { {Satz}{Sätze}
+ , Nominativ = [Der]{Satz}[Die]{Sätze}
+ , Genitiv = [Des]{Satzes}[Der]{Sätze}
+ , Dativ = [Dem]{Satz}[Den]{Sätzen}
+ , Akkusativ = [Den]{Satz}[Die]{Sätze}
+ }
, italian = [Il]{teorema}[I]{teoremi}
, portuguese = [O]{teorema}[Os]{teoremas}
, brazilian = [O]{teorema}[Os]{teoremas}
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf
index 3cc6dce323..8731eb2d97 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.pdf
+++ b/macros/latex/contrib/crefthe/crefthe-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex
index 82d7460683..904cb5eee7 100644
--- a/macros/latex/contrib/crefthe/crefthe-doc.tex
+++ b/macros/latex/contrib/crefthe/crefthe-doc.tex
@@ -117,7 +117,7 @@
\begin{document}
-\def\PackageVersion{2023/07/22}
+\def\PackageVersion{2023/07/23}
\title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles}
\author{Jinwen XU}
@@ -133,7 +133,7 @@
\section{The motivation}
-By default, with \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. While this might be acceptable for English, it is certainly not good enough for languages such as French, Italian, Portuguese, Spanish, etc. --- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
+By default, with \textsf{cleveref}'s \lstinline|\cref| to reference theorem-like environments, the names do not contain definite articles. While this might be acceptable for English, it is certainly not good enough for languages such as French, German, Italian, Portuguese, Spanish, etc. --- in these cases there shall be grammatical errors and would give you a strong feeling that it is machine-generated.
However, even if we manually add the definite articles to the names, there would still be other problems. As an example, if we define the French names to be:
@@ -257,38 +257,82 @@ In German, there are four declensions: nominative (\texttt{Nominativ}), genitive
}
\end{code}
-The first line in the configuration is the default set of names when no variant is specified. It is recommended, though not required.
+\begin{tip}
+ The first line in the configuration is the default set of names when no variant is specified. It is recommended, though not required.
+\end{tip}
After this, you may refer to a theorem via
\begin{code}
-\crefthe[(*\meta{prep}*),variant=(*\meta{declension}*)]{(*\meta{label}*)}
+\crefthe[(*\meta{prep}*),(*\commandoption{variant}*)=(*\meta{declension}*)]{(*\meta{label}*)}
\end{code}
You may also use the shortcuts (\texttt{nom.}, \texttt{gen.}, \texttt{dat.} and \texttt{akk.}), such as:
\begin{code}
-\crefthe[(*\meta{prep}*),Nom]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),Nom.]{(*\meta{label}*)}
-\crefthe[(*\meta{prep}*),nom]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),nom.]{(*\meta{label}*)}
+\crefthe[(*\meta{prep}*),(*\commandoption{Nom}*)]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),(*\commandoption{Nom.}*)]{(*\meta{label}*)}
+\crefthe[(*\meta{prep}*),(*\commandoption{nom}*)]{(*\meta{label}*)} \crefthe[(*\meta{prep}*),(*\commandoption{nom.}*)]{(*\meta{label}*)}
\end{code}
These four are all equivalent and you may choose one to use according to your preference.
+Article contractions are by default enabled for German, but if you don't want this, you may use the package option \packageoption{disable german article contractions}.
+
+\section{Using abbreviation form}
+
+There is another usage of \lstinline|\crefthevariantname|: setting the abbreviation form. This allows you to use both the full form and the abbreviation form in the same document. For example, you may set
+
+\begin{code}
+\crefthevariantname{theorem}
+ {
+ {theorem}{theorems}
+ , abbr. = {th.}{ths.}
+ }
+\end{code}
+
+Then, when referencing, you can use the command option \commandoption{abbr.} to enable the abbreviation form:
+
+\begin{code}
+\crefthe[(*\commandoption{abbr.}*)]{(*\meta{label}*)}
+\end{code}
+
\section{Regarding the upper and lower cases}
-As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe| and \lstinline|\nameCrefsthe|, similar to \lstinline|\Crefname|, \lstinline|\Cref|, \lstinline|\nameCref|\linebreak and \lstinline|\nameCrefs|, reserved for using at the beginning of a sentence. \lstinline|\Crefthe| (and the name-only relatives) can handle case changing automatically: for example, with \lstinline|\Crefthe[À]{thm1,thm2,prop3}|, you will get something like
+As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe| and \lstinline|\nameCrefsthe|, similar to \lstinline|\Crefname|, \lstinline|\Cref|, \lstinline|\nameCref|\linebreak and \lstinline|\nameCrefs|, reserved for using at the beginning of a sentence. For languages with declensions, such as German, there is also a \lstinline|\Crefthevariantname|, whose usage is similar to the \lstinline|\crefthevariantname| introduced above.
+
+\lstinline|\Crefthe| (and the name-only relatives) can handle case changing automatically: for example, with \lstinline|\Crefthe[À]{thm1,thm2,prop3}|, you will get something like
\begin{demo}
\textbf{Aux} théorèmes 1 et 2 et \textbf{à la} proposition 3
\end{demo}
-Of course you will have to define the \lstinline|\Crefthename|s separately, for example as:
+Of course, you would have to define the \lstinline|\Crefthename|s separately, for example as:
\begin{code}
\Crefthename{theorem}[Le]{théorème}[Les]{théorèmes}
\Crefthename{proposition}[La]{proposition}[Les]{propositions}
\end{code}
+\section{On the coordination of gender and number}
+
+In many languages, adjectives and verbs need to be properly inflected for the gender and singular or plural of the noun. Take French as example, you may see the following expressions:
+\begin{itemize}
+ \item La proposition précédent\textbf{e}/suivant\textbf{e}... (The previous/next proposition...)
+ \item La proposition est illustré\textbf{e} par... (The proposition is illustrated by...)
+\end{itemize}
+Thus if you later decide to change this proposition (feminine) into a theorem (masculine), you would have to modify the adjectives and verbs accordingly. Similar things happens in many other languages, and it is not quite realistic to fully automate such modifications.
+
+The name-only relatives \lstinline|\namecrefthe|, \lstinline|\nameCrefthe| etc. are designed for this purpose. They do not automatically solve these kinds of problems, but you may later search for the \meta{label} of the environment that changes, and modify the surrounding context manually --- in other words, these commands serve as recorders: if you write the word like \textquote{theorem} or \textquote{proposition} directly in the text, then later it would be unclear which part of your text needs to be update when the environment itself changes.
+
+There is another case. For example, if you wish to say \textquote{ce théorème} (\textquote{this theorem}), the pre-defined set of names that contains definite articles would be somewhat redundant. In such situation, you may use the command option \commandoption{noun} to show only the noun:
+
+\begin{code}
+\namecref[(*\commandoption{noun}*)]{(*\meta{label}*)}
+\end{code}
+
+But then of course you shall need to write the word \textquote{Ce/Cet/Cette} (these are all different forms of \textquote{This} in French) by yourself --- and if you later decide to change the type of the environment to which this \meta{label} refers, don't forget to change this word accordingly.
+
+\pagebreak
\section{For writing multi-language documents}
To place hyperlinks at the correct place, \lstinline|\crefthename| touches the corresponding format macro \lstinline|\crefformat| internally, which makes the format language-dependent. If you are writing multi-language documents, you may consider putting \lstinline|\crefthename| inside your language configuration so as to reset it each time you select a new language.
@@ -329,8 +373,8 @@ There are so many people I wish to express my gratitude to during the developmen
\section{Known issues}
\begin{itemize}
\item \crefthepackage{} currently works for French, German, Italian, Portuguese (European and Brazilian) and Spanish --- certainly more languages would be added to this list in the future.
- \item For now, you cannot specify the masculine/masculine/... of words. This means, for instance, that you cannot make the suffix adjective automatically adopted to the word when using \lstinline|\namecref| --- as an example, if you wish to say \textquote{la proposition suivante} (in French), you would have to write the feminine adjective manually. The situation should be improved with the introduction of a new key-value configuration system, which is currently on the todo-list.
- Meanwhile, you may consider the package \textsf{zref-clever}, which has a much more powerful and sophisticated interface for configuring cross referencing.
+ % \item For now, you cannot specify the masculine/masculine/... of words. This means, for instance, that you cannot make the suffix adjective automatically adopted to the word when using \lstinline|\namecref| --- as an example, if you wish to say \textquote{la proposition suivante} (in French), you would have to write the feminine adjective manually. The situation should be improved with the introduction of a new key-value configuration system, which is currently on the todo-list.
+ % Meanwhile, you may consider the package \textsf{zref-clever}, which has a much more powerful and sophisticated interface for configuring cross referencing.
\item The names of theorem-like environments are not provided here, you need to define them by yourself. However, users are encouraged to use the \ProjLib{} toolkit (more specifically, the internal package \textsf{create-theorem}), which already handles everything for you.
\end{itemize}
diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty
index e1ce211bb6..4097b0aefc 100644
--- a/macros/latex/contrib/crefthe/crefthe.sty
+++ b/macros/latex/contrib/crefthe/crefthe.sty
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage
{crefthe}
- {2023/07/22} {}
+ {2023/07/23} {}
{Cross referencing with proper definite articles}
\keys_define:nn { crefthe }
@@ -21,6 +21,12 @@
, overwrite .initial:n = { false }
, nameinlink .bool_set:N = \l__crefthe_nameinlink_bool
, nameinlink .initial:n = { false }
+
+ , disable-german-article-contractions .bool_set:N = \l__crefthe_disable_contractions_for_german_bool
+ , disable-german-article-contractions .initial:n = { false }
+ , disable~german~article~contractions .bool_set:N = \l__crefthe_disable_contractions_for_german_bool
+ , disable german article contractions .bool_set:N = \l__crefthe_disable_contractions_for_german_bool
+
, unknown .code:n =
{ \PassOptionsToPackage { \CurrentOption } { cleveref } }
}
@@ -89,6 +95,8 @@
\keys_define:nn { crefthe-setting }
{
+ , noun .code:n = { \RenewDocumentCommand \crefthemark { m } {} }
+
, variant .tl_set:N = \l__crefthe_variant_tl
% , nom .meta:n = { variant = Nominativ }
@@ -125,6 +133,8 @@
% #5 = label
% #6 = original command, such as \crefthe_cref_original:w or \crefthe_Cref_original:w
{
+ \group_begin:
+
\tl_set:Nn \l__crefthe_variant_tl {}
\bool_gset_false:N \g__crefthe_has_prep_bool
\tl_set:Nn \l__crefthe_prep_tl {}
@@ -137,6 +147,11 @@
\bool_set_false:N \l__crefthe_variant_matched_bool
\str_if_in:nnF { ##1 } { = }
{% for keys without values
+ \str_case:nnT { ##1 }
+ {
+ { abbr } { \tl_set:Nn \l__crefthe_variant_tl { abbr. } }
+ { abbr. } { \tl_set:Nn \l__crefthe_variant_tl { abbr. } }
+ } { \bool_set_true:N \l__crefthe_variant_matched_bool }
\str_if_eq:VnT \languagename { ngerman }
{
\str_case:nnT { ##1 }
@@ -182,12 +197,12 @@
}
}
}
- \group_begin:
\bool_if:NTF #1
{ #6 * { #5 } }
{ #6 { #5 } }
- \group_end:
\tl_gclear:N \l__crefthe_prep_each_tl
+
+ \group_end:
}
% \__crefthe_prep_mode: defines the default mode for supported languages
@@ -493,25 +508,30 @@
{ De~le } { Du }
{ De~les } { Des }
}
-\tl_const:Nn \c_crefthe_contraction_rule_ngerman_tl
- {
- { an~dem } { am }
- { an~das } { ans }
- { bei~dem } { beim }
- { in~dem } { im }
- { in~das } { ins }
- { von~dem } { vom }
- { zu~dem } { zum }
- { zu~der } { zur }
- { An~dem } { Am }
- { An~das } { Ans }
- { Bei~dem } { Beim }
- { In~dem } { Im }
- { In~das } { Ins }
- { Von~dem } { Vom }
- { Zu~dem } { Zum }
- { Zu~der } { Zur }
+
+\bool_if:NF \l__crefthe_disable_contractions_for_german_bool
+ {
+ \tl_const:Nn \c_crefthe_contraction_rule_ngerman_tl
+ {
+ { an~dem } { am }
+ { an~das } { ans }
+ { bei~dem } { beim }
+ { in~dem } { im }
+ { in~das } { ins }
+ { von~dem } { vom }
+ { zu~dem } { zum }
+ { zu~der } { zur }
+ { An~dem } { Am }
+ { An~das } { Ans }
+ { Bei~dem } { Beim }
+ { In~dem } { Im }
+ { In~das } { Ins }
+ { Von~dem } { Vom }
+ { Zu~dem } { Zum }
+ { Zu~der } { Zur }
+ }
}
+
\tl_const:Nn \c_crefthe_contraction_rule_italian_tl
{
{ a~il } { al }
@@ -585,6 +605,7 @@
{ Su~gli } { Sugli }
{ Su~le } { Sulle }
}
+
\tl_const:Nn \c_crefthe_contraction_rule_spanish_tl
{
{ a~el } { al }
@@ -592,6 +613,7 @@
{ A~el } { Al }
{ De~el } { Del }
}
+
\tl_const:Nn \c_crefthe_contraction_rule_portuguese_tl
{
{ a~o } { ao }