diff options
Diffstat (limited to 'macros/latex/contrib/projlib/ProjLib.dtx')
-rw-r--r-- | macros/latex/contrib/projlib/ProjLib.dtx | 200 |
1 files changed, 129 insertions, 71 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx index dd0b2e393f..03de30a0d0 100644 --- a/macros/latex/contrib/projlib/ProjLib.dtx +++ b/macros/latex/contrib/projlib/ProjLib.dtx @@ -20,77 +20,77 @@ %<*ProjLib> \ProvidesExplPackage {ProjLib} - {2022/03/28} {} + {2022/04/03} {} {Collective interface of the ProjLib toolkit} %</ProjLib> % %<*projlib-author> \ProvidesExplPackage {projlib-author} - {2022/03/28} {} + {2022/04/03} {} {Enhanced author information block} %</projlib-author> % %<*projlib-datetime> \ProvidesExplPackage {projlib-datetime} - {2022/03/28} {} + {2022/04/03} {} {Convert numeric date-time string to natural language} %</projlib-datetime> % %<*projlib-draft> \ProvidesExplPackage {projlib-draft} - {2022/03/28} {} + {2022/04/03} {} {Useful commands during draft stage} %</projlib-draft> % %<*projlib-font> \ProvidesExplPackage {projlib-font} - {2022/03/28} {} + {2022/04/03} {} {Font selection and configuration} %</projlib-font> % %<*projlib-language> \ProvidesExplPackage {projlib-language} - {2022/03/28} {} + {2022/04/03} {} {Multi-language configuration} %</projlib-language> % %<*projlib-logo> \ProvidesExplPackage {projlib-logo} - {2022/03/28} {} + {2022/04/03} {} {The ProjLib logo} %</projlib-logo> % %<*projlib-math> \ProvidesExplPackage {projlib-math} - {2022/03/28} {} + {2022/04/03} {} {Efficient math setup} %</projlib-math> % %<*projlib-paper> \ProvidesExplPackage {projlib-paper} - {2022/03/28} {} + {2022/04/03} {} {Configuration of the paper style} %</projlib-paper> % %<*projlib-theorem> \ProvidesExplPackage {projlib-theorem} - {2022/03/28} {} + {2022/04/03} {} {Configuration of theorem-like environments} %</projlib-theorem> % %<*projlib-titlepage> \ProvidesExplPackage {projlib-titlepage} - {2022/03/28} {} + {2022/04/03} {} {Commands for rendering the title page} %</projlib-titlepage> @@ -499,10 +499,20 @@ , month-year .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } } , day-month .code:n = { \tl_set:Nn \g__projlib_datetime_input_format_tl { day-month-year } } , only-year-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year-month } } - , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } } - , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } } - , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } } - , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } } + , only~year~month .meta:n = { only-year-month } + , only year month .meta:n = { only-year-month } + , only-month-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month-day } } + , only~month~day .meta:n = { only-month-day } + , only month day .meta:n = { only-month-day } + , only-year .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-year } } + , only~year .meta:n = { only-year } + , only year .meta:n = { only-year } + , only-month .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-month } } + , only~month .meta:n = { only-month } + , only month .meta:n = { only-month } + , only-day .code:n = { \tl_set:Nn \l__projlib_datetime_output_format_tl { only-day } } + , only~day .meta:n = { only-day } + , only day .meta:n = { only-day } , unknown .code:n = {} } @@ -2176,72 +2186,73 @@ } -\projlib_langauge_define_multilingual_text:Nn \projlib_draft_dnf_text +\projlib_langauge_define_multilingual_text:Nn \projlib_draft_DNF_text { - EN = To\ be\ finished , - FR = Pas\ encore\ fini , - DE = Nicht\ beendet , - IT = Per\ essere\ finito , - PT = Não\ terminou , - BR = Não\ terminou , - ES = Estar\ terminado , - CN = 这里尚未完成 , - TC = 這裡尚未完成 , - JP = 終わってない , - RU = Не\ закончен , + EN = To ~ be ~ finished , + FR = Pas ~ encore ~ fini , + DE = Nicht ~ beendet , + IT = Per ~ essere ~ finito , + PT = Não ~ terminou , + BR = Não ~ terminou , + ES = Estar ~ terminado , + CN = 这里尚未完成 , + TC = 這裡尚未完成 , + JP = 終わってない , + RU = Не ~ закончен , } -\projlib_langauge_define_multilingual_text:Nn \projlib_draft_dnf_report_text +\projlib_langauge_define_multilingual_text:Nn \projlib_draft_DNF_report_text { - EN = { Below\ is\ a\ list\ of\ outstanding\ items, - \ followed\ by\ the\ corresponding\ page\ numbers. } , - FR = { Voici\ la\ liste\ des\ éléments\ en\ suspens, - \ suivie\ des\ numéros\ de\ page\ correspondants. } , - DE = { Unten\ ist\ eine\ Liste\ der\ ausstehenden\ Posten, - \ gefolgt\ von\ den\ entsprechenden\ Seitenzahlen. } , - IT = { Qui\ sotto\ c'è\ una\ lista\ di\ voci\ in\ sospeso, - \ seguita\ dai\ numeri\ di\ pagina\ corrispondenti. } , - PT = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes, - \ seguida\ dos\ números\ de\ página\ correspondentes. } , - BR = { Abaixo\ está\ uma\ lista\ de\ itens\ pendentes, - \ seguida\ dos\ números\ de\ página\ correspondentes. } , - ES = { Aquí está\ la\ lista\ de\ elementos\ pendientes, - \ seguida\ de\ los\ números\ de\ página\ correspondientes. } , - CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } , - TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } , - JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } , - RU = { Ниже\ приведен\ список\ невыполненных\ пунктов - \ с\ соответствующими\ номерами\ страниц\ в\ скобках. } , + EN = { Below ~ is ~ a ~ list ~ of ~ outstanding ~ items, ~ + followed ~ by ~ the ~ corresponding ~ page ~ numbers. } , + FR = { Voici ~ la ~ liste ~ des ~ éléments ~ en ~ suspens, ~ + suivie ~ des ~ numéros ~ de ~ page ~ correspondants. } , + DE = { Unten ~ ist ~ eine ~ Liste ~ der ~ ausstehenden ~ Posten, ~ + gefolgt ~ von ~ den ~ entsprechenden ~ Seitenzahlen. } , + IT = { Qui ~ sotto ~ c'è ~ una ~ lista ~ di ~ voci ~ in ~ sospeso, ~ + seguita ~ dai ~ numeri ~ di ~ pagina ~ corrispondenti. } , + PT = { Abaixo ~ está ~ uma ~ lista ~ de ~ itens ~ pendentes, ~ + seguida ~ dos ~ números ~ de ~ página ~ correspondentes. } , + BR = { Abaixo ~ está ~ uma ~ lista ~ de ~ itens ~ pendentes, ~ + seguida ~ dos ~ números ~ de ~ página ~ correspondentes. } , + ES = { Aquí está ~ la ~ lista ~ de ~ elementos ~ pendientes, ~ + seguida ~ de ~ los ~ números ~ de ~ página ~ correspondientes. } , + CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } , + TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } , + JP = { 以下は、未解決の項目とそれに対応するページ番号の一覧です。 } , + RU = { Ниже ~ приведен ~ список ~ невыполненных ~ пунктов ~ + с ~ соответствующими ~ номерами ~ страниц ~ в ~ скобках. } , } -\tl_new:c { projlib_draft_dnf_font } -\tl_gset:cn { projlib_draft_dnf_font } { \normalfont \ttfamily \bfseries \small } +\tl_new:c { projlib_draft_DNF_font } +\tl_gset:cn { projlib_draft_DNF_font } { \small \normalfont \bfseries \ttfamily \hyphenchar\font=`\-\spaceskip=.5em ~ plus ~ .5em\xspaceskip=.5em } -\definecolor { projlib_draft_dnf_color } { RGB } { 21, 122, 20 } +\definecolor { projlib_draft_DNF_color } { RGB } { 21, 122, 20 } -\newcounter { projlib_draft_dnf_counter } +\newcounter { projlib_draft_DNF_counter } -\tl_new:N \g__projlib_draft_dnf_report_tl +\tl_new:N \g__projlib_draft_DNF_report_tl -\NewDocumentCommand \dnf { D<>{} } +\NewDocumentCommand \DNF { D<>{} } { \noindent \group_begin: - \projlib_draft_dnf_font - \stepcounter { projlib_draft_dnf_counter } - \projlib_draft_plain_box:nn { projlib_draft_dnf_color } + \projlib_draft_DNF_font + \stepcounter { projlib_draft_DNF_counter } + \projlib_draft_plain_box:nn { projlib_draft_DNF_color } { - \projlib_draft_dnf_text + \projlib_draft_DNF_text \nobreakspace - \# \theprojlib_draft_dnf_counter + \# \theprojlib_draft_DNF_counter \tl_if_blank:nF { #1 } { \, : ~ } - #1 + \tl_trim_spaces:n { #1 } } \group_end: - \tl_gput_right:Nx \g__projlib_draft_dnf_report_tl + \tl_gput_right:Nx \g__projlib_draft_DNF_report_tl { + \noindent \# \, - \int_value:w \theprojlib_draft_dnf_counter + \int_value:w \theprojlib_draft_DNF_counter \c_space_tl \c_space_tl $\langle$ \skip_horizontal:n { 0.1em } @@ -2255,8 +2266,10 @@ \skip_horizontal:n { 0.1em } $\rangle$ \nobreakspace - \IfNoValueF { #1 } { : ~ } - #1 \newline + \exp_not:n { \tl_if_blank:nF { #1 } { : ~ } } + \exp_not:n { \tl_trim_spaces:n { #1 } } + \par \skip_vertical:n { -\parskip } + \skip_vertical:n { .15\baselineskip } } } @@ -2264,15 +2277,16 @@ { \hook_gput_code:nnn { enddocument } { projlib-draft } { - \tl_if_blank:VF \g__projlib_draft_dnf_report_tl + \tl_if_blank:VF \g__projlib_draft_DNF_report_tl { \clearpage - \pagestyle{empty} + \pagestyle { empty } + \color { projlib_draft_DNF_color } \noindent - \color { projlib_draft_dnf_color } - \projlib_draft_dnf_font - \projlib_draft_dnf_report_text \\[0.75\baselineskip] - \g__projlib_draft_dnf_report_tl + \projlib_draft_DNF_font + \projlib_draft_DNF_report_text + \par \bigskip + \g__projlib_draft_DNF_report_tl } } } @@ -3018,7 +3032,7 @@ { % #1 = command name (with backslash) % #2 = key-value name configuration \keyval_parse:nnn - {} + { \use_none:n } { \__projlib_langauge_define_multilingual_text_do:nnn { \cs_to_str:N #1 } } { #2 } \tl_gset:Nn #1 @@ -3041,6 +3055,14 @@ { \projlib_langauge_define_multilingual_text:Nn #1 { #2 } } + + +\PassOptionsToPackage { autostyle } { csquotes } +\RequirePackage { csquotes } + +\DeclareQuoteStyle { schinese } {“} {”} {‘} {’} +\DeclareQuoteStyle { tchinese } {“} {”} {‘} {’} +\DeclareQuoteStyle { japanese } {「} {」} {『} {』} %</projlib-language> % %<*projlib-logo> @@ -3379,6 +3401,42 @@ \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 } } } + + +\cs_new:Nn \__projlib_math_list_of_symbols_entry:nnnn + % #1 = column one width + % #2 = column two width + % #3 = symbol + % #4 = description + { + \noindent + \begin { tabular } { p{#1} p{#2} } + \parbox [t] { #1 } { #3 } & \parbox [t] { #2 } { #4 } + \end { tabular } + \par + \skip_vertical:n { -\parskip } + } + +\cs_new:Nn \projlib_math_list_of_symbols:nnn + % #1 = column one width + % #2 = column two width + % #3 = key-val list + { + \keyval_parse:nnn + { \use_none:n } + { \__projlib_math_list_of_symbols_entry:nnnn { #1 } { #2 } } + { #3 } + } + +\NewDocumentCommand \ProjLibListOfSymbols { O{0.17\textwidth} O{0.75\textwidth} m } + { + \projlib_math_list_of_symbols:nnn { #1 } { #2 } { #3 } + } + +\ProvideDocumentCommand \ListOfSymbols { O{0.17\textwidth} O{0.75\textwidth} m } + { + \projlib_math_list_of_symbols:nnn { #1 } { #2 } { #3 } + } %</projlib-math> % %<*projlib-paper> @@ -3594,7 +3652,7 @@ \cs_generate_variant:Nn \keyval_parse:nnn { nno } \keyval_parse:nno - { } + { \use_none:n } { \projlib_theorem_preset_theorem_style:nn } { \l__projlib_theorem_theorem_style_tl } |