diff options
Diffstat (limited to 'macros/latex/contrib/projlib')
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib.dtx | 441 | ||||
-rw-r--r-- | macros/latex/contrib/projlib/README.md | 11 |
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`. |