summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/projlib')
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx441
-rw-r--r--macros/latex/contrib/projlib/README.md11
2 files changed, 309 insertions, 143 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 03de30a0d0..c9d214f9e1 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -20,77 +20,77 @@
%<*ProjLib>
\ProvidesExplPackage
{ProjLib}
- {2022/04/03} {}
+ {2022/04/18} {}
{Collective interface of the ProjLib toolkit}
%</ProjLib>
%
%<*projlib-author>
\ProvidesExplPackage
{projlib-author}
- {2022/04/03} {}
+ {2022/04/18} {}
{Enhanced author information block}
%</projlib-author>
%
%<*projlib-datetime>
\ProvidesExplPackage
{projlib-datetime}
- {2022/04/03} {}
+ {2022/04/18} {}
{Convert numeric date-time string to natural language}
%</projlib-datetime>
%
%<*projlib-draft>
\ProvidesExplPackage
{projlib-draft}
- {2022/04/03} {}
+ {2022/04/18} {}
{Useful commands during draft stage}
%</projlib-draft>
%
%<*projlib-font>
\ProvidesExplPackage
{projlib-font}
- {2022/04/03} {}
+ {2022/04/18} {}
{Font selection and configuration}
%</projlib-font>
%
%<*projlib-language>
\ProvidesExplPackage
{projlib-language}
- {2022/04/03} {}
+ {2022/04/18} {}
{Multi-language configuration}
%</projlib-language>
%
%<*projlib-logo>
\ProvidesExplPackage
{projlib-logo}
- {2022/04/03} {}
+ {2022/04/18} {}
{The ProjLib logo}
%</projlib-logo>
%
%<*projlib-math>
\ProvidesExplPackage
{projlib-math}
- {2022/04/03} {}
+ {2022/04/18} {}
{Efficient math setup}
%</projlib-math>
%
%<*projlib-paper>
\ProvidesExplPackage
{projlib-paper}
- {2022/04/03} {}
+ {2022/04/18} {}
{Configuration of the paper style}
%</projlib-paper>
%
%<*projlib-theorem>
\ProvidesExplPackage
{projlib-theorem}
- {2022/04/03} {}
+ {2022/04/18} {}
{Configuration of theorem-like environments}
%</projlib-theorem>
%
%<*projlib-titlepage>
\ProvidesExplPackage
{projlib-titlepage}
- {2022/04/03} {}
+ {2022/04/18} {}
{Commands for rendering the title page}
%</projlib-titlepage>
@@ -264,7 +264,7 @@
\bool_if:NT \l__projlib_author_amsfashion_bool
{
- \RequirePackage{ projlib-language }
+ \RequirePackage { projlib-language }
\tl_const:Nn \c_projlib_author_dot_tl { . }
@@ -354,9 +354,8 @@
\bool_new:N \g__projlib_author_abstract_before_maketitle_bool
\bool_gset_false:N \g__projlib_author_abstract_before_maketitle_bool
- \msg_redirect_name:nnn { scontents } { unsupported-verbatim } { info }
- \RequirePackage{ scontents }
- \newenvsc{abstract}[store-env=projlib-author-abstract,print-env=false]
+ \RequirePackage { scontents }
+ \newenvsc { abstract } [ store-env = projlib-author-abstract, print-env = false ]
\hook_gput_code:nnn { env/abstract/after } { projlib-author }
{
@@ -851,7 +850,7 @@
\group_begin:
\tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
\tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
- \tl_set:Nx \l_tmpa_tl { #2 }
+ \tl_set:Nx \l_tmpa_tl { \exp_args:Ne \tl_trim_spaces:n { #2 } }
\regex_replace_all:nnN { \D } { - } \l_tmpa_tl
\exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } {}
\group_end:
@@ -862,7 +861,7 @@
\group_begin:
\tl_if_blank:eF { #1 } { \keys_set:nn { projlib-datetime-command } { #1 } }
\tl_if_blank:eF { #3 } { \keys_set:nn { projlib-datetime-command } { #3 } }
- \tl_set:Nx \l_tmpa_tl { #2 }
+ \tl_set:Nx \l_tmpa_tl { \exp_args:Ne \tl_trim_spaces:n { #2 } }
\regex_replace_all:nnN { \D } { - } \l_tmpa_tl
\exp_args:Ne \__projlib_datetime_display_date_according_to_format:nn { \l_tmpa_tl } { _uppercase }
\group_end:
@@ -2239,6 +2238,11 @@
\group_begin:
\projlib_draft_DNF_font
\stepcounter { projlib_draft_DNF_counter }
+ \raisebox{\baselineskip}{
+ \hypertarget { DNF. \arabic { projlib_draft_DNF_counter } } {}
+ \label { DNF. \arabic { projlib_draft_DNF_counter } }
+ }
+ \nobreak
\projlib_draft_plain_box:nn { projlib_draft_DNF_color }
{
\projlib_draft_DNF_text
@@ -2248,26 +2252,38 @@
\tl_trim_spaces:n { #1 }
}
\group_end:
- \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+ \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
{
\noindent
\# \,
+ }
+ \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+ {
\int_value:w \theprojlib_draft_DNF_counter
+ }
+ \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
+ {
\c_space_tl \c_space_tl
$\langle$
\skip_horizontal:n { 0.1em }
+ }
+ \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl
+ {
\cs_if_exist:cTF { hyperlink }
{
- \exp_not:N \hyperlink { page.\thepage } { \thepage }
+ \exp_not:N \hyperlink { DNF. \int_value:w \theprojlib_draft_DNF_counter } { \exp_not:N \pageref* { DNF. \int_value:w \theprojlib_draft_DNF_counter } }
}
{
- \thepage
+ \exp_not:N \pageref* { DNF. \int_value:w \theprojlib_draft_DNF_counter }
}
+ }
+ \tl_gput_right:Nn \g__projlib_draft_DNF_report_tl
+ {
\skip_horizontal:n { 0.1em }
$\rangle$
\nobreakspace
- \exp_not:n { \tl_if_blank:nF { #1 } { : ~ } }
- \exp_not:n { \tl_trim_spaces:n { #1 } }
+ \tl_if_blank:nF { #1 } { : ~ }
+ \tl_trim_spaces:n { #1 }
\par \skip_vertical:n { -\parskip }
\skip_vertical:n { .15\baselineskip }
}
@@ -2280,6 +2296,7 @@
\tl_if_blank:VF \g__projlib_draft_DNF_report_tl
{
\clearpage
+ \addtocounter{page}{-1}
\pagestyle { empty }
\color { projlib_draft_DNF_color }
\noindent
@@ -2678,7 +2695,7 @@
\cs_new:Nn \projlib_language_str_to_languagename:n
{
- \str_case_e:nnF { \str_foldcase:n { #1 } }
+ \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } }
{
{ all } { common }
{ common } { common }
@@ -2716,7 +2733,7 @@
\cs_new:Nn \projlib_language_str_to_languagetype:n
{
- \str_case_e:nn { \str_foldcase:n { #1 } }
+ \str_case_e:nnF { \exp_args:Ne \str_foldcase:n { \tl_trim_spaces:n { #1 } } }
{
{ cn } { cjk }
{ chinese } { cjk }
@@ -2747,6 +2764,7 @@
{ ru } { latin }
{ russian } { latin }
}
+ { latin }
}
\sys_if_engine_pdftex:T
@@ -2814,9 +2832,9 @@
}
}
+
\tl_gput_right:Nn \g_projlib_language_settings_schinese_tl
{
- \g_projlib_language_settings_common_tl
\tl_set:Nn \languagename { schinese }
\tl_set:cn { abstractname } { 摘要 }
\tl_set:cn { proofname } { 证明 }
@@ -2830,10 +2848,22 @@
\tl_set:cn { refname } { 参考文献 }
\tl_set:cn { bibname } { 参考文献 }
}
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_schinese:
+ {
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_schinese_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_schinese:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_schinese_tl
+ #1
+ \group_end:
+ }
\tl_gput_right:Nn \g_projlib_language_settings_tchinese_tl
{
- \g_projlib_language_settings_common_tl
\tl_set:Nn \languagename { tchinese }
\tl_set:cn { abstractname } { 摘要 }
\tl_set:cn { proofname } { 證明 }
@@ -2847,60 +2877,157 @@
\tl_set:cn { refname } { 參考文獻 }
\tl_set:cn { bibname } { 參考文獻 }
}
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_tchinese:
+ {
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_tchinese_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_tchinese:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_tchinese_tl
+ #1
+ \group_end:
+ }
-\tl_gput_right:Nn \g_projlib_language_settings_japanese_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_japanese:
{
\selectlanguage { japanese }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_japanese_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_japanese:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_japanese_tl
+ \foreignlanguage { japanese } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_english_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_english:
{
\selectlanguage { english }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_english_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_english:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_english_tl
+ \foreignlanguage { english } { #1 }
+ \group_end:
}
\tl_gput_right:Nn \g_projlib_language_settings_french_tl
{
+ \tl_gset:cn { frenchpartname } { Partie }
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_french:
+ {
\selectlanguage { french }
\g_projlib_language_settings_common_tl
- \tl_gset:cn { frenchpartname } { Partie }
+ \g_projlib_language_settings_french_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_french:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_french_tl
+ \foreignlanguage { french } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_ngerman_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_ngerman:
{
\selectlanguage { ngerman }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_ngerman_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_ngerman:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_ngerman_tl
+ \foreignlanguage { ngerman } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_italian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_italian:
{
\selectlanguage { italian }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_italian_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_italian:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_italian_tl
+ \foreignlanguage { italian } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_portuguese_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_portuguese:
{
\selectlanguage { portuguese }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_portuguese_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_portuguese:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_portuguese_tl
+ \foreignlanguage { portuguese } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_brazilian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_brazilian:
{
\selectlanguage { brazilian }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_brazilian_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_brazilian:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_brazilian_tl
+ \foreignlanguage { brazilian } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_spanish_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_spanish:
{
\selectlanguage { spanish }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_spanish_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_spanish:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_spanish_tl
+ \foreignlanguage { spanish } { #1 }
+ \group_end:
}
-\tl_gput_right:Nn \g_projlib_language_settings_russian_tl
+\cs_new_protected:Nn \projlib_language_apply_settings_globally_russian:
{
\selectlanguage { russian }
\g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_russian_tl
+ }
+\cs_new_protected:Nn \projlib_language_apply_settings_locally_russian:n
+ {
+ \group_begin:
+ \g_projlib_language_settings_common_tl
+ \g_projlib_language_settings_russian_tl
+ \foreignlanguage { russian } { #1 }
+ \group_end:
}
\NewDocumentCommand \AddLanguageSetting { O{} m }
@@ -2914,7 +3041,6 @@
}
}
-
\RequirePackage { setspace }
\tl_new:N \g_projlib_language_linespacing_latin_tl
@@ -2995,24 +3121,34 @@
\use:c { projlib_language_set_ #1 _ #2 :n } { #3 }
}
+\msg_new:nnn { projlib-language }
+ { language-not-support }
+ { The~language~"#1"~is~not~supported. }
-\cs_new:Nn \projlib_language_use_language_pure:n
+\cs_new:Nn \projlib_language_use_language_locally:nn
{
- \tl_use:c { g_projlib_language_settings_ \projlib_language_str_to_languagename:n { #1 } _tl }
+ \cs_if_exist_use:cF { projlib_language_apply_settings_locally_ \projlib_language_str_to_languagename:n { #1 } :n }
+ {
+ \msg_warning:nnn { projlib-language } { language-not-support } { #1 }
+ }
+ { #2 }
}
-\cs_generate_variant:Nn \projlib_language_use_language_pure:n { e }
+\cs_generate_variant:Nn \projlib_language_use_language_locally:nn { e }
\cs_new:Nn \projlib_language_use_language:n
{
- \projlib_language_use_language_pure:n { #1 }
- \tl_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
- \tl_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ \cs_if_exist_use:cF { projlib_language_apply_settings_globally_ \projlib_language_str_to_languagename:n { #1 } : }
+ {
+ \msg_warning:nnn { projlib-language } { language-not-support } { #1 }
+ }
+ \cs_if_exist_use:c { g_projlib_language_linespacing_ \projlib_language_str_to_languagetype:n { #1 } _tl }
+ \cs_if_exist_use:c { g_projlib_language_parindent_ \projlib_language_str_to_languagetype:n { #1 } _tl }
}
\cs_generate_variant:Nn \projlib_language_use_language:n { e }
\NewDocumentCommand \UseLanguage { m }
{
- \hook_gput_code:nnn { begindocument } { projlib-language }
+ \hook_gput_code:nnn { begindocument/end } { projlib-language }
{
\projlib_language_use_language:e { #1 }
}
@@ -3020,8 +3156,7 @@
\NewDocumentCommand \UseOtherLanguage { m m }
{
\group_begin:
- \projlib_language_use_language_pure:e { #1 }
- #2
+ \projlib_language_use_language_locally:en { #1 } { #2 }
\group_end:
}
@@ -3288,7 +3423,7 @@
}
\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
-\NewDocumentCommand \DefineOperator { s O{} m O{} }
+\NewDocumentCommand \DefineMathOperator { s O{} m O{} }
{
\tl_if_blank:nTF { #2 }
{
@@ -3298,15 +3433,16 @@
\projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
}
}
+\NewCommandCopy \DefineOperator \DefineMathOperator
\msg_new:nnn { projlib-math }
{ shortcut-not-define }
- { The~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
+ { The~symbol~/~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
\msg_new:nnn { projlib-math }
{ shortcut-type-not-define }
- { The~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
+ { The~symbol~/~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
\keys_define:nn { projlib-math-shortcut }
{
@@ -3381,7 +3517,7 @@
{
\cs_if_exist:cTF { #1 }
{
- \msg_warning:nnn { projlib-math } { shortcut-type-not-define } { #1 }
+ \msg_warning:nnn { projlib-math } { shortcut-not-define } { #1 }
}
{
\exp_args:Nno \use:n
@@ -3391,7 +3527,7 @@
}
\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
-\NewDocumentCommand \DefineShortcut { s O{} m O{} }
+\NewDocumentCommand \DefineMathSymbol { s O{} m O{} }
{
\tl_if_blank:nTF { #2 }
{
@@ -3401,6 +3537,7 @@
\projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
}
}
+\NewCommandCopy \DefineShortcut \DefineMathSymbol
\cs_new:Nn \__projlib_math_list_of_symbols_entry:nnnn
@@ -3595,6 +3732,7 @@
\clist_const:Nn \c_projlib_theorem_supported_clist
{
+ application ,
assertion ,
assumption ,
axiom ,
@@ -3619,6 +3757,8 @@
theorem ,
definition-proposition ,
definition-theorem ,
+ proposition-definition ,
+ theorem-definition ,
}
\@ifclassloaded { beamer }
@@ -3692,6 +3832,67 @@
}
+\tl_new:N \l_projlib_theorem_name_of_theorem_with_name_tl
+\CreateTheorem { theorem-with-name_inner } { name = { heading = { \l_projlib_theorem_name_of_theorem_with_name_tl } }, create-starred-version }
+
+\NewDocumentEnvironment { theorem-with-name } { m O{} }
+ {
+ \tl_set:Nn \l_projlib_theorem_name_of_theorem_with_name_tl { #1 }
+ \begin { theorem-with-name_inner } [ #2 ]
+ }
+ {
+ \end { theorem-with-name_inner }
+ }
+\NewDocumentEnvironment { theorem-with-name* } { m O{} }
+ {
+ \tl_set:Nn \l_projlib_theorem_name_of_theorem_with_name_tl { #1 }
+ \begin { theorem-with-name_inner* } [ #2 ]
+ }
+ {
+ \end { theorem-with-name_inner* }
+ }
+
+
+\cs_new_protected:Nn \projlib_theorem_disable_theorem_numbering:n
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \__projlib_theorem_disable_theorem_numbering_do:n { ##1 }
+ }
+ }
+\cs_new_protected:Nn \__projlib_theorem_disable_theorem_numbering_do:n
+ {
+ \CreateTheorem { #1 } { copy-existed = #1* }
+ }
+
+\NewDocumentCommand \DisableTheoremNumbering { m }
+ {
+ \projlib_theorem_disable_theorem_numbering:n { #1 }
+ }
+
+
+\cs_new_protected:Nn \projlib_theorem_switch_theorem_numbering:n
+ {
+ \clist_map_inline:nn { #1 }
+ {
+ \__projlib_theorem_switch_theorem_numbering_do:n { ##1 }
+ }
+ }
+\cs_new_protected:Nn \__projlib_theorem_switch_theorem_numbering_do:n
+ {
+ \CreateTheorem { #1_projlib_theorem_temp } { copy-existed = #1* }
+ \CreateTheorem { #1* } { copy-existed = #1 }
+ \CreateTheorem { #1 } { copy-existed = #1_projlib_theorem_temp }
+ }
+
+\NewDocumentCommand \SwitchTheoremNumbering { m }
+ {
+ \projlib_theorem_switch_theorem_numbering:n { #1 }
+ }
+
+\SwitchTheoremNumbering { theorem-with-name }
+
+
\AddLanguageSetting [ schinese ]
{
\crefname { equation } { 式 } { 式 }
@@ -3791,6 +3992,48 @@
\bool_if:NF \l__projlib_theorem_presetname_bool { \endinput }
\bool_if:NT \l__projlib_theorem_complexname_bool { \endinput }
+\NameTheorem { application }
+ {
+ , heading = {
+ , english = Application
+ , french = Application
+ , ngerman = Anwendung
+ , italian = Applicazione
+ , portuguese = Aplicação
+ , brazilian = Aplicação
+ , spanish = Aplicación
+ , schinese = 应用
+ , tchinese = 應用
+ , japanese = 応用
+ , russian = Применение
+ }
+ , crefname = {
+ , english = {Application}{Application}
+ , french = [l']{Application}[les]{Application}
+ , ngerman = {Anwendung}{Anwendung}
+ , italian = [l']{Applicazione}[le]{Applicazione}
+ , portuguese = [a]{Aplicação}[as]{Aplicação}
+ , brazilian = [a]{Aplicação}[as]{Aplicação}
+ , spanish = [la]{Aplicación}[las]{Aplicación}
+ , schinese = {应用}{应用}
+ , tchinese = {應用}{應用}
+ , japanese = {応用}{応用}
+ , russian = {Применение}{Применение}
+ }
+ , Crefname = {
+ , english = {Application}{Application}
+ , french = [L']{Application}[Les]{Application}
+ , ngerman = {Anwendung}{Anwendung}
+ , italian = [L']{Applicazione}[Le]{Applicazione}
+ , portuguese = [A]{Aplicação}[As]{Aplicação}
+ , brazilian = [A]{Aplicação}[As]{Aplicação}
+ , spanish = [La]{Aplicación}[Las]{Aplicación}
+ , schinese = {应用}{应用}
+ , tchinese = {應用}{應用}
+ , japanese = {応用}{応用}
+ , russian = {Применение}{Применение}
+ }
+ }
\NameTheorem { assertion }
{
@@ -4738,91 +4981,11 @@
}
}
-\NameTheorem { definition-proposition }
- {
- , heading = {
- , english = Definition-Proposition
- , french = Définition-Proposition
- , ngerman = Definition-Proposition
- , italian = Definizione-Proposizione
- , portuguese = Definição-Proposição
- , brazilian = Definição-Proposição
- , spanish = Definición-Proposición
- , schinese = 定义-命题
- , tchinese = 定義-命題
- , japanese = 定義-命題
- , russian = Определение-Предложение
- }
- , crefname = {
- , english = {Definition-Proposition}{Definition-Proposition}
- , french = [la]{Définition-Proposition}[les]{Définition-Proposition}
- , ngerman = {Definition-Proposition}{Definition-Proposition}
- , italian = [la]{Definizione-Proposizione}[le]{Definizione-Proposizione}
- , portuguese = [a]{Definição-Proposição}[as]{Definição-Proposição}
- , brazilian = [a]{Definição-Proposição}[as]{Definição-Proposição}
- , spanish = [la]{Definición-Proposición}[las]{Definición-Proposición}
- , schinese = {定义-命题}{定义-命题}
- , tchinese = {定義-命題}{定義-命題}
- , japanese = {定義-命題}{定義-命題}
- , russian = {Определение-Предложение}{Определение-Предложение}
- }
- , Crefname = {
- , english = {Definition-Proposition}{Definition-Proposition}
- , french = [La]{Définition-Proposition}[Les]{Définition-Proposition}
- , ngerman = {Definition-Proposition}{Definition-Proposition}
- , italian = [La]{Definizione-Proposizione}[Le]{Definizione-Proposizione}
- , portuguese = [A]{Definição-Proposição}[As]{Definição-Proposição}
- , brazilian = [A]{Definição-Proposição}[As]{Definição-Proposição}
- , spanish = [La]{Definición-Proposición}[Las]{Definición-Proposición}
- , schinese = {定义-命题}{定义-命题}
- , tchinese = {定義-命題}{定義-命題}
- , japanese = {定義-命題}{定義-命題}
- , russian = {Определение-Предложение}{Определение-Предложение}
- }
- }
+\NameTheorem { definition-proposition } { combined = { definition ; proposition } }
+\NameTheorem { definition-theorem } { combined = { definition ; theorem } }
-\NameTheorem { definition-theorem }
- {
- , heading = {
- , english = Definition-Theorem
- , french = Définition-Théorème
- , ngerman = Definition-Satz
- , italian = Definizione-Teorema
- , portuguese = Definição-Teorema
- , brazilian = Definição-Teorema
- , spanish = Definición-Teorema
- , schinese = 定义-定理
- , tchinese = 定義-定理
- , japanese = 定義-定理
- , russian = Определение-Теорема
- }
- , crefname = {
- , english = {Definition-Theorem}{Definition-Theorem}
- , french = [la]{Définition-Théorème}[les]{Définition-Théorème}
- , ngerman = {Definition-Satz}{Definition-Satz}
- , italian = [la]{Definizione-Teorema}[le]{Definizione-Teorema}
- , portuguese = [a]{Definição-Teorema}[as]{Definição-Teorema}
- , brazilian = [a]{Definição-Teorema}[as]{Definição-Teorema}
- , spanish = [la]{Definición-Teorema}[las]{Definición-Teorema}
- , schinese = {定义-定理}{定义-定理}
- , tchinese = {定義-定理}{定義-定理}
- , japanese = {定義-定理}{定義-定理}
- , russian = {Определение-Теорема}{Определение-Теорема}
- }
- , Crefname = {
- , english = {Definition-Theorem}{Definition-Theorem}
- , french = [La]{Définition-Théorème}[Les]{Définition-Théorème}
- , ngerman = {Definition-Satz}{Definition-Satz}
- , italian = [La]{Definizione-Teorema}[Le]{Definizione-Teorema}
- , portuguese = [A]{Definição-Teorema}[As]{Definição-Teorema}
- , brazilian = [A]{Definição-Teorema}[As]{Definição-Teorema}
- , spanish = [La]{Definición-Teorema}[Las]{Definición-Teorema}
- , schinese = {定义-定理}{定义-定理}
- , tchinese = {定義-定理}{定義-定理}
- , japanese = {定義-定理}{定義-定理}
- , russian = {Определение-Теорема}{Определение-Теорема}
- }
- }
+\NameTheorem { proposition-definition } { combined = { proposition ; definition } }
+\NameTheorem { theorem-definition } { combined = { theorem ; definition } }
%</projlib-theorem>
%
%<*projlib-titlepage>
@@ -4900,8 +5063,8 @@
\fill [color=titlepage-main] ($(current~page.north~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
\fill [color=titlepage-back] ($(current~page.north~east)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
\node[text~width=.3\paperwidth,text~height=.2\paperheight] at ($(current~page.north~west)+(.32\paperwidth,-.17\paperheight)$) { \l_projlib_titlepage_logo_tl };
- \node[text~width=.4\paperwidth,text~height=.3\paperheight,scale=2.5] at ($(current~page.north~west)+(.67\paperwidth,-.15\paperheight)$) {\textcolor{titlepage-back}{\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[.5em]\footnotesize{ \l_projlib_titlepage_subtitle_tl }}};
- \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{titlepage-back}\begin{flushright}\fontsize{16pt}{0pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{0pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
+ \node[text~width=.8\paperwidth,text~height=.4\paperheight] at ($(current~page.north~west)+(.57\paperwidth,-.33\paperheight)$) {\textcolor{titlepage-back}{\fontsize{24pt}{28pt}\selectfont\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[1.5em]\fontsize{18pt}{22pt}\selectfont{ \l_projlib_titlepage_subtitle_tl }}};
+ \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{titlepage-back}\begin{flushright}\fontsize{16pt}{18pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{14pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
\end{tikzpicture}
}
@@ -4909,9 +5072,9 @@
{
\begin{tikzpicture}[overlay,remember~picture]
\fill[color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$);
- \node[text~width=.3\paperwidth,text~height=.2\paperheight] at ($(current~page.north~west)+(.28\paperwidth,-.15\paperheight)$) { \l_projlib_titlepage_logo_tl };
- \node[text~width=.4\paperwidth,text~height=.3\paperheight,scale=2.5] at ($(current~page.north~west)+(.63\paperwidth,-.15\paperheight)$) {\textcolor{paper}{\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[.5em]\footnotesize{ \l_projlib_titlepage_subtitle_tl }}};
- \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{paper}\begin{flushright}\fontsize{16pt}{0pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{0pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
+ \node[text~width=.3\paperwidth,text~height=.2\paperheight] at ($(current~page.north~west)+(.27\paperwidth,-.15\paperheight)$) { \l_projlib_titlepage_logo_tl };
+ \node[text~width=.8\paperwidth,text~height=.4\paperheight] at ($(current~page.north~west)+(.52\paperwidth,-.33\paperheight)$) {\textcolor{paper}{\fontsize{24pt}{28pt}\selectfont\sffamily\textsc{ \l_projlib_titlepage_title_tl }\\[1.5em]\fontsize{18pt}{22pt}\selectfont{ \l_projlib_titlepage_subtitle_tl }}};
+ \node[text~width=.3\paperwidth,text~height=.3\paperheight] at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$) {\color{paper}\begin{flushright}\fontsize{16pt}{18pt}\selectfont\textsc{ \l_projlib_titlepage_author_tl }\\[1em]\fontsize{12pt}{14pt}\selectfont \l_projlib_titlepage_date_tl \end{flushright} };
\end{tikzpicture}
}
%</projlib-titlepage>
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index ab478f4771..5e01250d23 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -6,7 +6,7 @@
> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or as "***Proj**et **Lib**re*" (in French, meaning "*Free Project*").
-**This bundle is dated 2022/04/03. Please note that the documentations are not yet up-to-date.**
+**This bundle is dated 2022/04/18. Please note that the documentations are not yet up-to-date.**
## Introduction
@@ -46,12 +46,15 @@ The modules include:
- Draw the `ProjLib` logo in colorful or colorless fashion.
1. module `math` - *Efficient math setup*
- `\DefineOperator` and `\DefineShortcut` for setting up math macros efficiently
- - `\ListOfSymbols` for printing list of symboks
+ - `\ListOfSymbols` for printing list of symbols
1. module `paper` - *Configuration of the paper style*
- Paper style configuration, with the themes `yellow`, `green`, `light gray`, `gray`, `dark`, etc.
1. module `theorem` - *Configuration of theorem-like environments*
- - `\CreateTheorem`, `\SetTheorem` and more: setting up theorem-like environments based on the package `create-theorem`, and in particular, supporting the modes `name as is` and `name as context` for referencing names
- - Support options `simple name` and `complex name` for referencing names
+ - Setting up theorem-like environments based on the package `create-theorem`
+ - `\CreateTheorem`, `\SetTheorem` and more...
+ - In particular, supporting the modes `name as is` and `name as context` for referencing names.
+ - Supporting the modes `simple name` and `complex name` for the referencing names.
+ - `\SwitchTheoremNumbering` and `\DisableTheoremNumbering` for manipulating the numbering.
- Preset environments include: `assertion`, `assumption`, `axiom`, `conclusion`, `conjecture`, `convention`, `corollary`, `definition`, `definition-proposition`, `definition-theorem`, `example`, `exercise`, `fact`, `hypothesis`, `lemma`, `notation`, `observation`, `postulate`, `problem`, `property`, `proposition`, `question`, `remark`, `theorem`, and the corresponding unnumbered version with an asterisk `*` in the name.
1. module `titlepage` - *Commands for rendering the title page*
- Currently support two title page styles: `default` and `simple`.