summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib/ProjLib.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/projlib/ProjLib.dtx')
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx200
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 }