texlive[62244] Master: create-theorem (27feb22)

commits+karl at tug.org commits+karl at tug.org
Sun Feb 27 22:31:16 CET 2022


Revision: 62244
          http://tug.org/svn/texlive?view=revision&revision=62244
Author:   karl
Date:     2022-02-27 22:31:16 +0100 (Sun, 27 Feb 2022)
Log Message:
-----------
create-theorem (27feb22)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/create-theorem/
    trunk/Master/texmf-dist/doc/latex/create-theorem/LICENSE
    trunk/Master/texmf-dist/doc/latex/create-theorem/README.md
    trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
    trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex
    trunk/Master/texmf-dist/tex/latex/create-theorem/
    trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty
    trunk/Master/tlpkg/tlpsrc/create-theorem.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/create-theorem/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/LICENSE	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/LICENSE	2022-02-27 21:31:16 UTC (rev 62244)
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c  2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+    Everyone is allowed to distribute verbatim copies of this
+    license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute.  This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but 
+it is written in such a way that you can use it even if your work is 
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work.  If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+   `Work'
+    Any work being distributed under this License.
+    
+   `Derived Work'
+    Any work that under any applicable law is derived from the Work.
+
+   `Modification' 
+    Any procedure that produces a Derived Work under any applicable
+    law -- for example, the production of a file containing an
+    original file associated with the Work or a significant portion of
+    such a file, either verbatim or with modifications and/or
+    translated into another language.
+
+   `Modify'
+    To apply any procedure that produces a Derived Work under any
+    applicable law.
+    
+   `Distribution'
+    Making copies of the Work available from one person to another, in
+    whole or in part.  Distribution includes (but is not limited to)
+    making any electronic components of the Work accessible by
+    file transfer protocols such as FTP or HTTP or by shared file
+    systems such as Sun's Network File System (NFS).
+
+   `Compiled Work'
+    A version of the Work that has been processed into a form where it
+    is directly usable on a computer system.  This processing may
+    include using installation facilities provided by the Work,
+    transformations of the Work, copying of components of the Work, or
+    other activities.  Note that modification of any installation
+    facilities provided by the Work constitutes modification of the Work.
+
+   `Current Maintainer'
+    A person or persons nominated as such within the Work.  If there is
+    no such explicit nomination then it is the `Copyright Holder' under
+    any applicable law.
+
+   `Base Interpreter' 
+    A program or process that is normally needed for running or
+    interpreting a part or the whole of the Work.    
+
+    A Base Interpreter may depend on external components but these
+    are not considered part of the Base Interpreter provided that each
+    external component clearly identifies itself whenever it is used
+    interactively.  Unless explicitly specified when applying the
+    license to the Work, the only applicable Base Interpreter is a
+    `LaTeX-Format' or in the case of files belonging to the 
+    `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1.  Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope.  In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2.  You may distribute a complete, unmodified copy of the Work as you
+received it.  Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3.  You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4.  If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work.  You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work.  Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5.  If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6.  If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition.  Only
+the Current Maintainer is allowed to add such statements of exemption 
+to a component of the Work. 
+
+  a. If a component of this Derived Work can be a direct replacement
+     for a component of the Work when that component is used with the
+     Base Interpreter, then, wherever this component of the Work
+     identifies itself to the user when used interactively with that
+     Base Interpreter, the replacement component of this Derived Work
+     clearly and unambiguously identifies itself as a modified version
+     of this component to the user when used interactively with that
+     Base Interpreter.
+     
+  b. Every component of the Derived Work contains prominent notices
+     detailing the nature of the changes to that component, or a
+     prominent reference to another file that is distributed as part
+     of the Derived Work and that contains a complete and accurate log
+     of the changes.
+  
+  c. No information in the Derived Work implies that any persons,
+     including (but not limited to) the authors of the original version
+     of the Work, provide any support, including (but not limited to)
+     the reporting and handling of errors, to recipients of the
+     Derived Work unless those persons have stated explicitly that
+     they do provide such support for the Derived Work.
+
+  d. You distribute at least one of the following with the Derived Work:
+
+       1. A complete, unmodified copy of the Work; 
+          if your distribution of a modified component is made by
+          offering access to copy the modified component from a
+          designated place, then offering equivalent access to copy
+          the Work from the same or some similar place meets this
+          condition, even though third parties are not compelled to
+          copy the Work along with the modified component;
+
+       2. Information that is sufficient to obtain a complete,
+          unmodified copy of the Work.
+
+7.  If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8.  The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9.  Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+     
+10. a. A Derived Work may be distributed under a different license
+       provided that license itself honors the conditions listed in
+       Clause 6 above, in regard to the Work, though it does not have
+       to honor the rest of the conditions in this license.
+      
+    b. If a Derived Work is distributed under a different license, that
+       Derived Work must provide sufficient documentation as part of
+       itself to allow each recipient of that Derived Work to honor the 
+       restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12.  Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work.  Except when otherwise stated in
+writing, the Copyright Holder provides the Work `as is', without
+warranty of any kind, either expressed or implied, including, but not
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose.  The entire risk as to the quality and performance
+of the Work is with you.  Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1.  Make a reasonable attempt to trace the Current Maintainer (and
+     the Copyright Holder, if the two differ) through the means of
+     an Internet or similar search.
+
+ 2.  If this search is successful, then enquire whether the Work
+     is still maintained.
+
+  a. If it is being maintained, then ask the Current Maintainer
+     to update their communication data within one month.
+     
+  b. If the search is unsuccessful or no action to resume active
+     maintenance is taken by the Current Maintainer, then announce
+     within the pertinent community your intention to take over
+     maintenance.  (If the Work is a LaTeX work, this could be
+     done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+     maintenance of the Work to you, then this takes effect
+     immediately upon announcement.
+     
+  b. If the Current Maintainer is not reachable and the Copyright
+     Holder agrees that maintenance of the Work be passed to you,
+     then this takes effect immediately upon announcement.  
+    
+ 4.  If you make an `intention announcement' as described in 2b. above
+     and after three months your intention is challenged neither by
+     the Current Maintainer nor by the Copyright Holder nor by other
+     people, then you may arrange for the Work to be changed so as
+     to name you as the (new) Current Maintainer.
+     
+ 5.  If the previously unreachable Current Maintainer becomes
+     reachable once more within three months of a change completed
+     under the terms of 3b) or 4), then that Current Maintainer must
+     become or remain the Current Maintainer upon request provided
+     they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer.  You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license.  These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license.  You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license.  It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate.  Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component.  While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community.  It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one.  Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified.  Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+  %% pig.dtx
+  %% Copyright 2005 M. Y. Name
+  %
+  % This work may be distributed and/or modified under the
+  % conditions of the LaTeX Project Public License, either version 1.3
+  % of this license or (at your option) any later version.
+  % The latest version of this license is in
+  %   http://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 has the LPPL maintenance status `maintained'.
+  % 
+  % The Current Maintainer of this work is M. Y. Name.
+  %
+  % This work consists of the files pig.dtx and pig.ins
+  % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.  
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+   The LPPL requires that distributions of the Work contain all the
+   files of the Work.  It is therefore important that you provide a
+   way for the licensee to determine which files constitute the Work.
+   This could, for example, be achieved by explicitly listing all the
+   files of the Work near the copyright notice of each file or by
+   using a line such as:
+
+    % This work consists of all files listed in manifest.txt.
+   
+   in that place.  In the absence of an unequivocal list it might be
+   impossible for the licensee to determine what is considered by you
+   to comprise the Work and, in such a case, the licensee would be
+   entitled to make reasonable conjectures as to which files comprise
+   the Work.
+

Added: trunk/Master/texmf-dist/doc/latex/create-theorem/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/README.md	2022-02-27 21:31:16 UTC (rev 62244)
@@ -0,0 +1,11 @@
+<!-- Copyright (C) 2021-2022 by Jinwen XU -->
+
+# `create-theorem` - Initializing theorem-like environments with multilingual support
+
+The package `create-theorem` provides the commands `\NameTheorem` and `\CreateTheorem` for naming and initializing theorem-like environments. They both have key-value based interface and are especially useful in multi-language documents, allowing you to easily declare theorem-like environments that automatically adapt to the language settings.
+
+*For more information, please refer to its documentation.*
+
+# License
+
+This work is released under the LaTeX Project Public License, v1.3c or later.


Property changes on: trunk/Master/texmf-dist/doc/latex/create-theorem/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf	2022-02-27 21:30:31 UTC (rev 62243)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf	2022-02-27 21:31:16 UTC (rev 62244)

Property changes on: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex	2022-02-27 21:31:16 UTC (rev 62244)
@@ -0,0 +1,385 @@
+%! TEX program = xelatex
+\documentclass[classical]{einfart}
+
+% \linenumbers
+
+\usepackage{ProjLib}
+
+\makeatletter
+\pretocmd{\@maketitle}{\vspace*{-2.5\baselineskip}}{}{}
+\makeatother
+
+%%================================
+%% For typesetting code
+%%================================
+\usepackage{listings}
+\definecolor{maintheme}{RGB}{70,130,180}
+\definecolor{forestgreen}{RGB}{21,122,81}
+\definecolor{lightergray}{gray}{0.99}
+\lstset{language=[LaTeX]TeX,
+    keywordstyle=\color{maintheme},
+    basicstyle=\ttfamily,
+    commentstyle=\color{forestgreen}\ttfamily,
+    stringstyle=\rmfamily,
+    showstringspaces=false,
+    breaklines=true,
+    frame=lines,
+    backgroundcolor=\color{lightergray},
+    flexiblecolumns=true,
+    escapeinside={(*}{*)},
+    % numbers=left,
+    numberstyle=\scriptsize, stepnumber=1, numbersep=5pt,
+    % firstnumber=last,
+}
+\providecommand{\meta}[1]{$\langle${\normalfont\itshape#1}$\rangle$}
+\lstset{moretexcs=%
+    {
+        cref,crefname,
+        Cref,Crefname,
+        crefformat,
+        crefthe,crefthename,crefthemark,
+        Crefthe,Crefthename,
+        selectlanguage,
+        theoremstyle,
+        NameTheorem, CreateTheorem,
+        regexpatchcmd,
+    }
+}
+\lstnewenvironment{code}%
+{\setstretch{1.07}\LocallyStopLineNumbers%
+\setkeys{lst}{columns=fullflexible,keepspaces=true}%
+}
+{\ResumeLineNumbers\vspace{-.25\baselineskip}}
+\lstnewenvironment{code*}%
+{\setstretch{1.07}\LocallyStopLineNumbers%
+\setkeys{lst}{numbers=left,columns=fullflexible,keepspaces=true}%
+}
+{\ResumeLineNumbers}
+
+%%================================
+%% tip
+%%================================
+\usepackage[many]{tcolorbox}
+\newenvironment{tip}[1][Tip]{%
+    \LocallyStopLineNumbers%
+    \begin{tcolorbox}[breakable,
+        enhanced,
+        width = \textwidth,
+        colback = paper, colbacktitle = paper,
+        colframe = gray!50, boxrule=0.2mm,
+        coltitle = black,
+        fonttitle = \sffamily,
+        attach boxed title to top left = {yshift=-\tcboxedtitleheight/2, xshift=.5cm},
+        boxed title style = {boxrule=0pt, colframe=paper},
+        before skip = 3mm,
+        after skip = 3mm,
+        top = 2.5mm,
+        bottom = 1.5mm,
+        title={\scshape\sffamily #1}]%
+}{\end{tcolorbox}\ResumeLineNumbers}
+
+
+\newcommand{\packageoption}[1]{\texttt{\textcolor{black!67!green}{#1}}}
+\newcommand{\commandoption}[1]{\texttt{\textcolor{black!67!cyan}{#1}}}
+
+
+\newcommand{\createtheorempackage}{\textsf{create-theorem}}
+
+\begin{document}
+
+\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
+\author{Jinwen XU}
+\thanks{Corresponding to: \texttt{\createtheorempackage{} 2022/02/27}}
+\date{February 2022, in Paris}
+
+\maketitle
+
+\begin{abstract}
+    \raggedleft
+    The package \createtheorempackage{} provides the commands \lstinline|\NameTheorem| and \lstinline|\CreateTheorem| for naming and initializing theorem-like environments. They both have key-value based interface and are especially useful in multi-language documents, allowing you to easily declare theorem-like environments that automatically adapt to the language settings.
+\end{abstract}
+
+\vspace{-.5\baselineskip}
+
+% \section*{Before everything}
+
+% Make sure that the package \textsf{crefthe} is correctly installed. If you are using TeX Live 2022 or newer, or the newest version of MikTeX, then nothing needs to be worried.
+
+\section{How to load it}
+
+First, you need a backend to provide the command \lstinline|\newtheorem| with the usual behaviour, for example, \textsf{amsthm}. After that, you can simply load the current package with:
+
+\begin{code}
+\usepackage{create-theorem}
+\end{code}
+
+\begin{tip}
+    Since \createtheorempackage{} uses \textsf{cleveref} internally, it should usually be placed near the last of your preamble --- notably, it needs to be loaded after \textsf{varioref} and \textsf{hyperref}.
+\end{tip}
+
+It has the following options:
+\begin{itemize}
+    \item \packageoption{draft} or \packageoption{fast}
+        \begin{itemize}
+            \item Fast mode. The functionality will be appropriately reduced to get faster compilation speed, recommended to use during the writing stage.
+        \end{itemize}
+    \item \packageoption{name as context}
+        \begin{itemize}
+            \item When referencing, the names correspond to the current language context. For example, the English names will be displayed when referencing a theorem-like environment in English context, no matter which language context the original environment is in.
+            \item Synonymous names: \packageoption{name-as-context} \,$|$\, \packageoption{nameascontext} \,$|$\, \packageoption{regionalref}
+        \end{itemize}
+    \item \packageoption{name as is}
+        \begin{itemize}
+            \item When referencing, the names correspond to the language contexts in which the environments are defined. For example, if the environment is defined in English context, then the English names will be displayed when referencing it, regardless of the current language context.
+            \item Synonymous names: \packageoption{name-as-is} \,$|$\, \packageoption{nameasis} \,$|$\, \packageoption{originalref}
+        \end{itemize}
+    \item \packageoption{name in link}
+        \begin{itemize}
+            \item Include the names in the hyperlinks when referencing.
+            \item Synonymous names: \packageoption{name-in-link} \,$|$\, \packageoption{nameinlink}
+        \end{itemize}
+    \item \packageoption{no preset names}
+        \begin{itemize}
+            \item Disable preset names. Use this option if you want to define you own name set.
+            \item Synonymous names: \packageoption{no-preset-names} \,$|$\, \packageoption{nopresetnames}
+        \end{itemize}
+\end{itemize}
+
+\section{How to use it}
+
+\subsection[Naming theorem-like environments]{Naming theorem-like environments with \texttt{\textbackslash\textcolor{maintheme}{NameTheorem}}}
+
+The syntax of \lstinline|\NameTheorem| is as follows:
+\begin{code}
+\NameTheorem{(*\meta{name of environment}*)}{(*\meta{key-value configuration}*)}
+\end{code}
+
+Supported keys are:
+\vspace{-.2\baselineskip}
+\begin{itemize}
+    \item \commandoption{heading}\lstinline| = |\meta{configuration}
+        \begin{itemize}
+            \item The heading of the environment, where \meta{configuration} can be:
+            \begin{itemize}
+                \item a single string in monolingual documents: \commandoption{heading}\lstinline| = |\meta{string};
+                \item a key-value name list in multilingual documents:
+\begin{code}
+(*\commandoption{heading}*) = {
+    (*\meta{language name}*) = (*\meta{string}*)
+}
+\end{code}
+            \end{itemize}
+        \end{itemize}
+    \item \commandoption{crefname}\lstinline| = |\meta{configuration}
+        \begin{itemize}
+            \item The name for \lstinline|\cref| the environment, where \meta{configuration} can be:
+            \begin{itemize}
+                \item a single string in monolingual documents: \commandoption{crefname}\lstinline| = {name}{names}|;
+                \item a key-value name list in multilingual documents:
+\begin{code}
+(*\commandoption{crefname}*) = {
+    (*\meta{language name}*) = {(*\meta{singular name}*)}{(*\meta{plural name}*)}
+}
+\end{code}
+            \end{itemize}
+            \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}
+        \end{itemize}
+    \item \commandoption{Crefname}
+        \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|.
+        \end{itemize}
+\end{itemize}
+
+\begin{center}
+    \itshape
+    If you're feeling confused, don't worry, there is an Examples section later illustrating its usage.
+\end{center}
+
+\begin{tip}
+    You can also define the names within \lstinline|\CreateTheorem| while initializing the theorem-like environments. \lstinline|\NameTheorem| is especially useful for package or class authors who wish to preset suitable names (with styles) in their packages or classes.
+\end{tip}
+
+
+\subsection[Initializing theorem-like environments]{Initializing theorem-like environments with \texttt{\textbackslash\textcolor{maintheme}{CreateTheorem}}}
+
+The syntax of \lstinline|\CreateTheorem| is as follows:
+\begin{code}
+\CreateTheorem{(*\meta{name of environment}*)}{(*\meta{key-value configuration}*)}
+\end{code}
+
+Supported keys are:
+\vspace{-.2\baselineskip}
+\begin{itemize}
+    \item \commandoption{name}\lstinline| = |\meta{configuration}
+        \begin{itemize}
+            \item Same as \lstinline|\NameTheorem{|\meta{name of environment}\lstinline|}{|\meta{configuration}\lstinline|}|.
+        \end{itemize}
+    \item \commandoption{style}\lstinline| = |\meta{theorem style}
+        \begin{itemize}
+            \item Specifying the \lstinline|\theoremstyle| for the current environment.
+            \item Synonymous names: \commandoption{apply style} \,$|$\, \commandoption{apply-style} \,$|$\, \commandoption{applystyle}
+        \end{itemize}
+    \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.
+            \item Synonymous names: \commandoption{parent-counter} \,$|$\, \commandoption{parentcounter} \,$|$\, \\\phantom{Synonymous names: }\commandoption{number within} \,$|$\, \commandoption{number-within} \,$|$\, \commandoption{numberwithin}
+        \end{itemize}
+    \item \commandoption{shared counter}\lstinline| = |\meta{shared counter}
+        \begin{itemize}
+            \item Specifying the \meta{shared counter} for the current environment, \emph{i.e.}, numbering will progress sequentially for all theorem-like environments using this counter.
+            \item Synonymous names: \commandoption{shared-counter} \,$|$\, \commandoption{sharedcounter} \,$|$\, \\\phantom{Synonymous names: }\commandoption{number like} \,$|$\, \commandoption{number-like} \,$|$\, \commandoption{numberlike}
+        \end{itemize}
+    \item \commandoption{numberless}
+        \begin{itemize}
+            \item Defining the current environment to be unnumbered.
+        \end{itemize}
+    \item \commandoption{create starred version}
+        \begin{itemize}
+            \item Defining a corresponding starred (unnumbered) version of the current environment.
+            \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}
+    \item \commandoption{copy existed}\lstinline| = |\meta{existed environment}
+        \begin{itemize}
+            \item Defining the current environment to be the same as \meta{existed environment}.
+            \item This key is usually useful in the following two situations:
+                \begin{enumerate}
+                    \item To use a more concise name. For example, with \lstinline|\CreateTheorem{thm}{|\commandoption{copy \\existed} \lstinline|= theorem}|, one can then use the name \texttt{thm} to write theorems.
+                    \item To remove the numbering of some environments. For example, one can remove the numbering of the \texttt{remark} environment with \lstinline|\CreateTheorem{remark}{|\commandoption{copy existed} \lstinline|= remark*}|.
+                \end{enumerate}
+            \item Synonymous names: \commandoption{copy-existed} \,$|$\, \commandoption{copyexisted}
+        \end{itemize}
+\end{itemize}
+
+\begin{center}
+    \itshape
+    If you're feeling confused, don't worry, check out the Examples section below.
+\end{center}
+
+\begin{tip}
+    The names for the following environments have been preset: \texttt{assertion}, \texttt{assumption}, \texttt{axiom}, \texttt{conclusion}, \texttt{conjecture}, \texttt{convention}, \texttt{corollary}, \texttt{definition}, \texttt{example}, \texttt{exercise}, \texttt{fact}, \texttt{hypothesis}, \texttt{lemma}, \texttt{notation}, \texttt{observation}, \texttt{postulate}, \texttt{problem}, \texttt{property}, \texttt{proposition}, \texttt{question}, \texttt{remark} and \texttt{theorem}. If you are fine with the preset names, then you don't need to specify the key ``\commandoption{name}'' while creating them, otherwise you shall have to use the package option ``\packageoption{no preset names}'' to disable the presets and define your own ones.
+\end{tip}
+
+\medskip
+
+Please note that, by default, an normal environment \meta{env} and its starred relative \meta{env}\texttt{*} do not share the same set of names, for the sake of generality. However, with proper usage of \commandoption{create starred version} and \commandoption{copy existed}, you are already 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 ;-)
+
+\section{Examples}
+
+\subsection{The environment \texttt{idea}}
+
+First, let's getting familiar with these two commands by creating the environment \texttt{idea}.
+
+\begin{code}
+\NameTheorem{idea}{
+    (*\commandoption{heading}*)  = Idea,
+    (*\commandoption{crefname}*) = {idea}{ideas},
+    (*\commandoption{Crefname}*) = {Idea}{Ideas},
+}
+\CreateTheorem{idea}{ parent counter = section }
+\end{code}
+
+or to do it in one turn:
+
+\begin{code}
+    \CreateTheorem{idea}{
+        (*\commandoption{name}*) = {
+            (*\commandoption{heading}*)  = Idea,
+            (*\commandoption{crefname}*) = {idea}{ideas},
+            (*\commandoption{Crefname}*) = {Idea}{Ideas},
+        },
+        (*\commandoption{parent counter}*) = section,
+    }
+\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|.)
+
+\begin{code}
+\CreateTheorem{idea}{
+    (*\commandoption{name}*) = {
+        (*\commandoption{heading}*)  = { english = Idea,
+                     french  = Idée, },
+        (*\commandoption{crefname}*) = { english = {idea}{ideas},
+                     french  = [l']{idée}[les]{idées}, },
+        (*\commandoption{Crefname}*) = { english = {Idea}{Ideas},
+                     french  = [L']{idée}[Les]{idées}, },
+    },
+    (*\commandoption{parent counter}*) = section,
+}
+\end{code}
+
+With this, if you use \lstinline|\selectlanguage{french}|, the \texttt{idea} environment shall be automatically displayed as ``Idée''. And if you \lstinline|\crefthe| it, the definite article and the name showed up properly just as expected.
+
+\medskip
+Next we shall deal with the numbering problem. Let's continue to use this environment \texttt{idea} for demonstration -- suppose that we have set the names up with \lstinline|\NameTheorem|.
+
+\subsection{Let's play with numbering}
+
+Remember the exercise I left to you at the end of the previous section? Let's do this together.
+
+\subsubsection{Numbered \texttt{idea} and numbered \texttt{idea*}}
+
+This is easy, \commandoption{copy existed} suffices:
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{parent counter}*) = section}
+\CreateTheorem{idea*}{(*\commandoption{copy existed}*) = idea}
+\end{code}
+
+\subsubsection{Numbered \texttt{idea} and unnumbered \texttt{idea*}}
+
+This is the easiest, \commandoption{create starred version} will do.
+
+\begin{code}
+\CreateTheorem{idea}{
+    (*\commandoption{parent counter}*) = section,
+    (*\commandoption{create starred version}*),
+}
+\end{code}
+
+Notice that you cannot use \lstinline|\CreateTheorem{idea*}{|\commandoption{numberless}\lstinline|}| here, since we don't have names defined for \texttt{idea*}.
+
+\subsubsection{Unnumbered \texttt{idea} and numbered \texttt{idea*}}
+
+This is a bit tricky: by default we can only create numbered \texttt{idea} or unnumbered \texttt{idea*}, and the question is how to switch them. We shall need an intermediary.
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{create starred version}*)}
+\CreateTheorem{idea-temp}{(*\commandoption{copy existed}*) = idea*}
+\CreateTheorem{idea*}{(*\commandoption{copy existed}*) = idea}
+\CreateTheorem{idea}{(*\commandoption{copy existed}*) = idea-temp}
+\end{code}
+
+\subsubsection{Unnumbered \texttt{idea} and unnumbered \texttt{idea*}}
+
+This is the combination of the first two cases --- we need to create \texttt{idea*} first and then copy it to \texttt{idea}:
+
+\begin{code}
+\CreateTheorem{idea}{(*\commandoption{create starred version}*)}
+\CreateTheorem{idea}{(*\commandoption{copy existed}*) = idea*}
+\end{code}
+
+\smallskip
+In each case, the two environments \texttt{idea} and \texttt{idea*} share the same set of names.
+
+
+\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 later versions so as to support the various situations in German.
+    \item If the option ``\packageoption{name in link}'' is enabled, the ``\packageoption{name as is}'' mode shall take longer time to produce the final result, for the current implementation uses \lstinline|\regexpatchcmd| to patch some of the referencing formats, which is not very efficient.
+    \item There may be inaccuracies in the translation of those preset names.
+\end{itemize}
+
+\medskip
+If you run into any issues or have ideas for improvement, feel free to discuss on:
+\begin{center}
+    \url{https://github.com/Jinwen-XU/create-theorem/issues}
+\end{center}
+or email me via \href{mailto:ProjLib at outlook.com}{\texttt{ProjLib at outlook.com}}.
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/create-theorem/create-theorem-doc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty	2022-02-27 21:31:16 UTC (rev 62244)
@@ -0,0 +1,1458 @@
+%%
+%% Copyright (C) 2021-2022 by Jinwen XU
+%% ------------------------------------
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.3c of this license
+%% or (at your option) any later version.  The latest version of this
+%% license is in:
+%%
+%%    http://www.latex-project.org/lppl.txt
+%%
+\NeedsTeXFormat{LaTeX2e}[2020-10-01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage
+  {create-theorem}
+  {2022/02/27} {}
+  {Initializing theorem-like environments with multilingual support}
+
+\keys_define:nn { create-theorem }
+  {
+    , draft                 .bool_set:N         = \l__crthm_fast_bool
+    , draft                 .initial:n          = { false }
+    , fast                  .bool_set:N         = \l__crthm_fast_bool
+    , name-as-context       .bool_set:N         = \l__crthm_regionalref_bool
+    , name-as-context       .initial:n          = { true }
+    , name~as~context       .bool_set:N         = \l__crthm_regionalref_bool
+    , name as context       .bool_set:N         = \l__crthm_regionalref_bool
+    , regionalref           .bool_set:N         = \l__crthm_regionalref_bool
+    , name-as-is            .bool_set_inverse:N = \l__crthm_regionalref_bool
+    , name~as~is            .bool_set_inverse:N = \l__crthm_regionalref_bool
+    , name as is            .bool_set_inverse:N = \l__crthm_regionalref_bool
+    , originalref           .bool_set_inverse:N = \l__crthm_regionalref_bool
+    , name-in-link          .bool_set:N         = \l__crthm_nameinlink_bool
+    , name-in-link          .initial:n          = { false }
+    , name~in~link          .bool_set:N         = \l__crthm_nameinlink_bool
+    , name in link          .bool_set:N         = \l__crthm_nameinlink_bool
+    , no-preset-names       .bool_set_inverse:N = \l__crthm_presetname_bool
+    , no-preset-names       .initial:n          = { false }
+    , no~preset~names       .bool_set_inverse:N = \l__crthm_presetname_bool
+    , no preset names       .bool_set_inverse:N = \l__crthm_presetname_bool
+    , unknown               .code:n             = {}
+  }
+\ProcessKeysOptions { create-theorem }
+
+\RequirePackage { aliascnt }
+
+\bool_if:NT \l__crthm_nameinlink_bool
+  {
+    \PassOptionsToPackage { nameinlink } { cleveref }
+  }
+
+\RequirePackage { crefthe }
+
+
+% Users should consider appending their languages to this list as needed,
+% otherwise the naming functionality may not work in monolingual documents.
+\clist_new:N   \g_crthm_supported_language_clist
+\clist_gset:Nn \g_crthm_supported_language_clist
+  {
+    english     ,
+    french      ,
+    ngerman     ,
+    italian     ,
+    portuguese  ,
+    brazilian   ,
+    spanish     ,
+    schinese    ,
+    tchinese    ,
+    japanese    ,
+    russian     ,
+  }
+
+\cs_new:Nn \crthm_add_to_language_list:n
+  {
+    \clist_gput_right:Nn \g_crthm_supported_language_clist { #1 }
+  }
+
+\NewDocumentCommand \CreateTheoremAddLanguage { m }
+  {
+    \crthm_add_to_language_list:n { #1 }
+  }
+
+
+\tl_new:N \l__crthm_current_env_tl
+
+\keys_define:nn { create-theorem-naming }
+  {
+    , heading      .code:n             = { \crthm_set_name_heading:ee { \l__crthm_current_env_tl } { #1 } }
+    , heading      .value_required:n   = true
+    , crefname     .code:n             = { \crthm_set_name_crefname:ee { \l__crthm_current_env_tl } { #1 } }
+    , crefname     .value_required:n   = true
+    , Crefname     .code:n             = { \crthm_set_name_Crefname:ee { \l__crthm_current_env_tl } { #1 } }
+    , Crefname     .value_required:n   = true
+    , unknown      .code:n             = {}
+  }
+
+\cs_new:Nn \crthm_set_name_heading:nn
+  % #1 = env name
+  % #2 = the settings
+  {
+    \str_if_in:nnTF { #2 } { = }
+      {% key-value definition
+        \keyval_parse:nnn
+          {}
+          { \__crthm_set_name_heading:nnn { #1 } }
+          { #2 }
+      }
+      {% simple definition
+        \clist_map_inline:Nn \g_crthm_supported_language_clist
+          {
+            \__crthm_set_name_heading:nnn { #1 } { ##1 } { #2 }
+          }
+      }
+  }
+\cs_generate_variant:Nn \crthm_set_name_heading:nn { ee }
+
+\cs_new:Nn \__crthm_set_name_heading:nnn
+  % #1 = env name
+  % #2 = language name
+  % #3 = corresponding heading name
+  {
+    \tl_gset:cn { g_crthm_name_heading_ #1 _ #2 _tl } { #3 }
+  }
+
+\cs_new:Nn \crthm_set_name_crefname:nn
+  % #1 = env name
+  % #2 = the settings
+  {
+    \crthm_set_name_crefname_generic:nnn { #1 } { #2 } { c }
+  }
+\cs_generate_variant:Nn \crthm_set_name_crefname:nn { ee }
+
+\cs_new:Nn \crthm_set_name_Crefname:nn
+  % #1 = env name
+  % #2 = the settings
+  {
+    \crthm_set_name_crefname_generic:nnn { #1 } { #2 } { C }
+  }
+\cs_generate_variant:Nn \crthm_set_name_Crefname:nn { ee }
+
+\cs_new:Nn \crthm_set_name_crefname_generic:nnn
+  % #1 = env name
+  % #2 = the settings
+  % #3 = c or C
+  {
+    \str_if_in:nnTF { #2 } { = }
+      {% key-value definition
+        \keyval_parse:nnn
+          {}
+          { \use:c { __crthm_set_name_ #3 refname:nnn } { #1 } }
+          { #2 }
+      }
+      {% simple definition
+        \clist_map_inline:Nn \g_crthm_supported_language_clist
+          {
+            \use:c { __crthm_set_name_ #3 refname:nnn } { #1 } { ##1 } { #2 }
+          }
+      }
+  }
+
+\cs_new:Nn \__crthm_set_name_crefname:nnn
+  % #1 = env name
+  % #2 = language name
+  % #3 = corresponding crefname {..}{..} or [..]{..}[..]{..}
+  {
+    \__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 [..]{..}[..]{..}
+  {
+    \__crthm_set_name_crefname_generic:w { #1 } { #2 } #3 { C }
+  }
+
+\NewExpandableDocumentCommand \__crthm_set_name_crefname_generic:w { m m O{} m O{} m m }
+  % #1 = env name
+  % #2 = language name
+  % #7 = c or C
+  {
+    \tl_if_blank:eTF { #3 }
+      {
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark{ \!\! } }
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark{ \!\! } }
+      }
+      {
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_singular_ #1 _ #2 _tl } { \crefthemark { #3 } }
+        \tl_gset:cn { g_crthm_name_ #7 ref_article_plural_ #1 _ #2 _tl } { \crefthemark { #5 } }
+      }
+    \tl_gset:cn { g_crthm_name_ #7 ref_singular_ #1 _ #2 _tl } { #4 }
+    \tl_gset:cn { g_crthm_name_ #7 ref_plural_ #1 _ #2 _tl } { #6 }
+
+    \bool_if:NTF \l__crthm_regionalref_bool
+      {% "regionalref" mode
+        \use:c { __crthm_set_name_ #7 refname_do:nnn } { #1 _crthm_regional } { #1 } { \languagename }
+      }
+      {% "originalref" mode
+        \tl_if_exist:cF { c@ #1 _crthm_original_ #2 } { \newaliascnt { #1 _crthm_original_ #2 } { #1 } }
+        \use:c { __crthm_set_name_ #7 refname_do:nnn } { #1 _crthm_original_ #2 } { #1 } { #2 }
+      }
+  }
+
+\cs_new:Nn \__crthm_set_name_crefname_do:nnn
+  % #1 = counter name
+  % #2 = env name
+  % #3 = language name
+  {
+    \__crthm_set_name_crefname_do_generic:nnnn { #1 } { #2 } { #3 } { c }
+  }
+
+\cs_new:Nn \__crthm_set_name_Crefname_do:nnn
+  % #1 = counter name
+  % #2 = env name
+  % #3 = language name
+  {
+    \__crthm_set_name_crefname_do_generic:nnnn { #1 } { #2 } { #3 } { C }
+  }
+
+\seq_new:N \g__crthm_format_already_set_seq
+
+\cs_new:Nn \__crthm_set_name_crefname_do_generic:nnnn
+  % #1 = counter name
+  % #2 = env name
+  % #3 = language name
+  % #4 = c or C
+  {
+    \tl_gset:cn { #4 ref@ #1 @name }
+      {
+        \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl }
+        \bool_if:NTF \g__crefthe_has_prep_bool
+          {
+            \tl_use:c { g_crthm_name_ cref_singular_ #2 _ #3 _tl }
+          }
+          {
+            \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+          }
+      }
+    \tl_gset:cn { #4 ref@ #1 @name at plural }
+      { % Use the definite article of the original language, with name's casing depends on the preposition and the article
+        \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl }
+        \bool_if:NTF \g__crefthe_has_prep_bool
+          {
+            \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+          }
+          {
+            \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+          }
+      }
+    %% Use the definite article of the original language, with name's casing correspond to the article
+    % \tl_gset:cn { #4 ref@ #1 @name }
+    %   {
+    %     \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl }
+    %     \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+    %   }
+    % \tl_gset:cn { #4 ref@ #1 @name at plural }
+    %   {
+    %     \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl }
+    %     \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+    %   }
+    %% Use the definite article of the current language, with name's casing correspond to the article
+    % \tl_gset:cn { #4 ref@ #1 @name }
+    %   {
+    %     \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ \languagename _tl }
+    %     \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+    %   }
+    % \tl_gset:cn { #4 ref@ #1 @name at plural }
+    %   {
+    %     \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl }
+    %     \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+    %   }
+
+    \seq_if_in:NnF \g__crthm_format_already_set_seq { #2 _ #3 }
+      {
+        \@crefcopyformats { #2 _ #3 } { #1 }
+        \seq_gput_right:Nn \g__crthm_format_already_set_seq { #2 _ #3 }
+      }
+
+    \bool_if:NF \l__crthm_fast_bool
+      { % Patch the cref formats so that definite articles are placed outside the hyperlinks
+        \bool_if:NT \l__crthm_nameinlink_bool
+          { % Use the definite article of the original language, with name's casing depends on the preposition and the article
+            \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+              { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl } }
+              {
+                \bool_if:NTF \g__crefthe_has_prep_bool
+                  {
+                    \tl_use:c { g_crthm_name_ cref_singular_ #2 _ #3 _tl }
+                  }
+                  {
+                    \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl }
+                  }
+              }
+            \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format at first } { #4 ref@ #1 @name at plural }
+              { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+              {
+                \bool_if:NTF \g__crefthe_has_prep_bool
+                  {
+                    \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+                  }
+                  {
+                    \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+                  }
+              }
+            \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name at plural }
+              { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+              {
+                \bool_if:NTF \g__crefthe_has_prep_bool
+                  {
+                    \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+                  }
+                  {
+                    \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+                  }
+              }
+            \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format at first } { #4 ref@ #1 @name at plural }
+              { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+              {
+                \bool_if:NTF \g__crefthe_has_prep_bool
+                  {
+                    \tl_use:c { g_crthm_name_ cref_plural_ #2 _ #3 _tl }
+                  }
+                  {
+                    \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl }
+                  }
+              }
+            %% Use the definite article of the original language, with name's casing correspond to the article
+            % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ #3 _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format at first } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format at first } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ #3 _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+            %% Use the definite article of the current language, with name's casing correspond to the article
+            % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format } { #4 ref@ #1 @name }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_singular_ #2 _ \languagename _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_singular_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 2 } { #4 ref@ #1 @format at first } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+            % \crefthe_patch_format:nnnnn { 3 } { #4 refrange@ #1 @format at first } { #4 ref@ #1 @name at plural }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_article_plural_ #2 _ \languagename _tl } }
+            %   { \tl_use:c { g_crthm_name_ #4 ref_plural_ #2 _ #3 _tl } }
+          }
+      }
+  }
+
+\NewDocumentCommand \NameTheorem { m m }
+  {
+    \tl_set:Nn \l__crthm_current_env_tl { #1 }
+    \newcounter { #1 }
+    \keys_set:nn { create-theorem-naming } { #2 }
+  }
+
+\bool_new:N \l__crthm_creating_apply_style_bool
+\tl_new:N   \l__crthm_creating_apply_style_tl
+\bool_new:N \l__crthm_creating_numberless_bool
+\bool_new:N \l__crthm_creating_create_starred_bool
+\bool_new:N \l__crthm_creating_copy_existed_bool
+\tl_new:N   \l__crthm_creating_copy_existed_tl
+\keys_define:nn { create-theorem-creating }
+  {
+    , name                        .code:n             = { \exp_args:Ne \NameTheorem { \l__crthm_current_env_tl } { #1 } }
+    , name                        .value_required:n   = true
+    , style                       .code:n             = { \bool_set_true:N \l__crthm_creating_apply_style_bool
+                                                          \tl_set:Nn \l__crthm_creating_apply_style_tl { #1 }  }
+    , style                       .value_required:n   = true
+    , apply~style                 .meta:n             = { style = #1 }
+    , apply~style                 .value_required:n   = true
+    , apply-style                 .meta:n             = { style = #1 }
+    , apply-style                 .value_required:n   = true
+    , apply style                 .meta:n             = { style = #1 }
+    , apply style                 .value_required:n   = true
+    , numberless                  .bool_set:N         = \l__crthm_creating_numberless_bool
+    , create~starred~version      .bool_set:N         = \l__crthm_creating_create_starred_bool
+    , create-starred-version      .meta:n             = { create~starred~version }
+    , create starred version      .meta:n             = { create~starred~version }
+    , create~numberless~version   .meta:n             = { create~starred~version }
+    , create-numberless-version   .meta:n             = { create~starred~version }
+    , create numberless version   .meta:n             = { create~starred~version }
+    , copy~existed                .code:n             = { \bool_set_true:N \l__crthm_creating_copy_existed_bool
+                                                          \tl_set:Nn \l__crthm_creating_copy_existed_tl { #1 }  }
+    , copy~existed                .value_required:n   = true
+    , copy-existed                .meta:n             = { copy~existed = #1 }
+    , copy-existed                .value_required:n   = true
+    , copy existed                .meta:n             = { copy~existed = #1 }
+    , copy existed                .value_required:n   = true
+    , unknown                     .code:n             = {}
+  }
+
+\keys_define:nn { create-theorem-creating / counter-management }
+  {
+    , parent~counter              .code:n             = { \crthm_counter_within:ee { \l__crthm_current_env_tl } { #1 } }
+    , parent~counter              .value_required:n   = true
+    , parent-counter              .meta:n             = { parent~counter = #1 }
+    , parent-counter              .value_required:n   = true
+    , parent counter              .meta:n             = { parent~counter = #1 }
+    , parent counter              .value_required:n   = true
+    , number~within               .meta:n             = { parent~counter = #1 }
+    , number~within               .value_required:n   = true
+    , number-within               .meta:n             = { parent~counter = #1 }
+    , number-within               .value_required:n   = true
+    , number within               .meta:n             = { parent~counter = #1 }
+    , number within               .value_required:n   = true
+    , shared~counter              .code:n             = { \crthm_counter_alias:ee { \l__crthm_current_env_tl } { #1 } }
+    , shared~counter              .value_required:n   = true
+    , shared-counter              .meta:n             = { shared~counter = #1 }
+    , shared-counter              .value_required:n   = true
+    , shared counter              .meta:n             = { shared~counter = #1 }
+    , shared counter              .value_required:n   = true
+    , number~like                 .meta:n             = { shared~counter = #1 }
+    , number~like                 .value_required:n   = true
+    , number-like                 .meta:n             = { shared~counter = #1 }
+    , number-like                 .value_required:n   = true
+    , number like                 .meta:n             = { shared~counter = #1 }
+    , number like                 .value_required:n   = true
+    , unknown                     .code:n             = {}
+  }
+
+\NewDocumentCommand \CreateTheorem { m m }
+  {
+    \tl_set:Nn \l__crthm_current_env_tl { #1 }
+    \bool_set_false:N \l__crthm_creating_apply_style_bool
+    \bool_set_false:N \l__crthm_creating_numberless_bool
+    \bool_set_false:N \l__crthm_creating_create_starred_bool
+    \bool_set_false:N \l__crthm_creating_copy_existed_bool
+    \keys_set:nn { create-theorem-creating } { #2 }
+    \bool_if:NTF \l__crthm_creating_copy_existed_bool
+      {
+        \__crthm_define_env:ee { #1 } { \l__crthm_creating_copy_existed_tl }
+        \bool_if:NT \l__crthm_creating_create_starred_bool
+          {
+            \__crthm_define_env:ee { #1 * } { \l__crthm_creating_copy_existed_tl * }
+          }
+      }
+      {
+        \group_begin:
+        \bool_if:NT \l__crthm_creating_apply_style_bool
+          {
+            \exp_after:wN \theoremstyle \exp_after:wN { \l__crthm_creating_apply_style_tl }
+          }
+        \bool_if:NTF \l__crthm_creating_numberless_bool
+          {
+            \newtheorem*{ #1 _crthm_regional } { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+          }
+          {
+            \newtheorem { #1 _crthm_regional } [#1] { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+          }
+        \group_end:
+        \NewDocumentEnvironment { #1 } { O{} }
+          % In "regionalref" mode, the counter received by the referencing system is "#1 _crthm_regional"
+          % while in "originalref" mode, the counter received is "#1 _crthm_original_\languagename"
+          {
+            \begin{ #1 _crthm_regional }[##1]
+              \bool_if:NF \l__crthm_regionalref_bool
+                {
+                  \addtocounter   { #1 _crthm_original_\languagename } { -1 }
+                  \refstepcounter { #1 _crthm_original_\languagename }
+                }
+          }
+          {
+            \end{ #1 _crthm_regional }
+          }
+        \bool_if:NT \l__crthm_creating_create_starred_bool
+          {
+            \newtheorem*{ #1 * } { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
+          }
+        \keys_set:nn { create-theorem-creating / counter-management } { #2 }
+      }
+  }
+
+\cs_new:Nn \__crthm_define_env:nn
+  {
+    \cs_set_eq:cc { #1 } { #2 }
+    \cs_set_eq:cc { end #1 } { end #2 }
+  }
+\cs_generate_variant:Nn \__crthm_define_env:nn { ee }
+
+\cs_new:Nn \crthm_counter_within:nn
+  {
+    \counterwithin { #1 } { #2 }
+  }
+\cs_generate_variant:Nn \crthm_counter_within:nn { ee }
+
+\cs_new:Nn \crthm_counter_alias:nn
+  {
+    \cs_set_eq:cc { c@ #1 } { c@ #2 }
+    \cs_set_eq:cc { the #1 } { the #2 }
+  }
+\cs_generate_variant:Nn \crthm_counter_alias:nn { ee }
+
+
+\bool_if:NF \l__crthm_presetname_bool { \endinput }
+
+
+%=============================
+%   ---  Preset Names  ---
+%=============================
+
+\NameTheorem { assertion }
+  {
+    , heading =   {
+                    , english     = Assertion
+                    , french      = Assertion
+                    , ngerman     = Behauptung
+                    , italian     = Asserzione
+                    , portuguese  = Asserção
+                    , brazilian   = Asserção
+                    , spanish     = Aserción
+                    , schinese    = 断言
+                    , tchinese    = 斷言
+                    , japanese    = アサーション
+                    , russian     = Утверждение
+                  }
+    , crefname =  {
+                    , english     = {assertion}{assertions}
+                    , french      = [l']{assertion}[les]{assertions}
+                    , ngerman     = {Behauptung}{Behauptungen}
+                    , italian     = [l']{asserzione}[le]{asserzioni}
+                    , portuguese  = [a]{asserção}[as]{asserções}
+                    , brazilian   = [a]{asserção}[as]{asserções}
+                    , spanish     = [la]{aserción}[las]{aserciones}
+                    , schinese    = {断言}{断言}
+                    , tchinese    = {斷言}{斷言}
+                    , japanese    = {アサーション}{アサーション}
+                    , russian     = {утверждение}{утверждения}
+                  }
+    , Crefname =  {
+                    , english     = {Assertion}{Assertions}
+                    , french      = [L']{assertion}[Les]{assertions}
+                    , ngerman     = {Behauptung}{Behauptungen}
+                    , italian     = [L']{asserzione}[Le]{asserzioni}
+                    , portuguese  = [A]{asserção}[As]{asserções}
+                    , brazilian   = [A]{asserção}[As]{asserções}
+                    , spanish     = [La]{aserción}[Las]{aserciones}
+                    , schinese    = {断言}{断言}
+                    , tchinese    = {斷言}{斷言}
+                    , japanese    = {アサーション}{アサーション}
+                    , russian     = {Утверждение}{Утверждения}
+                  }
+  }
+
+\NameTheorem { assumption }
+  {
+    , heading =   {
+                    , english     = Assumption
+                    , french      = Supposition
+                    , ngerman     = Annahme
+                    , italian     = Supposizione
+                    , portuguese  = Suposição
+                    , brazilian   = Suposição
+                    , spanish     = Suposición
+                    , schinese    = 假定
+                    , tchinese    = 假定
+                    , japanese    = 仮定
+                    , russian     = Предположение
+                  }
+    , crefname =  {
+                    , english     = {assumption}{assumptions}
+                    , french      = [la]{supposition}[les]{suppositions}
+                    , ngerman     = {Annahme}{Annahmen}
+                    , italian     = [la]{supposizione}[le]{supposizioni}
+                    , portuguese  = [a]{suposição}[as]{suposições}
+                    , brazilian   = [a]{suposição}[as]{suposições}
+                    , spanish     = [la]{suposición}[las]{suposiciones}
+                    , schinese    = {假定}{假定}
+                    , tchinese    = {假定}{假定}
+                    , japanese    = {仮定}{仮定}
+                    , russian     = {предположение}{предположения}
+                  }
+    , Crefname =  {
+                    , english     = {Assumption}{Assumptions}
+                    , french      = [La]{supposition}[Les]{suppositions}
+                    , ngerman     = {Annahme}{Annahmen}
+                    , italian     = [la]{supposizione}[le]{supposizioni}
+                    , portuguese  = [A]{suposição}[As]{suposições}
+                    , brazilian   = [A]{suposição}[As]{suposições}
+                    , spanish     = [La]{suposición}[Las]{suposiciones}
+                    , schinese    = {假定}{假定}
+                    , tchinese    = {假定}{假定}
+                    , japanese    = {仮定}{仮定}
+                    , russian     = {Предположение}{Предположения}
+                  }
+  }
+
+\NameTheorem { axiom }
+  {
+    , heading =   {
+                    , english     = Axiom
+                    , french      = Axiome
+                    , ngerman     = Axiom
+                    , italian     = Assioma
+                    , portuguese  = Axioma
+                    , brazilian   = Axioma
+                    , spanish     = Axioma
+                    , schinese    = 公理
+                    , tchinese    = 公理
+                    , japanese    = 公理
+                    , russian     = Аксиома
+                  }
+    , crefname =  {
+                    , english     = {axiom}{axioms}
+                    , french      = [l']{axiome}[les]{axiomes}
+                    , ngerman     = {Axiom}{Axiome}
+                    , italian     = [l']{assioma}[gli]{assiomi}
+                    , portuguese  = [o]{axioma}[os]{axiomas}
+                    , brazilian   = [o]{axioma}[os]{axiomas}
+                    , spanish     = [el]{axioma}[los]{axiomas}
+                    , schinese    = {公理}{公理}
+                    , tchinese    = {公理}{公理}
+                    , japanese    = {公理}{公理}
+                    , russian     = {аксиома}{аксиомы}
+                  }
+    , Crefname =  {
+                    , english     = {Axiom}{Axioms}
+                    , french      = [L']{axiome}[Les]{axiomes}
+                    , ngerman     = {Axiom}{Axiome}
+                    , italian     = [L']{assioma}[Gli]{assiomi}
+                    , portuguese  = [O]{axioma}[Os]{axiomas}
+                    , brazilian   = [O]{axioma}[Os]{axiomas}
+                    , spanish     = [El]{axioma}[Los]{axiomas}
+                    , schinese    = {公理}{公理}
+                    , tchinese    = {公理}{公理}
+                    , japanese    = {公理}{公理}
+                    , russian     = {Аксиома}{Аксиомы}
+                  }
+  }
+
+\NameTheorem { conclusion }
+  {
+    , heading =   {
+                    , english     = Conclusion
+                    , french      = Conclusion
+                    , ngerman     = Schlussfolgerung
+                    , italian     = Conclusione
+                    , portuguese  = Conclusão
+                    , brazilian   = Conclusão
+                    , spanish     = Conclusión
+                    , schinese    = 结论
+                    , tchinese    = 結論
+                    , japanese    = 結論
+                    , russian     = Вывод
+                  }
+    , crefname =  {
+                    , english     = {conclusion}{conclusions}
+                    , french      = [la]{conclusion}[Les]{conclusions}
+                    , ngerman     = {Schlussfolgerung}{Schlussfolgerungen}
+                    , italian     = [la]{conclusione}[le]{conclusioni}
+                    , portuguese  = [a]{conclusão}[as]{conclusões}
+                    , brazilian   = [a]{conclusão}[as]{conclusões}
+                    , spanish     = [la]{conclusión}[las]{conclusiones}
+                    , schinese    = {结论}{结论}
+                    , tchinese    = {結論}{結論}
+                    , japanese    = {結論}{結論}
+                    , russian     = {вывод}{выводы}
+                  }
+    , Crefname =  {
+                    , english     = {Conclusion}{Conclusions}
+                    , french      = [La]{conclusion}[Les]{conclusions}
+                    , ngerman     = {Schlussfolgerung}{Schlussfolgerungen}
+                    , italian     = [La]{conclusione}[Le]{conclusioni}
+                    , portuguese  = [A]{conclusão}[As]{conclusões}
+                    , brazilian   = [A]{conclusão}[As]{conclusões}
+                    , spanish     = [La]{conclusión}[Las]{conclusiones}
+                    , schinese    = {结论}{结论}
+                    , tchinese    = {結論}{結論}
+                    , japanese    = {結論}{結論}
+                    , russian     = {Вывод}{Выводы}
+                  }
+  }
+
+\NameTheorem { conjecture }
+  {
+    , heading =   {
+                    , english     = Conjecture
+                    , french      = Conjecture
+                    , ngerman     = Vermutung
+                    , italian     = Congettura
+                    , portuguese  = Conjetura
+                    , brazilian   = Conjectura
+                    , spanish     = Conjetura
+                    , schinese    = 猜想
+                    , tchinese    = 猜想
+                    , japanese    = 予想
+                    , russian     = Гипотеза
+                  }
+    , crefname =  {
+                    , english     = {conjecture}{conjectures}
+                    , french      = [la]{conjecture}[les]{conjectures}
+                    , ngerman     = {Vermutung}{Vermutungen}
+                    , italian     = [la]{congettura}[le]{congetture}
+                    , portuguese  = [a]{conjetura}[as]{conjeturas}
+                    , brazilian   = [a]{conjectura}[as]{conjecturas}
+                    , spanish     = [la]{conjetura}[las]{conjeturas}
+                    , schinese    = {猜想}{猜想}
+                    , tchinese    = {猜想}{猜想}
+                    , japanese    = {予想}{予想}
+                    , russian     = {гипотеза}{гипотезы}
+                  }
+    , Crefname =  {
+                    , english     = {Conjecture}{Conjectures}
+                    , french      = [La]{conjecture}[Les]{conjectures}
+                    , ngerman     = {Vermutung}{Vermutungen}
+                    , italian     = [La]{congettura}[Le]{congetture}
+                    , portuguese  = [A]{conjetura}[As]{conjeturas}
+                    , brazilian   = [A]{conjectura}[As]{conjecturas}
+                    , spanish     = [La]{conjetura}[Las]{conjeturas}
+                    , schinese    = {猜想}{猜想}
+                    , tchinese    = {猜想}{猜想}
+                    , japanese    = {予想}{予想}
+                    , russian     = {Гипотеза}{Гипотезы}
+                  }
+  }
+
+\NameTheorem { convention }
+  {
+    , heading =   {
+                    , english     = Convention
+                    , french      = Convention
+                    , ngerman     = Konvention
+                    , italian     = Convenzione
+                    , portuguese  = Convenção
+                    , brazilian   = Convenção
+                    , spanish     = Convención
+                    , schinese    = 约定
+                    , tchinese    = 約定
+                    , japanese    = 慣例
+                    , russian     = Конвенция
+                  }
+    , crefname =  {
+                    , english     = {convention}{conventions}
+                    , french      = [la]{convention}[les]{conventions}
+                    , ngerman     = {Konvention}{Konventionen}
+                    , italian     = [la]{convenzione}[le]{convenzioni}
+                    , portuguese  = [a]{convenção}[as]{convenções}
+                    , brazilian   = [a]{convenção}[as]{convenções}
+                    , spanish     = [la]{convención}[las]{convenciones}
+                    , schinese    = {约定}{约定}
+                    , tchinese    = {約定}{約定}
+                    , japanese    = {慣例}{慣例}
+                    , russian     = {конвенция}{конвенции}
+                  }
+    , Crefname =  {
+                    , english     = {Convention}{Conventions}
+                    , french      = [La]{convention}[Les]{conventions}
+                    , ngerman     = {Konvention}{Konventionen}
+                    , italian     = [La]{convenzione}[Le]{convenzioni}
+                    , portuguese  = [A]{convenção}[As]{convenções}
+                    , brazilian   = [A]{convenção}[As]{convenções}
+                    , spanish     = [La]{convención}[Las]{convenciones}
+                    , schinese    = {约定}{约定}
+                    , tchinese    = {約定}{約定}
+                    , japanese    = {慣例}{慣例}
+                    , russian     = {Конвенция}{Конвенции}
+                  }
+  }
+
+\NameTheorem { corollary }
+  {
+    , heading =   {
+                    , english     = Corollary
+                    , french      = Corollaire
+                    , ngerman     = Korollar
+                    , italian     = Corollario
+                    , portuguese  = Corolário
+                    , brazilian   = Corolário
+                    , spanish     = Corolario
+                    , schinese    = 推论
+                    , tchinese    = 推論
+                    , japanese    = 系
+                    , russian     = Следствие
+                  }
+    , crefname =  {
+                    , english     = {corollary}{corollaries}
+                    , french      = [le]{corollaire}[les]{corollaires}
+                    , ngerman     = {Korollar}{Korollare}
+                    , italian     = [il]{corollario}[i]{corollari}
+                    , portuguese  = [o]{corolário}[os]{corolários}
+                    , brazilian   = [o]{corolário}[os]{corolários}
+                    , spanish     = [el]{corolario}[los]{corolarios}
+                    , schinese    = {推论}{推论}
+                    , tchinese    = {推論}{推論}
+                    , japanese    = {系}{系}
+                    , russian     = {следствие}{следствия}
+                  }
+    , Crefname =  {
+                    , english     = {Corollary}{Corollaries}
+                    , french      = [Le]{corollaire}[Les]{corollaires}
+                    , ngerman     = {Korollar}{Korollare}
+                    , italian     = [Il]{corollario}[I]{corollari}
+                    , portuguese  = [O]{corolário}[Os]{corolários}
+                    , brazilian   = [O]{corolário}[Os]{corolários}
+                    , spanish     = [El]{corolario}[Los]{corolarios}
+                    , schinese    = {推论}{推论}
+                    , tchinese    = {推論}{推論}
+                    , japanese    = {系}{系}
+                    , russian     = {Следствие}{Следствия}
+                  }
+  }
+
+\NameTheorem { definition }
+  {
+    , heading =   {
+                    , english     = Definition
+                    , french      = Définition
+                    , ngerman     = Definition
+                    , italian     = Definizione
+                    , portuguese  = Definição
+                    , brazilian   = Definição
+                    , spanish     = Definición
+                    , schinese    = 定义
+                    , tchinese    = 定義
+                    , japanese    = 定義
+                    , russian     = Определение
+                  }
+    , crefname =  {
+                    , english     = {definition}{definitions}
+                    , french      = [la]{définition}[les]{définitions}
+                    , ngerman     = {Definition}{Definitionen}
+                    , italian     = [la]{definizione}[le]{definizioni}
+                    , portuguese  = [a]{definição}[as]{definições}
+                    , brazilian   = [a]{definição}[as]{definições}
+                    , spanish     = [la]{definición}[las]{definiciones}
+                    , schinese    = {定义}{定义}
+                    , tchinese    = {定義}{定義}
+                    , japanese    = {定義}{定義}
+                    , russian     = {определение}{определения}
+                  }
+    , Crefname =  {
+                    , english     = {Definition}{Definitions}
+                    , french      = [La]{définition}[Les]{définitions}
+                    , ngerman     = {Definition}{Definitionen}
+                    , italian     = [La]{definizione}[Le]{definizioni}
+                    , portuguese  = [A]{definição}[As]{definições}
+                    , brazilian   = [A]{definição}[As]{definições}
+                    , spanish     = [La]{definición}[Las]{definiciones}
+                    , schinese    = {定义}{定义}
+                    , tchinese    = {定義}{定義}
+                    , japanese    = {定義}{定義}
+                    , russian     = {Определение}{Определения}
+                  }
+  }
+
+\NameTheorem { example }
+  {
+    , heading =   {
+                    , english     = Example
+                    , french      = Exemple
+                    , ngerman     = Beispiel
+                    , italian     = Esempio
+                    , portuguese  = Exemplo
+                    , brazilian   = Exemplo
+                    , spanish     = Ejemplo
+                    , schinese    = 例
+                    , tchinese    = 例
+                    , japanese    = 例
+                    , russian     = Пример
+                  }
+    , crefname =  {
+                    , english     = {example}{examples}
+                    , french      = [l']{example}[les]{examples}
+                    , ngerman     = {Beispiel}{Beispiele}
+                    , italian     = [l']{esempio}[gli]{esempi}
+                    , portuguese  = [o]{exemplo}[os]{exemplos}
+                    , brazilian   = [o]{exemplo}[os]{exemplos}
+                    , spanish     = [el]{ejemplo}[los]{ejemplos}
+                    , schinese    = {例}{例}
+                    , tchinese    = {例}{例}
+                    , japanese    = {例}{例}
+                    , russian     = {пример}{примеры}
+                  }
+    , Crefname =  {
+                    , english     = {Example}{Examples}
+                    , french      = [L']{example}[Les]{examples}
+                    , ngerman     = {Beispiel}{Beispiele}
+                    , italian     = [L']{esempio}[Gli]{esempi}
+                    , portuguese  = [O]{exemplo}[Os]{exemplos}
+                    , brazilian   = [O]{exemplo}[Os]{exemplos}
+                    , spanish     = [El]{ejemplo}[Los]{ejemplos}
+                    , schinese    = {例}{例}
+                    , tchinese    = {例}{例}
+                    , japanese    = {例}{例}
+                    , russian     = {Пример}{Примеры}
+                  }
+  }
+
+\NameTheorem { exercise }
+  {
+    , heading =   {
+                    , english     = Exercise
+                    , french      = Exercice
+                    , ngerman     = Übung
+                    , italian     = Esercizio
+                    , portuguese  = Exercício
+                    , brazilian   = Exercício
+                    , spanish     = Ejercicio
+                    , schinese    = 练习
+                    , tchinese    = 練習
+                    , japanese    = 練習
+                    , russian     = Упражнение
+                  }
+    , crefname =  {
+                    , english     = {exercise}{exercises}
+                    , french      = [l']{exercice}[les]{exercices}
+                    , ngerman     = {Übung}{Übungen}
+                    , italian     = [l']{esercizio}[gli]{esercizi}
+                    , portuguese  = [o]{exercício}[os]{exercícios}
+                    , brazilian   = [o]{exercício}[os]{exercícios}
+                    , spanish     = [el]{ejercicio}[los]{ejercicios}
+                    , schinese    = {练习}{练习}
+                    , tchinese    = {練習}{練習}
+                    , japanese    = {練習}{練習}
+                    , russian     = {упражнение}{упражнения}
+                  }
+    , Crefname =  {
+                    , english     = {Exercise}{Exercises}
+                    , french      = [L']{exercice}[Les]{exercices}
+                    , ngerman     = {Übung}{Übungen}
+                    , italian     = [L']{esercizio}[Gli]{esercizi}
+                    , portuguese  = [O]{exercício}[Os]{exercícios}
+                    , brazilian   = [O]{exercício}[Os]{exercícios}
+                    , spanish     = [El]{ejercicio}[Los]{ejercicios}
+                    , schinese    = {练习}{练习}
+                    , tchinese    = {練習}{練習}
+                    , japanese    = {練習}{練習}
+                    , russian     = {Упражнение}{Упражнения}
+                  }
+  }
+
+\NameTheorem { fact }
+  {
+    , heading =   {
+                    , english     = Fact
+                    , french      = Fait
+                    , ngerman     = Fakt
+                    , italian     = Fatto
+                    , portuguese  = Facto
+                    , brazilian   = Fato
+                    , spanish     = Hecho
+                    , schinese    = 事实
+                    , tchinese    = 事實
+                    , japanese    = 事実
+                    , russian     = Факт
+                  }
+    , crefname =  {
+                    , english     = {fact}{facts}
+                    , french      = [le]{fait}[les]{faits}
+                    , ngerman     = {Fakt}{Fakten}
+                    , italian     = [il]{fatto}[i]{fatti}
+                    , portuguese  = [o]{facto}[os]{factos}
+                    , brazilian   = [o]{fato}[os]{fatos}
+                    , spanish     = [el]{hecho}[los]{hechos}
+                    , schinese    = {事实}{事实}
+                    , tchinese    = {事實}{事實}
+                    , japanese    = {事実}{事実}
+                    , russian     = {факт}{факты}
+                  }
+    , Crefname =  {
+                    , english     = {Fact}{Facts}
+                    , french      = [Le]{fait}[Les]{faits}
+                    , ngerman     = {Fakt}{Fakten}
+                    , italian     = [Il]{fatto}[I]{fatti}
+                    , portuguese  = [O]{facto}[Os]{factos}
+                    , brazilian   = [O]{fato}[Os]{fatos}
+                    , spanish     = [El]{hecho}[Los]{hechos}
+                    , schinese    = {事实}{事实}
+                    , tchinese    = {事實}{事實}
+                    , japanese    = {事実}{事実}
+                    , russian     = {Факт}{Факты}
+                  }
+  }
+
+\NameTheorem { hypothesis }
+  {
+    , heading =   {
+                    , english     = Hypothesis
+                    , french      = Hypothèse
+                    , ngerman     = Hypothese
+                    , italian     = Ipotesi
+                    , portuguese  = Hipótese
+                    , brazilian   = Hipótese
+                    , spanish     = Hipótesis
+                    , schinese    = 假设
+                    , tchinese    = 假設
+                    , japanese    = 仮設
+                    , russian     = Гипотеза
+                  }
+    , crefname =  {
+                    , english     = {hypothesis}{hypotheses}
+                    , french      = [l']{hypothèse}[les]{hypothèses}
+                    , ngerman     = {Hypothese}{Hypothesen}
+                    , italian     = [l']{ipotesi}[le]{ipotesi}
+                    , portuguese  = [a]{hipótese}[as]{hipóteses}
+                    , brazilian   = [a]{hipótese}[as]{hipóteses}
+                    , spanish     = [la]{hipótesis}[las]{hipótesis}
+                    , schinese    = {假设}{假设}
+                    , tchinese    = {假設}{假設}
+                    , japanese    = {仮設}{仮設}
+                    , russian     = {гипотеза}{гипотезы}
+                  }
+    , Crefname =  {
+                    , english     = {Hypothesis}{Hypotheses}
+                    , french      = [L']{hypothèse}[Les]{hypothèses}
+                    , ngerman     = {Hypothese}{Hypothesen}
+                    , italian     = [L']{ipotesi}[Le]{ipotesi}
+                    , portuguese  = [A]{hipótese}[As]{hipóteses}
+                    , brazilian   = [A]{hipótese}[As]{hipóteses}
+                    , spanish     = [La]{hipótesis}[Las]{hipótesis}
+                    , schinese    = {假设}{假设}
+                    , tchinese    = {假設}{假設}
+                    , japanese    = {仮設}{仮設}
+                    , russian     = {Гипотеза}{Гипотезы}
+                  }
+  }
+
+\NameTheorem { lemma }
+  {
+    , heading   = {
+                    , english     = Lemma
+                    , french      = Lemme
+                    , ngerman     = Lemma
+                    , italian     = Lemma
+                    , portuguese  = Lema
+                    , brazilian   = Lema
+                    , spanish     = Lema
+                    , schinese    = 引理
+                    , tchinese    = 引理
+                    , japanese    = 補題
+                    , russian     = Лемма
+                  }
+    , crefname  = {
+                    , english     = {lemma}{Lemmas}
+                    , french      = [le]{lemme}[les]{lemmes}
+                    , ngerman     = {Lemma}{Lemmata}
+                    , italian     = [il]{lemma}[i]{lemmi}
+                    , portuguese  = [o]{lema}[os]{lemas}
+                    , brazilian   = [o]{lema}[os]{lemas}
+                    , spanish     = [el]{lema}[las]{lemas}
+                    , schinese    = {引理}{引理}
+                    , tchinese    = {引理}{引理}
+                    , japanese    = {補題}{補題}
+                    , russian     = {лемма}{леммы}
+                  }
+    , Crefname  = {
+                    , english     = {Lemma}{Lemmas}
+                    , french      = [Le]{lemme}[Les]{lemmes}
+                    , ngerman     = {Lemma}{Lemmata}
+                    , italian     = [Il]{lemma}[I]{lemmi}
+                    , portuguese  = [O]{lema}[Os]{lemas}
+                    , brazilian   = [O]{lema}[Os]{lemas}
+                    , spanish     = [el]{lema}[las]{lemas}
+                    , schinese    = {引理}{引理}
+                    , tchinese    = {引理}{引理}
+                    , japanese    = {補題}{補題}
+                    , russian     = {Лемма}{Леммы}
+                  }
+  }
+
+\NameTheorem { notation }
+  {
+    , heading =   {
+                    , english     = Notation
+                    , french      = Notation
+                    , ngerman     = Notation
+                    , italian     = Notazione
+                    , portuguese  = Notação
+                    , brazilian   = Notação
+                    , spanish     = Notación
+                    , schinese    = 记号
+                    , tchinese    = 記號
+                    , japanese    = 記法
+                    , russian     = Нотация
+                  }
+    , crefname =  {
+                    , english     = {notation}{notations}
+                    , french      = [la]{notation}[les]{notations}
+                    , ngerman     = {Notation}{Notationen}
+                    , italian     = [la]{notazione}[le]{notazioni}
+                    , portuguese  = [a]{notação}[as]{notações}
+                    , brazilian   = [a]{notação}[as]{notações}
+                    , spanish     = [la]{notación}[las]{notaciones}
+                    , schinese    = {记号}{记号}
+                    , tchinese    = {記號}{記號}
+                    , japanese    = {記法}{記法}
+                    , russian     = {нотация}{нотации}
+                  }
+    , Crefname =  {
+                    , english     = {Notation}{Notations}
+                    , french      = [La]{notation}[Les]{notations}
+                    , ngerman     = {Notation}{Notationen}
+                    , italian     = [La]{notazione}[Le]{notazioni}
+                    , portuguese  = [A]{notação}[As]{notações}
+                    , brazilian   = [A]{notação}[As]{notações}
+                    , spanish     = [La]{notación}[Las]{notaciones}
+                    , schinese    = {记号}{记号}
+                    , tchinese    = {記號}{記號}
+                    , japanese    = {記法}{記法}
+                    , russian     = {Нотация}{Нотации}
+                  }
+  }
+
+\NameTheorem { observation }
+  {
+    , heading =   {
+                    , english     = Observation
+                    , french      = Observation
+                    , ngerman     = Beobachtung
+                    , italian     = Osservazione
+                    , portuguese  = Observação
+                    , brazilian   = Observação
+                    , spanish     = Observación
+                    , schinese    = 观察
+                    , tchinese    = 觀察
+                    , japanese    = 観察
+                    , russian     = Наблюдение
+                  }
+    , crefname =  {
+                    , english     = {observation}{observations}
+                    , french      = [la]{observation}[les]{observations}
+                    , ngerman     = {Beobachtung}{Beobachtungen}
+                    , italian     = [l']{osservazione}[le]{osservazioni}
+                    , portuguese  = [a]{observação}[as]{observações}
+                    , brazilian   = [a]{observação}[as]{observações}
+                    , spanish     = [la]{observación}[las]{observaciones}
+                    , schinese    = {观察}{观察}
+                    , tchinese    = {觀察}{觀察}
+                    , japanese    = {観察}{観察}
+                    , russian     = {наблюдение}{наблюдения}
+                  }
+    , Crefname =  {
+                    , english     = {Observation}{Observations}
+                    , french      = [La]{observation}[Les]{observations}
+                    , ngerman     = {Beobachtung}{Beobachtungen}
+                    , italian     = [L']{osservazione}[Le]{osservazioni}
+                    , portuguese  = [A]{observação}[As]{observações}
+                    , brazilian   = [A]{observação}[As]{observações}
+                    , spanish     = [La]{observación}[Las]{observaciones}
+                    , schinese    = {观察}{观察}
+                    , tchinese    = {觀察}{觀察}
+                    , japanese    = {観察}{観察}
+                    , russian     = {Наблюдение}{Наблюдения}
+                  }
+  }
+
+\NameTheorem { postulate }
+  {
+    , heading =   {
+                    , english     = Postulate
+                    , french      = Postulat
+                    , ngerman     = Postulat
+                    , italian     = Postulato
+                    , portuguese  = Postulado
+                    , brazilian   = Postulado
+                    , spanish     = Postulado
+                    , schinese    = 公设
+                    , tchinese    = 公設
+                    , japanese    = 公準
+                    , russian     = Постулат
+                  }
+    , crefname =  {
+                    , english     = {postulate}{postulates}
+                    , french      = [le]{postulat}[les]{postulats}
+                    , ngerman     = {Postulat}{Postulate}
+                    , italian     = [il]{postulato}[i]{postulati}
+                    , portuguese  = [o]{postulado}[os]{postulados}
+                    , brazilian   = [o]{postulado}[os]{postulados}
+                    , spanish     = [el]{postulado}[los]{postulados}
+                    , schinese    = {公设}{公设}
+                    , tchinese    = {公設}{公設}
+                    , japanese    = {公準}{公準}
+                    , russian     = {постулат}{постулаты}
+                  }
+    , Crefname =  {
+                    , english     = {Postulate}{Postulates}
+                    , french      = [Le]{postulat}[Les]{postulats}
+                    , ngerman     = {Postulat}{Postulate}
+                    , italian     = [Il]{postulato}[I]{postulati}
+                    , portuguese  = [O]{postulado}[Os]{postulados}
+                    , brazilian   = [O]{postulado}[Os]{postulados}
+                    , spanish     = [El]{postulado}[Los]{postulados}
+                    , schinese    = {公设}{公设}
+                    , tchinese    = {公設}{公設}
+                    , japanese    = {公準}{公準}
+                    , russian     = {Постулат}{Постулаты}
+                  }
+  }
+
+\NameTheorem { problem }
+  {
+    , heading =   {
+                    , english     = Problem
+                    , french      = Problème
+                    , ngerman     = Problem
+                    , italian     = Problema
+                    , portuguese  = Problema
+                    , brazilian   = Problema
+                    , spanish     = Problema
+                    , schinese    = 问题
+                    , tchinese    = 問題
+                    , japanese    = 問題
+                    , russian     = Проблема
+                  }
+    , crefname =  {
+                    , english     = {problem}{problems}
+                    , french      = [le]{problème}[les]{problèmes}
+                    , ngerman     = {Problem}{Probleme}
+                    , italian     = [il]{problema}[i]{problemi}
+                    , portuguese  = [o]{problema}[os]{problemas}
+                    , brazilian   = [o]{problema}[os]{problemas}
+                    , spanish     = [el]{problema}[los]{problemas}
+                    , schinese    = {问题}{问题}
+                    , tchinese    = {問題}{問題}
+                    , japanese    = {問題}{問題}
+                    , russian     = {проблема}{проблемы}
+                  }
+    , Crefname =  {
+                    , english     = {Problem}{Problems}
+                    , french      = [Le]{problème}[Les]{problèmes}
+                    , ngerman     = {Problem}{Probleme}
+                    , italian     = [Il]{problema}[I]{problemi}
+                    , portuguese  = [O]{problema}[Os]{problemas}
+                    , brazilian   = [O]{problema}[Os]{problemas}
+                    , spanish     = [El]{problema}[Los]{problemas}
+                    , schinese    = {问题}{问题}
+                    , tchinese    = {問題}{問題}
+                    , japanese    = {問題}{問題}
+                    , russian     = {Проблема}{Проблемы}
+                  }
+  }
+
+\NameTheorem { property }
+  {
+    , heading =   {
+                    , english     = Property
+                    , french      = Propriété
+                    , ngerman     = Eigenschaft
+                    , italian     = Proprietà
+                    , portuguese  = Propriedade
+                    , brazilian   = Propriedade
+                    , spanish     = Propiedad
+                    , schinese    = 性质
+                    , tchinese    = 性質
+                    , japanese    = 性質
+                    , russian     = Имущество
+                  }
+    , crefname =  {
+                    , english     = {property}{properties}
+                    , french      = [la]{propriété}[les]{propriétés}
+                    , ngerman     = {Eigenschaft}{Eigenschaften}
+                    , italian     = [la]{proprietà}[le]{proprietà}
+                    , portuguese  = [a]{propriedade}[as]{propriedades}
+                    , brazilian   = [a]{propriedade}[as]{propriedades}
+                    , spanish     = [la]{propiedad}[las]{propiedades}
+                    , schinese    = {性质}{性质}
+                    , tchinese    = {性質}{性質}
+                    , japanese    = {性質}{性質}
+                    , russian     = {имущество}{имущества}
+                  }
+    , Crefname =  {
+                    , english     = {Property}{Properties}
+                    , french      = [La]{propriété}[Les]{propriétés}
+                    , ngerman     = {Eigenschaft}{Eigenschaften}
+                    , italian     = [La]{proprietà}[Le]{proprietà}
+                    , portuguese  = [A]{propriedade}[As]{propriedades}
+                    , brazilian   = [A]{propriedade}[As]{propriedades}
+                    , spanish     = [La]{propiedad}[Las]{propiedades}
+                    , schinese    = {性质}{性质}
+                    , tchinese    = {性質}{性質}
+                    , japanese    = {性質}{性質}
+                    , russian     = {Имущество}{Имущества}
+                  }
+  }
+
+\NameTheorem { proposition }
+  {
+    , heading =   {
+                    , english     = Proposition
+                    , french      = Proposition
+                    , ngerman     = Proposition
+                    , italian     = Proposizione
+                    , portuguese  = Proposição
+                    , brazilian   = Proposição
+                    , spanish     = Proposición
+                    , schinese    = 命题
+                    , tchinese    = 命題
+                    , japanese    = 命題
+                    , russian     = Предложение
+                  }
+    , crefname =  {
+                    , english     = {proposition}{propositions}
+                    , french      = [la]{proposition}[les]{propositions}
+                    , ngerman     = {Proposition}{Propositionen}
+                    , italian     = [la]{proposizione}[le]{proposte}
+                    , portuguese  = [a]{proposição}[as]{proposições}
+                    , brazilian   = [a]{proposição}[as]{proposições}
+                    , spanish     = [la]{proposición}[las]{proposiciones}
+                    , schinese    = {命题}{命题}
+                    , tchinese    = {命題}{命題}
+                    , japanese    = {命題}{命題}
+                    , russian     = {предложение}{предложения}
+                  }
+    , Crefname =  {
+                    , english     = {Proposition}{Propositions}
+                    , french      = [La]{proposition}[Les]{propositions}
+                    , ngerman     = {Proposition}{Propositionen}
+                    , italian     = [La]{proposizione}[Le]{proposte}
+                    , portuguese  = [A]{proposição}[As]{proposições}
+                    , brazilian   = [A]{proposição}[As]{proposições}
+                    , spanish     = [La]{proposición}[Las]{proposiciones}
+                    , schinese    = {命题}{命题}
+                    , tchinese    = {命題}{命題}
+                    , japanese    = {命題}{命題}
+                    , russian     = {Предложение}{Предложения}
+                  }
+  }
+
+\NameTheorem { question }
+  {
+    , heading =   {
+                    , english     = Question
+                    , french      = Question
+                    , ngerman     = Frage
+                    , italian     = Domanda
+                    , portuguese  = Pergunta
+                    , brazilian   = Pergunta
+                    , spanish     = Pregunta
+                    , schinese    = 问题
+                    , tchinese    = 問題
+                    , japanese    = 問題
+                    , russian     = Вопрос
+                  }
+    , crefname =  {
+                    , english     = {question}{questions}
+                    , french      = [la]{question}[les]{questions}
+                    , ngerman     = {Frage}{Fragen}
+                    , italian     = [la]{domanda}[le]{domande}
+                    , portuguese  = [a]{pergunta}[as]{perguntas}
+                    , brazilian   = [a]{pergunta}[as]{perguntas}
+                    , spanish     = [la]{pregunta}[las]{preguntas}
+                    , schinese    = {问题}{问题}
+                    , tchinese    = {問題}{問題}
+                    , japanese    = {問題}{問題}
+                    , russian     = {вопрос}{вопросы}
+                  }
+    , Crefname =  {
+                    , english     = {Question}{Questions}
+                    , french      = [La]{question}[Les]{questions}
+                    , ngerman     = {Frage}{Fragen}
+                    , italian     = [La]{domanda}[Le]{domande}
+                    , portuguese  = [A]{pergunta}[As]{perguntas}
+                    , brazilian   = [A]{pergunta}[As]{perguntas}
+                    , spanish     = [La]{pregunta}[Las]{preguntas}
+                    , schinese    = {问题}{问题}
+                    , tchinese    = {問題}{問題}
+                    , japanese    = {問題}{問題}
+                    , russian     = {Вопрос}{Вопросы}
+                  }
+  }
+
+\NameTheorem { remark }
+  {
+    , heading =   {
+                    , english     = Remark
+                    , french      = Remarque
+                    , ngerman     = Bemerkung
+                    , italian     = Commento
+                    , portuguese  = Comentário
+                    , brazilian   = Comentário
+                    , spanish     = Comentario
+                    , schinese    = 备注
+                    , tchinese    = 備註
+                    , japanese    = 注釈
+                    , russian     = Замечание
+                  }
+    , crefname =  {
+                    , english     = {remark}{remarks}
+                    , french      = [la]{remarque}[les]{remarques}
+                    , ngerman     = {Bemerkung}{Bemerkungen}
+                    , italian     = [il]{commento}[i]{commenti}
+                    , portuguese  = [o]{comentário}[os]{comentários}
+                    , brazilian   = [o]{comentário}[os]{comentários}
+                    , spanish     = [el]{comentario}[los]{comentarios}
+                    , schinese    = {备注}{备注}
+                    , tchinese    = {備註}{備註}
+                    , japanese    = {注釈}{注釈}
+                    , russian     = {замечание}{замечания}
+                  }
+    , Crefname =  {
+                    , english     = {Remark}{Remarks}
+                    , french      = [La]{remarque}[Les]{remarques}
+                    , ngerman     = {Bemerkung}{Bemerkungen}
+                    , italian     = [Il]{commento}[I]{commenti}
+                    , portuguese  = [O]{comentário}[Os]{comentários}
+                    , brazilian   = [O]{comentário}[Os]{comentários}
+                    , spanish     = [El]{comentario}[Los]{comentarios}
+                    , schinese    = {备注}{备注}
+                    , tchinese    = {備註}{備註}
+                    , japanese    = {注釈}{注釈}
+                    , russian     = {Замечание}{Замечания}
+                  }
+  }
+
+\NameTheorem { theorem }
+  {
+    , heading =   {
+                    , english     = Theorem
+                    , french      = Théorème
+                    , ngerman     = Satz
+                    , italian     = Teorema
+                    , portuguese  = Teorema
+                    , brazilian   = Teorema
+                    , spanish     = Teorema
+                    , schinese    = 定理
+                    , tchinese    = 定理
+                    , japanese    = 定理
+                    , russian     = Теорема
+                  }
+    , crefname =  {
+                    , english     = {theorem}{theorems}
+                    , french      = [le]{théorème}[les]{théorèmes}
+                    , ngerman     = {Satz}{Sätze}
+                    , italian     = [il]{teorema}[i]{teoremi}
+                    , portuguese  = [o]{teorema}[os]{teoremas}
+                    , brazilian   = [o]{teorema}[os]{teoremas}
+                    , spanish     = [el]{teorema}[los]{teoremas}
+                    , schinese    = {定理}{定理}
+                    , tchinese    = {定理}{定理}
+                    , japanese    = {定理}{定理}
+                    , russian     = {теорема}{теоремы}
+                  }
+    , Crefname =  {
+                    , english     = {Theorem}{Theorems}
+                    , french      = [Le]{théorème}[Les]{théorèmes}
+                    , ngerman     = {Satz}{Sätze}
+                    , italian     = [Il]{teorema}[I]{teoremi}
+                    , portuguese  = [O]{teorema}[Os]{teoremas}
+                    , brazilian   = [O]{teorema}[Os]{teoremas}
+                    , spanish     = [El]{teorema}[Los]{teoremas}
+                    , schinese    = {定理}{定理}
+                    , tchinese    = {定理}{定理}
+                    , japanese    = {定理}{定理}
+                    , russian     = {Теорема}{Теоремы}
+                  }
+  }
+
+
+\endinput
+%%
+%% End of file `create-theorem.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/create-theorem/create-theorem.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-02-27 21:30:31 UTC (rev 62243)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2022-02-27 21:31:16 UTC (rev 62244)
@@ -220,7 +220,7 @@
     courseoutline coursepaper
     coverpage covington
     cprotect cqubeamer cquthesis
-    crbox crefthe crimson crimsonpro crop
+    crbox create-theorem crefthe crimson crimsonpro crop
     crossreference crossreftools crossrefware crossword crosswrd
     crumbs cryptocode cryst
     cs csbulletin cslatex csplain csquotes csquotes-de

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2022-02-27 21:30:31 UTC (rev 62243)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2022-02-27 21:31:16 UTC (rev 62244)
@@ -253,6 +253,7 @@
 depend coverpage
 depend cprotect
 depend crbox
+depend create-theorem
 depend crefthe
 depend crossreference
 depend crossreftools

Added: trunk/Master/tlpkg/tlpsrc/create-theorem.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.