summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-04 20:54:49 +0000
committerKarl Berry <karl@freefriends.org>2022-04-04 20:54:49 +0000
commit656055251bead88e4d7e7d685722255033367f49 (patch)
tree6c5f28eb221ee4213fc5ef8b6211eb464f5992a2 /Master/texmf-dist/source/latex
parent4ca1cb3da46997c41eff1ae88aad0d090f717b3c (diff)
jxu (4apr22)
git-svn-id: svn://tug.org/texlive/trunk@62900 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.dtx305
-rw-r--r--Master/texmf-dist/source/latex/projlib/ProjLib.ins2
2 files changed, 237 insertions, 70 deletions
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
index 32903be29bf..03de30a0d0b 100644
--- a/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
+++ b/Master/texmf-dist/source/latex/projlib/ProjLib.dtx
@@ -20,72 +20,79 @@
%<*ProjLib>
\ProvidesExplPackage
{ProjLib}
- {2022/03/21} {}
+ {2022/04/03} {}
{Collective interface of the ProjLib toolkit}
%</ProjLib>
%
%<*projlib-author>
\ProvidesExplPackage
{projlib-author}
- {2022/03/21} {}
+ {2022/04/03} {}
{Enhanced author information block}
%</projlib-author>
%
%<*projlib-datetime>
\ProvidesExplPackage
{projlib-datetime}
- {2022/03/21} {}
+ {2022/04/03} {}
{Convert numeric date-time string to natural language}
%</projlib-datetime>
%
%<*projlib-draft>
\ProvidesExplPackage
{projlib-draft}
- {2022/03/21} {}
+ {2022/04/03} {}
{Useful commands during draft stage}
%</projlib-draft>
%
%<*projlib-font>
\ProvidesExplPackage
{projlib-font}
- {2022/03/21} {}
+ {2022/04/03} {}
{Font selection and configuration}
%</projlib-font>
%
%<*projlib-language>
\ProvidesExplPackage
{projlib-language}
- {2022/03/21} {}
+ {2022/04/03} {}
{Multi-language configuration}
%</projlib-language>
%
%<*projlib-logo>
\ProvidesExplPackage
{projlib-logo}
- {2022/03/21} {}
+ {2022/04/03} {}
{The ProjLib logo}
%</projlib-logo>
%
%<*projlib-math>
\ProvidesExplPackage
{projlib-math}
- {2022/03/21} {}
+ {2022/04/03} {}
{Efficient math setup}
%</projlib-math>
%
%<*projlib-paper>
\ProvidesExplPackage
{projlib-paper}
- {2022/03/21} {}
+ {2022/04/03} {}
{Configuration of the paper style}
%</projlib-paper>
%
%<*projlib-theorem>
\ProvidesExplPackage
{projlib-theorem}
- {2022/03/21} {}
+ {2022/04/03} {}
{Configuration of theorem-like environments}
%</projlib-theorem>
+%
+%<*projlib-titlepage>
+\ProvidesExplPackage
+ {projlib-titlepage}
+ {2022/04/03} {}
+ {Commands for rendering the title page}
+%</projlib-titlepage>
%<*ProjLib>
\keys_define:nn { ProjLib }
@@ -99,6 +106,10 @@
, ams-fashion .initial:n = { false }
, ams~fashion .bool_set:N = \l__projlib_main_amsfashion_bool
, ams fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , title-page .bool_set:N = \l__projlib_main_titlepage_bool
+ , title-page .initial:n = { false }
+ , title~page .bool_set:N = \l__projlib_main_titlepage_bool
+ , title page .bool_set:N = \l__projlib_main_titlepage_bool
, unknown .code:n = {
\PassOptionsToPackage { \CurrentOption } { projlib-language }
\PassOptionsToPackage { \CurrentOption } { projlib-author }
@@ -132,6 +143,11 @@
\RequirePackage { projlib-math }
\RequirePackage { projlib-paper }
+\bool_if:NT \l__projlib_main_titlepage_bool
+ {
+ \RequirePackage { projlib-titlepage }
+ }
+
\RequirePackage { projlib-theorem }
%</ProjLib>
%
@@ -483,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 = {}
}
@@ -2160,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 }
@@ -2239,8 +2266,10 @@
\skip_horizontal:n { 0.1em }
$\rangle$
\nobreakspace
- \IfNoValueF { #1 } { : ~ }
- #1 \\
+ \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 }
}
}
@@ -2248,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
}
}
}
@@ -3002,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
@@ -3025,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>
@@ -3363,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>
@@ -3578,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 }
@@ -4750,5 +4824,96 @@
}
}
%</projlib-theorem>
+%
+%<*projlib-titlepage>
+\keys_define:nn { projlib-titlepage }
+ {
+ , unknown .code:n = {}
+ }
+\ProcessKeysOptions { projlib-titlepage }
+
+\RequirePackage { projlib-paper }
+
+\RequirePackage { tikz }
+\ExplSyntaxOff
+\usetikzlibrary { calc }
+\ExplSyntaxOn
+
+\tl_new:N \l_projlib_titlepage_logo_tl
+\tl_new:N \l_projlib_titlepage_title_tl
+\tl_new:N \l_projlib_titlepage_subtitle_tl
+\tl_new:N \l_projlib_titlepage_author_tl
+\tl_new:N \l_projlib_titlepage_date_tl
+\tl_new:N \l_projlib_titlepage_style_tl
+
+\NewDocumentCommand \ProjLibTitlePage { O{} m }
+ {
+ \keys_set:nn { projlib-titlepage-config } { #1 }
+ \projlib_titlepage_render:n { #2 }
+ }
+\ProvideDocumentCommand \TitlePage { O{} m }
+ {
+ \ProjLibTitlePage [ #1 ] { #2 }
+ }
+
+\cs_new_protected:Nn \projlib_titlepage_set_color:nn
+ {
+ \colorlet { titlepage- #1 } { #2 }
+ }
+
+\keys_define:nn { projlib-titlepage-config }
+ {
+ , logo .tl_set:N = \l_projlib_titlepage_logo_tl
+ , logo .initial:n = { \scalebox { 2 } { \ProjLib } }
+ , title .tl_set:N = \l_projlib_titlepage_title_tl
+ , subtitle .tl_set:N = \l_projlib_titlepage_subtitle_tl
+ , author .tl_set:N = \l_projlib_titlepage_author_tl
+ , date .tl_set:N = \l_projlib_titlepage_date_tl
+ , style .tl_set:N = \l_projlib_titlepage_style_tl
+ , style .initial:n = { default }
+ , color .code:n = {
+ \keyval_parse:nnn
+ { \use_none:n }
+ { \projlib_titlepage_set_color:nn }
+ { #1 }
+ }
+ , unknown .code:n = {}
+ }
+
+\colorlet { titlepage-main } { blue!50!cyan!50!black }
+\colorlet { titlepage-back } { blue!50!cyan!10!yellow!30 }
+
+\cs_new_protected:Nn \projlib_titlepage_render:n
+ {
+ \keys_set:nn { projlib-titlepage-config } { #1 }
+ \begin { titlepage }
+ \cs_if_exist_use:c { projlib_titlepage_render_with_style_ \l_projlib_titlepage_style_tl : }
+ \end { titlepage }
+ \setcounter { page } { 0 }
+ }
+
+\cs_new_protected:Nn \projlib_titlepage_render_with_style_default:
+ {
+ \begin{tikzpicture}[overlay,remember~picture]
+ \fill [color=titlepage-main] ($(current~page.south~west)$) rectangle ($(current~page.north~east)+(0,-.3\paperheight)$);
+ \fill [color=titlepage-back] ($(current~page.south~west)$) rectangle ($(current~page.north~west)+(.125\paperwidth,-.3\paperheight)$);
+ \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} };
+ \end{tikzpicture}
+ }
+
+\cs_new_protected:Nn \projlib_titlepage_render_with_style_simple:
+ {
+ \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} };
+ \end{tikzpicture}
+ }
+%</projlib-titlepage>
\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/projlib/ProjLib.ins b/Master/texmf-dist/source/latex/projlib/ProjLib.ins
index ca73cff4465..6aac97bf776 100644
--- a/Master/texmf-dist/source/latex/projlib/ProjLib.ins
+++ b/Master/texmf-dist/source/latex/projlib/ProjLib.ins
@@ -49,6 +49,7 @@ and version 1.3c or later is part of all distributions of LaTeX version
\generate{\file{projlib-math.sty}{\from{ProjLib.dtx}{projlib-math}}}
\generate{\file{projlib-paper.sty}{\from{ProjLib.dtx}{projlib-paper}}}
\generate{\file{projlib-theorem.sty}{\from{ProjLib.dtx}{projlib-theorem}}}
+\generate{\file{projlib-titlepage.sty}{\from{ProjLib.dtx}{projlib-titlepage}}}
\obeyspaces
\Msg{*************************************************************}
@@ -66,6 +67,7 @@ and version 1.3c or later is part of all distributions of LaTeX version
\Msg{* projlib-math.sty *}
\Msg{* projlib-paper.sty *}
\Msg{* projlib-theorem.sty *}
+\Msg{* projlib-titlepage.sty *}
\Msg{* *}
\Msg{* Happy TeXing! *}
\Msg{* *}