summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/projlib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-10-01 03:01:18 +0000
committerNorbert Preining <norbert@preining.info>2023-10-01 03:01:18 +0000
commit8a05034cb5d7ae61b2de6857258caa3e43b496aa (patch)
treeb9c266e7f98a034ed060178b3c0c162598e68948 /macros/latex/contrib/projlib
parent61bc2520e547446bddedc290572684496c9347a0 (diff)
CTAN sync 202310010301
Diffstat (limited to 'macros/latex/contrib/projlib')
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx170
-rw-r--r--macros/latex/contrib/projlib/README.md2
2 files changed, 103 insertions, 69 deletions
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 5009d8e98c..686a120b2f 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -19,84 +19,84 @@
%<*ProjLib>
\ProvidesExplPackage
{ProjLib}
- {2023/09/28} {}
+ {2023/09/30} {}
{Collective interface of the ProjLib toolkit}
%</ProjLib>
%
%<*projlib-author>
\ProvidesExplPackage
{projlib-author}
- {2023/09/28} {}
+ {2023/09/30} {}
{Enhanced author information block}
%</projlib-author>
%
%<*projlib-datetime>
\ProvidesExplPackage
{projlib-datetime}
- {2023/09/28} {}
+ {2023/09/30} {}
{Convert numeric date-time string to natural language}
%</projlib-datetime>
%
%<*projlib-draft>
\ProvidesExplPackage
{projlib-draft}
- {2023/09/28} {}
+ {2023/09/30} {}
{Useful commands during draft stage}
%</projlib-draft>
%
%<*projlib-font>
\ProvidesExplPackage
{projlib-font}
- {2023/09/28} {}
+ {2023/09/30} {}
{Font selection and configuration}
%</projlib-font>
%
%<*projlib-language>
\ProvidesExplPackage
{projlib-language}
- {2023/09/28} {}
+ {2023/09/30} {}
{Multi-language configuration}
%</projlib-language>
%
%<*projlib-logo>
\ProvidesExplPackage
{projlib-logo}
- {2023/09/28} {}
+ {2023/09/30} {}
{The ProjLib logo}
%</projlib-logo>
%
%<*projlib-math>
\ProvidesExplPackage
{projlib-math}
- {2023/09/28} {}
+ {2023/09/30} {}
{Efficient math setup}
%</projlib-math>
%
%<*projlib-paper>
\ProvidesExplPackage
{projlib-paper}
- {2023/09/28} {}
+ {2023/09/30} {}
{Configuration of the paper style}
%</projlib-paper>
%
%<*projlib-text>
\ProvidesExplPackage
{projlib-text}
- {2023/09/28} {}
+ {2023/09/30} {}
{Text-related commands}
%</projlib-text>
%
%<*projlib-theorem>
\ProvidesExplPackage
{projlib-theorem}
- {2023/09/28} {}
+ {2023/09/30} {}
{Configuration of theorem-like environments}
%</projlib-theorem>
%
%<*projlib-titlepage>
\ProvidesExplPackage
{projlib-titlepage}
- {2023/09/28} {}
+ {2023/09/30} {}
{Commands for rendering the title page}
%</projlib-titlepage>
@@ -108,14 +108,20 @@
, author-block .bool_set:N = \l__projlib_main_author_bool
, author~block .bool_set:N = \l__projlib_main_author_bool
, author block .bool_set:N = \l__projlib_main_author_bool
+
, ams-fashion .bool_set:N = \l__projlib_main_amsfashion_bool
, 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
+ , AMS-fashion .bool_set:N = \l__projlib_main_amsfashion_bool
+ , 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-author }
\PassOptionsToPackage { \CurrentOption } { projlib-datetime }
@@ -167,6 +173,10 @@
, ams-fashion .initial:n = { false }
, ams~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
, ams fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , AMS-fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , AMS~fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+ , AMS fashion .bool_set:N = \l__projlib_author_amsfashion_bool
+
, unknown .code:n = {}
}
\ProcessKeyOptions [ projlib-author ]
@@ -182,24 +192,30 @@
}
\tl_new:N \g__projlib_author_font_author_tl
+\tl_new:N \g__projlib_author_font_date_tl
\tl_new:N \g__projlib_author_font_institute_tl
\tl_new:N \g__projlib_author_font_address_tl
\tl_new:N \g__projlib_author_font_curraddr_tl
\tl_new:N \g__projlib_author_font_email_tl
\tl_gset:Nn \g__projlib_author_font_author_tl { \normalsize \normalfont \scshape }
+\tl_gset:Nn \g__projlib_author_font_date_tl { \normalsize \normalfont }
\tl_gset:Nn \g__projlib_author_font_institute_tl { \small \normalfont }
\tl_gset:Nn \g__projlib_author_font_address_tl { \small \normalfont \itshape }
\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \small \normalfont \itshape }
\tl_gset:Nn \g__projlib_author_font_email_tl { \small \normalfont \ttfamily }
-\dim_new:N \g__projlib_author_length_innersep_dim
-\dim_new:N \g__projlib_author_length_sep_dim
-\dim_new:N \g__projlib_author_length_aftersep_dim
+\dim_new:N \g__projlib_author_groupsep_dim
+\dim_new:N \g__projlib_author_innersep_dim
+\dim_new:N \g__projlib_author_affilsep_dim
+\dim_new:N \g__projlib_author_aftersep_dim
+\dim_new:N \g__projlib_author_emptysep_dim
-\dim_set:Nn \g__projlib_author_length_innersep_dim { 0.3 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_sep_dim { 0.5 \baselineskip }
-\dim_set:Nn \g__projlib_author_length_aftersep_dim { 0.3 \baselineskip }
+\dim_set:Nn \g__projlib_author_groupsep_dim { 0.5 \baselineskip }
+\dim_set:Nn \g__projlib_author_innersep_dim { .25 \baselineskip }
+\dim_set:Nn \g__projlib_author_affilsep_dim { 0 \baselineskip }
+\dim_set:Nn \g__projlib_author_aftersep_dim { .15 \baselineskip }
+\dim_set:Nn \g__projlib_author_emptysep_dim { .15 \baselineskip }
\bool_new:N \g__projlib_author_affil_already_exist_bool
@@ -209,11 +225,20 @@
{
\hook_gput_code:nnn { cmd/@author/after } { projlib-author }
{
- \phantom {A} \\[-\baselineskip]
- \skip_vertical:n { \g__projlib_author_length_sep_dim }
- { \g__projlib_author_font_author_tl #1 }
\bool_set_false:N \g__projlib_author_affil_already_exist_bool
- \\ \phantom {}
+ % If there is nothing before, the following line does nothing
+ % If there is an affil before, this will backward one line
+ \phantom {A} \\[-\baselineskip]
+ \tl_if_blank:nTF { #1 }
+ {
+ \skip_vertical:n { \g__projlib_author_emptysep_dim }
+ \phantom {}
+ }
+ {
+ \skip_vertical:n { \g__projlib_author_groupsep_dim }
+ { \g__projlib_author_font_author_tl #1 }
+ \\ \phantom {}
+ }
}
}
@@ -223,13 +248,16 @@
{
\hook_gput_code:nnn { cmd/@author/after } { projlib-author }
{
- \phantom {A} \\[-.9\baselineskip]
- \bool_if:NF \g__projlib_author_affil_already_exist_bool
+ \phantom {A} \\[-\baselineskip]
+ \bool_if:NTF \g__projlib_author_affil_already_exist_bool
{
- \skip_vertical:n { \g__projlib_author_length_innersep_dim }
+ \skip_vertical:n { \g__projlib_author_affilsep_dim }
+ }
+ {
+ \skip_vertical:n { \g__projlib_author_innersep_dim }
}
- \bool_set_true:N \g__projlib_author_affil_already_exist_bool
{ \use:c { g__projlib_author_font_ #1 _tl } #2 }
+ \bool_set_true:N \g__projlib_author_affil_already_exist_bool
\\ \phantom {}
}
}
@@ -267,14 +295,14 @@
{
\hook_gput_code:nnn { cmd/@author/before } { projlib-author }
{
- \skip_vertical:n { - \g__projlib_author_length_sep_dim }
+ \skip_vertical:n { - \g__projlib_author_groupsep_dim }
}
\hook_gput_code:nnn { cmd/@author/after } { projlib-author }
{
\skip_vertical:n { - \baselineskip }
\bool_if:NT \g__projlib_author_affil_already_exist_bool
{
- \skip_vertical:n { \g__projlib_author_length_aftersep_dim }
+ \skip_vertical:n { \g__projlib_author_aftersep_dim }
}
}
}
@@ -323,13 +351,13 @@
% measure the width of "*"
\hbox_set:Nn \l_tmpa_box { * }
- \dim_const:Nn \c__projlib_author_length_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
+ \dim_const:Nn \c__projlib_author_width_of_asterisk_dim { \box_wd:N \l_tmpa_box }
\cs_new_nopar:Nn \projlib_author_pre_thanks:n
{
\projlib_author_backup_thanks:w
{
- \skip_horizontal:n { - \c__projlib_author_length_width_of_asterisk_dim }
+ \skip_horizontal:n { - \c__projlib_author_width_of_asterisk_dim }
#1
}
}
@@ -393,7 +421,7 @@
\makeatletter
\xpatchcmd { \@maketitle } { \@date }
{
- \projlib_author_if_content_empty:nTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \@date }
+ \projlib_author_if_content_empty:nTF { \@date } { \skip_vertical:n { -2 \baselineskip } } { \g__projlib_author_font_date_tl \@date }
\projlib_author_if_content_empty:nF { \g__projlib_author_dedicatory_tl }
{
\projlib_author_if_content_empty:nT { \@date } { \skip_vertical:n { 2 \baselineskip } }
@@ -2246,7 +2274,7 @@
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, ~
+ ES = { Aquí ~ está ~ la ~ lista ~ de ~ elementos ~ pendientes, ~
seguida ~ de ~ los ~ números ~ de ~ página ~ correspondientes. } ,
CN = { 以下是未完成事项列表,括号内注明了对应的页码。 } ,
TC = { 以下是未完成事項的列表,括號內註明了對應頁碼。 } ,
@@ -2354,37 +2382,37 @@
\projlib_langauge_define_multilingual_text:Nn \projlib_draft_blind_text_tl
{
, EN = {
- Hello,~here~is~some~text~without~a~meaning.~This~text~should~show~what~a~printed~text~will~look~like~at~this~place.~If~you~read~this~text,~you~will~get~no~information.~Really?~Is~there~no~information?~Is~there~a~difference~between~this~text~and~some~nonsense~like~``Huardest~gefburn''?~Not~at~all!~A~blind~text~like~this~gives~you~information~about~the~selected~font,~how~the~letters~are~written~and~an~impression~of~the~look.~This~text~should~contain~all~letters~of~the~alphabet~and~it~should~be~written~in~of~the~original~language.~There~is~no~need~for~special~content,~but~the~length~of~words~should~match~the~language.
+ Hello,~here~is~some~text~without~a~meaning.~This~text~should~show~what~a~printed~text~will~look~like~at~this~place.~If~you~read~this~text,~you~will~get~no~information.~Really?~Is~there~no~information?~Is~there~a~difference~between~this~text~and~some~nonsense~like~\textquote{Huardest~gefburn}?~Not~at~all!~A~blind~text~like~this~gives~you~information~about~the~selected~font,~how~the~letters~are~written~and~an~impression~of~the~look.~This~text~should~contain~all~letters~of~the~alphabet~and~it~should~be~written~in~of~the~original~language.~There~is~no~need~for~special~content,~but~the~length~of~words~should~match~the~language.
}
, FR = {
- Bonjour,~voici~un~texte~sans~signification.~Ce~texte~doit~montrer~à~quoi~ressemble~un~texte~imprimé~à~cet~endroit.~Si~vous~lisez~ce~texte,~vous~n'obtiendrez~aucune~information.~Vraiment~?~Il~n'y~a~aucune~information~?~Y~a-t-il~une~différence~entre~ce~texte~et~une~absurdité~comme~«~Huardest~gefburn~»~?~Pas~du~tout~!~Un~texte~aveugle~comme~celui-ci~vous~donne~des~informations~sur~la~police~choisie,~la~façon~dont~les~lettres~sont~écrites~et~une~impression~de~l'apparence.~Ce~texte~doit~contenir~toutes~les~lettres~de~l'alphabet~et~être~écrit~dans~la~langue~d'origine.~Il~n'est~pas~nécessaire~de~prévoir~un~contenu~spécial,~mais~la~longueur~des~mots~doit~correspondre~à~la~langue.
+ Bonjour,~voici~un~texte~sans~signification.~Ce~texte~doit~montrer~à~quoi~ressemble~un~texte~imprimé~à~cet~endroit.~Si~vous~lisez~ce~texte,~vous~n'obtiendrez~aucune~information.~Vraiment~?~Il~n'y~a~aucune~information~?~Y~a-t-il~une~différence~entre~ce~texte~et~une~absurdité~comme~\textquote{Huardest~gefburn}~?~Pas~du~tout~!~Un~texte~aveugle~comme~celui-ci~vous~donne~des~informations~sur~la~police~choisie,~la~façon~dont~les~lettres~sont~écrites~et~une~impression~de~l'apparence.~Ce~texte~doit~contenir~toutes~les~lettres~de~l'alphabet~et~être~écrit~dans~la~langue~d'origine.~Il~n'est~pas~nécessaire~de~prévoir~un~contenu~spécial,~mais~la~longueur~des~mots~doit~correspondre~à~la~langue.
}
, DE = {
- Hallo,~hier~ist~ein~Text~ohne~Bedeutung.~Dieser~Text~soll~zeigen,~wie~ein~gedruckter~Text~an~dieser~Stelle~aussehen~wird.~Wenn~Sie~diesen~Text~lesen,~werden~Sie~keine~Informationen~erhalten.~Wirklich?~Gibt~es~keine~Informationen?~Gibt~es~einen~Unterschied~zwischen~diesem~Text~und~irgendeinem~Blödsinn~wie~``Huardest~gefburn''?~Ganz~und~gar~nicht!~Ein~solcher~Blindtext~gibt~Ihnen~Informationen~über~die~gewählte~Schriftart,~wie~die~Buchstaben~geschrieben~sind~und~einen~Eindruck~vom~Aussehen.~Dieser~Text~sollte~alle~Buchstaben~des~Alphabets~enthalten~und~in~der~Originalsprache~geschrieben~sein.~Es~ist~kein~besonderer~Inhalt~erforderlich,~aber~die~Länge~der~Wörter~sollte~der~Sprache~entsprechen.
+ Hallo,~hier~ist~ein~Text~ohne~Bedeutung.~Dieser~Text~soll~zeigen,~wie~ein~gedruckter~Text~an~dieser~Stelle~aussehen~wird.~Wenn~Sie~diesen~Text~lesen,~werden~Sie~keine~Informationen~erhalten.~Wirklich?~Gibt~es~keine~Informationen?~Gibt~es~einen~Unterschied~zwischen~diesem~Text~und~irgendeinem~Blödsinn~wie~\textquote{Huardest~gefburn}?~Ganz~und~gar~nicht!~Ein~solcher~Blindtext~gibt~Ihnen~Informationen~über~die~gewählte~Schriftart,~wie~die~Buchstaben~geschrieben~sind~und~einen~Eindruck~vom~Aussehen.~Dieser~Text~sollte~alle~Buchstaben~des~Alphabets~enthalten~und~in~der~Originalsprache~geschrieben~sein.~Es~ist~kein~besonderer~Inhalt~erforderlich,~aber~die~Länge~der~Wörter~sollte~der~Sprache~entsprechen.
}
, IT = {
- Ciao,~qui~c'è~un~drafto~senza~significato.~Questo~drafto~dovrebbe~mostrare~come~sarà~un~drafto~stampato~in~questo~posto.~Se~leggete~questo~drafto,~non~otterrete~alcuna~informazione.~Davvero?~Non~c'è~nessuna~informazione?~C'è~una~differenza~tra~questo~drafto~e~qualche~sciocchezza~come~``Huardest~gefburn''?~Niente~affatto!~Un~drafto~cieco~come~questo~ti~dà~informazioni~sul~font~selezionato,~su~come~sono~scritte~le~lettere~e~un'impressione~dell'aspetto.~Questo~drafto~dovrebbe~contenere~tutte~le~lettere~dell'alfabeto~e~dovrebbe~essere~scritto~nella~lingua~originale.~Non~c'è~bisogno~di~contenuti~speciali,~ma~la~lunghezza~delle~parole~dovrebbe~corrispondere~alla~lingua.
+ Ciao,~qui~c'è~un~drafto~senza~significato.~Questo~drafto~dovrebbe~mostrare~come~sarà~un~drafto~stampato~in~questo~posto.~Se~leggete~questo~drafto,~non~otterrete~alcuna~informazione.~Davvero?~Non~c'è~nessuna~informazione?~C'è~una~differenza~tra~questo~drafto~e~qualche~sciocchezza~come~\textquote{Huardest~gefburn}?~Niente~affatto!~Un~drafto~cieco~come~questo~ti~dà~informazioni~sul~font~selezionato,~su~come~sono~scritte~le~lettere~e~un'impressione~dell'aspetto.~Questo~drafto~dovrebbe~contenere~tutte~le~lettere~dell'alfabeto~e~dovrebbe~essere~scritto~nella~lingua~originale.~Non~c'è~bisogno~di~contenuti~speciali,~ma~la~lunghezza~delle~parole~dovrebbe~corrispondere~alla~lingua.
}
, PT = {
- Olá,~aqui~está~um~texto~sem~significado.~Este~texto~deve~mostrar~como~será~um~texto~impresso~neste~local.~Se~ler~este~texto,~não~obterá~qualquer~informação.~A~sério?~Não~há~informação?~Há~alguma~diferença~entre~este~texto~e~alguns~disparates~como~"Huardest~gefburn"?~De~modo~algum!~Um~texto~cego~como~este~dá-lhe~informações~sobre~a~fonte~seleccionada,~como~as~letras~são~escritas~e~uma~impressão~do~aspecto.~Este~texto~deve~conter~todas~as~letras~do~alfabeto~e~deve~ser~escrito~na~língua~original.~Não~há~necessidade~de~conteúdo~especial,~mas~o~tamanho~das~palavras~deve~corresponder~à~língua.
+ Olá,~aqui~está~um~texto~sem~significado.~Este~texto~deve~mostrar~como~será~um~texto~impresso~neste~local.~Se~ler~este~texto,~não~obterá~qualquer~informação.~A~sério?~Não~há~informação?~Há~alguma~diferença~entre~este~texto~e~alguns~disparates~como~\textquote{Huardest~gefburn}?~De~modo~algum!~Um~texto~cego~como~este~dá-lhe~informações~sobre~a~fonte~seleccionada,~como~as~letras~são~escritas~e~uma~impressão~do~aspecto.~Este~texto~deve~conter~todas~as~letras~do~alfabeto~e~deve~ser~escrito~na~língua~original.~Não~há~necessidade~de~conteúdo~especial,~mas~o~tamanho~das~palavras~deve~corresponder~à~língua.
}
, BR = {
- Olá,~aqui~está~um~texto~sem~sentido.~Este~texto~deve~mostrar~como~será~um~texto~impresso~neste~lugar.~Se~você~ler~este~texto,~você~não~obterá~nenhuma~informação.~É~mesmo?~Não~há~nenhuma~informação?~Há~alguma~diferença~entre~este~texto~e~alguns~disparates~como~"Huardest~gefburn"?~De~jeito~nenhum!~Um~texto~cego~como~este~lhe~dá~informações~sobre~a~fonte~selecionada,~como~as~letras~são~escritas~e~uma~impressão~da~aparência.~Este~texto~deve~conter~todas~as~letras~do~alfabeto~e~deve~ser~escrito~no~idioma~original.~Não~há~necessidade~de~conteúdo~especial,~mas~o~tamanho~das~palavras~deve~corresponder~ao~idioma.
+ Olá,~aqui~está~um~texto~sem~sentido.~Este~texto~deve~mostrar~como~será~um~texto~impresso~neste~lugar.~Se~você~ler~este~texto,~você~não~obterá~nenhuma~informação.~É~mesmo?~Não~há~nenhuma~informação?~Há~alguma~diferença~entre~este~texto~e~alguns~disparates~como~\textquote{Huardest~gefburn}?~De~jeito~nenhum!~Um~texto~cego~como~este~lhe~dá~informações~sobre~a~fonte~selecionada,~como~as~letras~são~escritas~e~uma~impressão~da~aparência.~Este~texto~deve~conter~todas~as~letras~do~alfabeto~e~deve~ser~escrito~no~idioma~original.~Não~há~necessidade~de~conteúdo~especial,~mas~o~tamanho~das~palavras~deve~corresponder~ao~idioma.
}
, ES = {
- Hola,~aquí~hay~un~texto~sin~significado.~Este~texto~debe~mostrar~cómo~se~verá~un~texto~impreso~en~este~lugar.~Si~lees~este~texto,~no~obtendrás~ninguna~información.~¿En~serio?~¿No~hay~información?~¿Hay~alguna~diferencia~entre~este~texto~y~alguna~tontería~como~``Huardest~gefburn''?~¡Para~nada!~Un~texto~oculto~como~este~le~brinda~información~sobre~la~fuente~seleccionada,~cómo~se~escriben~las~letras~y~una~impresión~de~la~apariencia.~Este~texto~debe~contener~todas~las~letras~del~alfabeto~y~debe~estar~escrito~en~el~idioma~original.~No~hay~necesidad~de~contenido~especial,~pero~la~longitud~de~las~palabras~debe~coincidir~con~el~idioma.
+ Hola,~aquí~hay~un~texto~sin~significado.~Este~texto~debe~mostrar~cómo~se~verá~un~texto~impreso~en~este~lugar.~Si~lees~este~texto,~no~obtendrás~ninguna~información.~¿En~serio?~¿No~hay~información?~¿Hay~alguna~diferencia~entre~este~texto~y~alguna~tontería~como~\textquote{Huardest~gefburn}?~¡Para~nada!~Un~texto~oculto~como~este~le~brinda~información~sobre~la~fuente~seleccionada,~cómo~se~escriben~las~letras~y~una~impresión~de~la~apariencia.~Este~texto~debe~contener~todas~las~letras~del~alfabeto~y~debe~estar~escrito~en~el~idioma~original.~No~hay~necesidad~de~contenido~especial,~pero~la~longitud~de~las~palabras~debe~coincidir~con~el~idioma.
}
, CN = {
- 你好,这里有一些没有意义的文字。 此文本应显示打印文本在此位置的外观。 如果你阅读这段文字,你将不会得到任何信息。 真的没有信息吗? 这段文字和诸如 “劳仑衣普桑,认至将指点效则机,最你更枝” 或者 “想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴” 之类的废话有区别吗? 一点都没有! 这样的一段文本会给你提供关于所选字体的信息、字母的书写方式以及对外观的印象。 该文本应包含字母表中的所有字母,并且应使用原始语言编写。 不需要特别的内容,但字长要与语言相匹配。
+ 你好,这里有一些没有意义的文字。此文本应显示打印文本在此位置的外观。如果你阅读这段文字,你将不会得到任何信息。真的没有信息吗?这段文字和诸如\textquote{劳仑衣普桑,认至将指点效则机,最你更枝}或者\textquote{想极整月正进好志次回总般,段然取向使张规军证回,世市总李率英茄持伴}之类的废话有区别吗?一点都没有!这样的一段文本会给你提供关于所选字体的信息、字母的书写方式以及对外观的印象。该文本应包含字母表中的所有字母,并且应使用原始语言编写。不需要特别的内容,但字长要与语言相匹配。
}
, TC = {
- 你好,這裡有一些沒有意義的文字。此文本應顯示打印文本在此位置的外觀。如果你閱讀這段文字,你將不會得到任何信息。真的沒有信息嗎?這段文字和諸如 “勞崙衣普桑,認至將指點效則機,最你更枝” 或者 “想極整月正進好志次回總般,段然取向使張規軍證回,世市總李率英茄持伴” 之類的廢話有區別嗎?一點都沒有!這樣的一段文本會給你提供關於所選字體的信息、字母的書寫方式以及對外觀的印象。該文本應包含字母表中的所有字母,並且應使用原始語言編寫。不需要特別的內容,但字長要與語言相匹配。
+ 你好,這裡有一些沒有意義的文字。此文本應顯示打印文本在此位置的外觀。如果你閱讀這段文字,你將不會得到任何信息。真的沒有信息嗎?這段文字和諸如\textquote{勞崙衣普桑,認至將指點效則機,最你更枝}或者\textquote{想極整月正進好志次回總般,段然取向使張規軍證回,世市總李率英茄持伴}之類的廢話有區別嗎?一點都沒有!這樣的一段文本會給你提供關於所選字體的信息、字母的書寫方式以及對外觀的印象。該文本應包含字母表中的所有字母,並且應使用原始語言編寫。不需要特別的內容,但字長要與語言相匹配。
}
, JP = {
- こんにちは、ここに意味のないテキストがあります。 このテキストは、この場所で印刷されたテキストがどのように見えるかを示す必要があります。 このテキストを読んでも、情報は得られません。 本当に? 情報はありませんか? このテキストと「アでニンはすミ」のようなナンセンスとの間に違いはありますか? 全くない! このようなブラインドテキストは、選択したフォント、文字の書き方、外観の印象に関する情報を提供します。 このテキストにはアルファベットのすべての文字が含まれている必要があり、元の言語で書かれている必要があります。 特別なコンテンツは必要ありませんが、単語の長さは言語と一致している必要があります。
+ こんにちは、ここに意味のないテキストがあります。このテキストは、この場所で印刷されたテキストがどのように見えるかを示す必要があります。このテキストを読んでも、情報は得られません。本当に?情報はありませんか?このテキストと\textquote{アでニンはすミ}のようなナンセンスとの間に違いはありますか?全くない!このようなブラインドテキストは、選択したフォント、文字の書き方、外観の印象に関する情報を提供します。このテキストにはアルファベットのすべての文字が含まれている必要があり、元の言語で書かれている必要があります。特別なコンテンツは必要ありませんが、単語の長さは言語と一致している必要があります。
}
, RU = {
- Здравствуйте,~вот~какой-то~текст~без~смысла.~Этот~текст~должен~показывать,~как~будет~выглядеть~печатный~текст~в~этом~месте.~Если~вы~прочитаете~этот~текст,~вы~не~получите~никакой~информации.~Действительно?~Нет~информации?~Есть~ли~разница~между~этим~текстом~и~какой-то~чепухой~вроде~``Бзостачщв~дрероих''?~Нисколько!~Слепой~текст,~подобный~этому,~дает~вам~информацию~о~выбранном~шрифте,~о~том,~как~написаны~буквы,~и~о~впечатлении~от~внешнего~вида.~Этот~текст~должен~содержать~все~буквы~алфавита~и~должен~быть~написан~на~языке~оригинала.~В~специальном~содержании~нет~необходимости,~но~длина~слов~должна~соответствовать~языку.
+ Здравствуйте,~вот~какой-то~текст~без~смысла.~Этот~текст~должен~показывать,~как~будет~выглядеть~печатный~текст~в~этом~месте.~Если~вы~прочитаете~этот~текст,~вы~не~получите~никакой~информации.~Действительно?~Нет~информации?~Есть~ли~разница~между~этим~текстом~и~какой-то~чепухой~вроде~\textquote{Бзостачщв~дрероих}?~Нисколько!~Слепой~текст,~подобный~этому,~дает~вам~информацию~о~выбранном~шрифте,~о~том,~как~написаны~буквы,~и~о~впечатлении~от~внешнего~вида.~Этот~текст~должен~содержать~все~буквы~алфавита~и~должен~быть~написан~на~языке~оригинала.~В~специальном~содержании~нет~необходимости,~но~длина~слов~должна~соответствовать~языку.
}
}
@@ -2476,19 +2504,22 @@
{
\RequirePackage { mathpazo }
\PassOptionsToPackage { defaultsups } { newpxtext }
- \RequirePackage { newpxtext }
- \cs_undefine:c { openbox }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- \sys_if_engine_pdftex:F
+ \PassOptionsToPackage { no-math } { fontspec }
+ \hook_gput_code:nnn { begindocument/before } { projlib-font }
{
- \setsansfont { texgyreheros }
- [
- Scale = MatchUppercase ,
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- ]
+ \RequirePackage { newpxtext }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ \sys_if_engine_pdftex:F
+ {
+ \setsansfont { texgyreheros }
+ [
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
+ ]
+ }
}
\projlib_font_set_linespacing_latin:n { \setstretch { 1.07 } }
\bool_gset_true:N \g_projlib_font_already_set_bool
@@ -2497,20 +2528,23 @@
\bool_if:NT \l__projlib_font_times_bool
{
\PassOptionsToPackage { defaultsups } { newtxtext }
- \RequirePackage { newtxtext }
- \RequirePackage { newtxmath }
- \cs_undefine:c { openbox }
- \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
- \sys_if_engine_pdftex:F
+ \PassOptionsToPackage { no-math } { fontspec }
+ \hook_gput_code:nnn { begindocument/before } { projlib-font }
{
- \setsansfont { texgyreheros }
- [
- Scale = MatchUppercase ,
- UprightFont = *-regular ,
- BoldFont = *-bold ,
- ItalicFont = *-italic ,
- BoldItalicFont = *-bolditalic ,
- ]
+ \RequirePackage { newtxtext }
+ \RequirePackage { newtxmath }
+ \bool_if:NT \l__projlib_font_useosf_bool { \useosf }
+ \sys_if_engine_pdftex:F
+ {
+ \setsansfont { texgyreheros }
+ [
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
+ ]
+ }
}
\projlib_font_set_linespacing_latin:n { \setstretch { 1.00 } }
\bool_gset_true:N \g_projlib_font_already_set_bool
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index b1ef5e5b4b..a180d800d3 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -5,7 +5,7 @@
# The `ProjLib` Toolkit
-> **This bundle is dated 2023/09/28.**
+> **This bundle is dated 2023/09/30.**
> **New documentations are still being written. For now, only the core code is included in TeX Live 2023 (old documentations have been removed from the distribution).**