summaryrefslogtreecommitdiff
path: root/macros/unicodetex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/unicodetex')
-rw-r--r--macros/unicodetex/latex/beaulivre/README.md2
-rw-r--r--macros/unicodetex/latex/beaulivre/beaulivre.cls109
-rw-r--r--macros/unicodetex/latex/einfart/README.md2
-rw-r--r--macros/unicodetex/latex/einfart/einfart.cls111
-rw-r--r--macros/unicodetex/latex/lebhart/README.md2
-rw-r--r--macros/unicodetex/latex/lebhart/lebhart.cls109
-rw-r--r--macros/unicodetex/latex/simplivre/README.md2
-rw-r--r--macros/unicodetex/latex/simplivre/simplivre.cls111
8 files changed, 382 insertions, 66 deletions
diff --git a/macros/unicodetex/latex/beaulivre/README.md b/macros/unicodetex/latex/beaulivre/README.md
index 1841ec55d5..7ae628f855 100644
--- a/macros/unicodetex/latex/beaulivre/README.md
+++ b/macros/unicodetex/latex/beaulivre/README.md
@@ -2,7 +2,7 @@
# `beaulivre` : write you books in a colorful way
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **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).**
`beaulivre` is a LaTeX class for typesetting books, which has a colorful design.
diff --git a/macros/unicodetex/latex/beaulivre/beaulivre.cls b/macros/unicodetex/latex/beaulivre/beaulivre.cls
index b73a8a293b..6a88c6e949 100644
--- a/macros/unicodetex/latex/beaulivre/beaulivre.cls
+++ b/macros/unicodetex/latex/beaulivre/beaulivre.cls
@@ -18,7 +18,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{beaulivre}
- {2023/01/05} {}
+ {2023/07/14} {}
{A colorful book style}
\tl_const:Nn \l__colorclass_base_class_tl { book }
@@ -103,6 +103,9 @@
, b5paper .bool_set:N = \l__colorclass_b_five_paper_bool
, b5paper .initial:n = { false }
+ , oneside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+ , twoside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
, 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
, 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
@@ -243,16 +246,26 @@
BoldItalicFont = *-BoldItalic,
Numbers = OldStyle ,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
Numbers = OldStyle ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % Numbers = OldStyle ,
+ % ]
}
{
\setmainfont { TeXGyrePagellaX }
@@ -263,15 +276,24 @@
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % ]
}
\setmonofont { NewCMMono10 }
[
@@ -624,6 +646,7 @@
\setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
% \setmathfont { KpMath-Regular.otf } [ range = {} ]
+ % https://tex.stackexchange.com/a/646715
\sys_if_engine_luatex:T
{
\mathitalicsmode=1
@@ -633,6 +656,11 @@
{
\cs_gset_eq:NN \overline \wideoverbar
\cs_gset_eq:NN \square \mdwhtsquare
+
+ % https://tex.stackexchange.com/a/678611
+ \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+ \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+ \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
}
% https://tex.stackexchange.com/a/647789
@@ -650,6 +678,22 @@
\endgroup
}
+ % https://tex.stackexchange.com/a/678998
+ \hook_gput_code:nnn { begindocument } { colorclass }
+ {
+ \NewCommandCopy\standarddashv\dashv
+ \NewCommandCopy\standardvdash\vdash
+ \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+ \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+ }
+ \newcommand{\raisesymbol}[2]{%
+ \begingroup
+ \sbox\z@{$\m@th#1A$}%
+ \sbox\tw@{$\m@th#1#2$}%
+ \raisebox{\dimexpr(\ht\z@-\ht\tw@)/2}{\usebox{\tw@}}%
+ \endgroup
+ }
+
\RequirePackage { tikz-cd }
\tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
@@ -710,6 +754,41 @@
{
\colorclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
}
+
+ \cs_new_protected:Nn \colorclass_xarrows_double_generic:nnnnnn
+ % #3 = option of \tikz
+ % #4 = edge 1 of \draw
+ % #5 = edge 2 of \draw
+ % #6 = sep/2
+ {
+ \hbox_set:Nn \l__colorclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+ \hbox_set:Nn \l__colorclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+ \dim_set:Nn \l__colorclass_xarrows_length_dim
+ { \dim_eval:n { \dim_max:nn { \box_wd:N \l__colorclass_xarrows_below_box } { \box_wd:N \l__colorclass_xarrows_above_box } + 1em } }
+ \mathrel
+ {
+ \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+ {
+ \draw (0,#6) #4
+ node [ below = 4pt+#6 ] { \box_use:N \l__colorclass_xarrows_below_box }
+ ( \l__colorclass_xarrows_length_dim ,#6) ;
+ \draw (0,-#6) #5
+ node [ above = 3pt+#6 ] { \box_use:N \l__colorclass_xarrows_above_box }
+ ( \l__colorclass_xarrows_length_dim ,-#6) ;
+ }
+ }
+ }
+
+ \NewDocumentCommand \xrightrightarrows { O{} m }
+ {
+ \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+ }
+
+ \NewDocumentCommand \xleftleftarrows { O{} m }
+ {
+ \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+ }
+
\hook_gput_code:nnn { begindocument/end } { colorclass }
{
\RenewDocumentCommand \twoheadrightarrow {}
diff --git a/macros/unicodetex/latex/einfart/README.md b/macros/unicodetex/latex/einfart/README.md
index 4f72b8b80c..a7ac3720e3 100644
--- a/macros/unicodetex/latex/einfart/README.md
+++ b/macros/unicodetex/latex/einfart/README.md
@@ -2,7 +2,7 @@
# `einfart` : write you articles in a simple and clear way
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **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).**
`einfart` is a LaTeX class for typesetting articles, which has a simple and clear design.
diff --git a/macros/unicodetex/latex/einfart/einfart.cls b/macros/unicodetex/latex/einfart/einfart.cls
index bc5d8039c2..4b52a0831c 100644
--- a/macros/unicodetex/latex/einfart/einfart.cls
+++ b/macros/unicodetex/latex/einfart/einfart.cls
@@ -18,7 +18,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{einfart}
- {2023/01/05} {}
+ {2023/07/14} {}
{A simple and clear article style}
\tl_const:Nn \l__minimclass_base_class_tl { article }
@@ -110,6 +110,9 @@
, b5paper .bool_set:N = \l__minimclass_b_five_paper_bool
, b5paper .initial:n = { false }
+ , oneside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+ , twoside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
, 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
, 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
@@ -264,16 +267,26 @@
BoldItalicFont = *-BoldItalic,
Numbers = OldStyle ,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
Numbers = OldStyle ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % Numbers = OldStyle ,
+ % ]
}
{
\setmainfont { TeXGyrePagellaX }
@@ -284,15 +297,24 @@
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % ]
}
\setmonofont { NewCMMono10 }
[
@@ -603,7 +625,7 @@
\CJKfamily { JPmain }
}
- \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
+ % \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
}
\__minimclass_load_file_or_config:Nnn \l__minimclass_load_custom_font_file_math_bool { \l__minimclass_custom_font_file_math_str }
@@ -647,6 +669,7 @@
\setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
% \setmathfont { KpMath-Regular.otf } [ range = {} ]
+ % https://tex.stackexchange.com/a/646715
\sys_if_engine_luatex:T
{
\mathitalicsmode=1
@@ -656,6 +679,11 @@
{
\cs_gset_eq:NN \overline \wideoverbar
\cs_gset_eq:NN \square \mdwhtsquare
+
+ % https://tex.stackexchange.com/a/678611
+ \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+ \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+ \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
}
% https://tex.stackexchange.com/a/647789
@@ -673,6 +701,22 @@
\endgroup
}
+ % https://tex.stackexchange.com/a/678998
+ \hook_gput_code:nnn { begindocument } { minimclass }
+ {
+ \NewCommandCopy\standarddashv\dashv
+ \NewCommandCopy\standardvdash\vdash
+ \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+ \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+ }
+ \newcommand{\raisesymbol}[2]{%
+ \begingroup
+ \sbox\z@{$\m@th#1A$}%
+ \sbox\tw@{$\m@th#1#2$}%
+ \raisebox{\dimexpr(\ht\z@-\ht\tw@)/2}{\usebox{\tw@}}%
+ \endgroup
+ }
+
\RequirePackage { tikz-cd }
\tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
@@ -733,6 +777,41 @@
{
\minimclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
}
+
+ \cs_new_protected:Nn \minimclass_xarrows_double_generic:nnnnnn
+ % #3 = option of \tikz
+ % #4 = edge 1 of \draw
+ % #5 = edge 2 of \draw
+ % #6 = sep/2
+ {
+ \hbox_set:Nn \l__minimclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+ \hbox_set:Nn \l__minimclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+ \dim_set:Nn \l__minimclass_xarrows_length_dim
+ { \dim_eval:n { \dim_max:nn { \box_wd:N \l__minimclass_xarrows_below_box } { \box_wd:N \l__minimclass_xarrows_above_box } + 1em } }
+ \mathrel
+ {
+ \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+ {
+ \draw (0,#6) #4
+ node [ below = 4pt+#6 ] { \box_use:N \l__minimclass_xarrows_below_box }
+ ( \l__minimclass_xarrows_length_dim ,#6) ;
+ \draw (0,-#6) #5
+ node [ above = 3pt+#6 ] { \box_use:N \l__minimclass_xarrows_above_box }
+ ( \l__minimclass_xarrows_length_dim ,-#6) ;
+ }
+ }
+ }
+
+ \NewDocumentCommand \xrightrightarrows { O{} m }
+ {
+ \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+ }
+
+ \NewDocumentCommand \xleftleftarrows { O{} m }
+ {
+ \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+ }
+
\hook_gput_code:nnn { begindocument/end } { minimclass }
{
\RenewDocumentCommand \twoheadrightarrow {}
diff --git a/macros/unicodetex/latex/lebhart/README.md b/macros/unicodetex/latex/lebhart/README.md
index 8c6c5d027b..6ede054a38 100644
--- a/macros/unicodetex/latex/lebhart/README.md
+++ b/macros/unicodetex/latex/lebhart/README.md
@@ -2,7 +2,7 @@
# `lebhart` : write you articles in a colorful way
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **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).**
`lebhart` is a LaTeX class for typesetting articles, which has a colorful design.
diff --git a/macros/unicodetex/latex/lebhart/lebhart.cls b/macros/unicodetex/latex/lebhart/lebhart.cls
index ef57540e3d..1e4e760f70 100644
--- a/macros/unicodetex/latex/lebhart/lebhart.cls
+++ b/macros/unicodetex/latex/lebhart/lebhart.cls
@@ -18,7 +18,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{lebhart}
- {2023/01/05} {}
+ {2023/07/14} {}
{A colorful article style}
\tl_const:Nn \l__colorclass_base_class_tl { article }
@@ -103,6 +103,9 @@
, b5paper .bool_set:N = \l__colorclass_b_five_paper_bool
, b5paper .initial:n = { false }
+ , oneside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+ , twoside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
+
, 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
, 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__colorclass_base_class_tl } }
@@ -243,16 +246,26 @@
BoldItalicFont = *-BoldItalic,
Numbers = OldStyle ,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
Numbers = OldStyle ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % Numbers = OldStyle ,
+ % ]
}
{
\setmainfont { TeXGyrePagellaX }
@@ -263,15 +276,24 @@
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % ]
}
\setmonofont { NewCMMono10 }
[
@@ -624,6 +646,7 @@
\setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
% \setmathfont { KpMath-Regular.otf } [ range = {} ]
+ % https://tex.stackexchange.com/a/646715
\sys_if_engine_luatex:T
{
\mathitalicsmode=1
@@ -633,6 +656,11 @@
{
\cs_gset_eq:NN \overline \wideoverbar
\cs_gset_eq:NN \square \mdwhtsquare
+
+ % https://tex.stackexchange.com/a/678611
+ \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+ \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+ \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
}
% https://tex.stackexchange.com/a/647789
@@ -650,6 +678,22 @@
\endgroup
}
+ % https://tex.stackexchange.com/a/678998
+ \hook_gput_code:nnn { begindocument } { colorclass }
+ {
+ \NewCommandCopy\standarddashv\dashv
+ \NewCommandCopy\standardvdash\vdash
+ \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+ \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+ }
+ \newcommand{\raisesymbol}[2]{%
+ \begingroup
+ \sbox\z@{$\m@th#1A$}%
+ \sbox\tw@{$\m@th#1#2$}%
+ \raisebox{\dimexpr(\ht\z@-\ht\tw@)/2}{\usebox{\tw@}}%
+ \endgroup
+ }
+
\RequirePackage { tikz-cd }
\tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
@@ -710,6 +754,41 @@
{
\colorclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
}
+
+ \cs_new_protected:Nn \colorclass_xarrows_double_generic:nnnnnn
+ % #3 = option of \tikz
+ % #4 = edge 1 of \draw
+ % #5 = edge 2 of \draw
+ % #6 = sep/2
+ {
+ \hbox_set:Nn \l__colorclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+ \hbox_set:Nn \l__colorclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+ \dim_set:Nn \l__colorclass_xarrows_length_dim
+ { \dim_eval:n { \dim_max:nn { \box_wd:N \l__colorclass_xarrows_below_box } { \box_wd:N \l__colorclass_xarrows_above_box } + 1em } }
+ \mathrel
+ {
+ \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+ {
+ \draw (0,#6) #4
+ node [ below = 4pt+#6 ] { \box_use:N \l__colorclass_xarrows_below_box }
+ ( \l__colorclass_xarrows_length_dim ,#6) ;
+ \draw (0,-#6) #5
+ node [ above = 3pt+#6 ] { \box_use:N \l__colorclass_xarrows_above_box }
+ ( \l__colorclass_xarrows_length_dim ,-#6) ;
+ }
+ }
+ }
+
+ \NewDocumentCommand \xrightrightarrows { O{} m }
+ {
+ \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+ }
+
+ \NewDocumentCommand \xleftleftarrows { O{} m }
+ {
+ \colorclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+ }
+
\hook_gput_code:nnn { begindocument/end } { colorclass }
{
\RenewDocumentCommand \twoheadrightarrow {}
diff --git a/macros/unicodetex/latex/simplivre/README.md b/macros/unicodetex/latex/simplivre/README.md
index 99d73b7547..2b6b50b385 100644
--- a/macros/unicodetex/latex/simplivre/README.md
+++ b/macros/unicodetex/latex/simplivre/README.md
@@ -2,7 +2,7 @@
# `simplivre` : write you books in a simple and clear way
-> **New documentations are being written and are expected to be completed by the end of 2023. In the meantime, only the core code would be included in TeX Live 2023 coming this April (old documentations have been removed from the distribution).**
+> **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).**
`simplivre` is a LaTeX class for typesetting books, which has a simple and clear design.
diff --git a/macros/unicodetex/latex/simplivre/simplivre.cls b/macros/unicodetex/latex/simplivre/simplivre.cls
index b49f3d82e9..3ca9fbd1d1 100644
--- a/macros/unicodetex/latex/simplivre/simplivre.cls
+++ b/macros/unicodetex/latex/simplivre/simplivre.cls
@@ -18,7 +18,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplClass
{simplivre}
- {2023/01/05} {}
+ {2023/07/14} {}
{A simple and clear book style}
\tl_const:Nn \l__minimclass_base_class_tl { book }
@@ -110,6 +110,9 @@
, b5paper .bool_set:N = \l__minimclass_b_five_paper_bool
, b5paper .initial:n = { false }
+ , oneside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+ , twoside .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
+
, 11pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
, 12pt .code:n = { \PassOptionsToClass { \CurrentOption } { \l__minimclass_base_class_tl } }
@@ -264,16 +267,26 @@
BoldItalicFont = *-BoldItalic,
Numbers = OldStyle ,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
Numbers = OldStyle ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % Numbers = OldStyle ,
+ % ]
}
{
\setmainfont { TeXGyrePagellaX }
@@ -284,15 +297,24 @@
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic,
]
- \setsansfont { SourceSansPro }
+ \setsansfont { texgyreheros }
[
- Extension = .otf,
- UprightFont = *-Regular,
- BoldFont = *-Semibold,
- ItalicFont = *-RegularIt,
- BoldItalicFont = *-SemiboldIt,
- WordSpace = {1.25, 1, 1} ,
+ Extension = .otf ,
+ Scale = MatchUppercase ,
+ UprightFont = *-regular ,
+ BoldFont = *-bold ,
+ ItalicFont = *-italic ,
+ BoldItalicFont = *-bolditalic ,
]
+ % \setsansfont { SourceSansPro }
+ % [
+ % Extension = .otf,
+ % UprightFont = *-Regular,
+ % BoldFont = *-Semibold,
+ % ItalicFont = *-RegularIt,
+ % BoldItalicFont = *-SemiboldIt,
+ % WordSpace = {1.25, 1, 1} ,
+ % ]
}
\setmonofont { NewCMMono10 }
[
@@ -603,7 +625,7 @@
\CJKfamily { JPmain }
}
- \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
+ % \tl_gset:Nn \g_minimalist_title_font_common_tl { \minimclass_cjk_sffamily: }
}
\__minimclass_load_file_or_config:Nnn \l__minimclass_load_custom_font_file_math_bool { \l__minimclass_custom_font_file_math_str }
@@ -647,6 +669,7 @@
\setmathfont { KpMath-Regular.otf } [ range = { cal, bfcal }, RawFeature=+ss01 ]
% \setmathfont { KpMath-Regular.otf } [ range = {} ]
+ % https://tex.stackexchange.com/a/646715
\sys_if_engine_luatex:T
{
\mathitalicsmode=1
@@ -656,6 +679,11 @@
{
\cs_gset_eq:NN \overline \wideoverbar
\cs_gset_eq:NN \square \mdwhtsquare
+
+ % https://tex.stackexchange.com/a/678611
+ \newcommand{\limstrut}{\vrule depth0.2ex width 0pt}
+ \renewcommand{\varprojlim}{\mathop{\underleftarrow{{\lim}\limstrut}}}
+ \renewcommand{\varinjlim}{\mathop{\underrightarrow{{\lim}\limstrut}}}
}
% https://tex.stackexchange.com/a/647789
@@ -673,6 +701,22 @@
\endgroup
}
+ % https://tex.stackexchange.com/a/678998
+ \hook_gput_code:nnn { begindocument } { minimclass }
+ {
+ \NewCommandCopy\standarddashv\dashv
+ \NewCommandCopy\standardvdash\vdash
+ \RenewDocumentCommand{\dashv}{}{\mathrel{\mathpalette\raisesymbol\standarddashv}}
+ \RenewDocumentCommand{\vdash}{}{\mathrel{\mathpalette\raisesymbol\standardvdash}}
+ }
+ \newcommand{\raisesymbol}[2]{%
+ \begingroup
+ \sbox\z@{$\m@th#1A$}%
+ \sbox\tw@{$\m@th#1#2$}%
+ \raisebox{\dimexpr(\ht\z@-\ht\tw@)/2}{\usebox{\tw@}}%
+ \endgroup
+ }
+
\RequirePackage { tikz-cd }
\tikzcdset { arrow~style = tikz, diagrams = { >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} } }
@@ -733,6 +777,41 @@
{
\minimclass_xarrows_generic:nnnn { #1 } { #2 } {} { edge [ commutative~diagrams/twoheadleftarrow ] }
}
+
+ \cs_new_protected:Nn \minimclass_xarrows_double_generic:nnnnnn
+ % #3 = option of \tikz
+ % #4 = edge 1 of \draw
+ % #5 = edge 2 of \draw
+ % #6 = sep/2
+ {
+ \hbox_set:Nn \l__minimclass_xarrows_below_box { \ensuremath { \scriptstyle #1 } }
+ \hbox_set:Nn \l__minimclass_xarrows_above_box { \ensuremath { \scriptstyle #2 } }
+ \dim_set:Nn \l__minimclass_xarrows_length_dim
+ { \dim_eval:n { \dim_max:nn { \box_wd:N \l__minimclass_xarrows_below_box } { \box_wd:N \l__minimclass_xarrows_above_box } + 1em } }
+ \mathrel
+ {
+ \tikz [ #3, line~width = .6pt, baseline = -.5ex, every~node/.style = { inner~sep = 0pt }, >={Stealth[round,length=3.4pt,width=6.15pt,inset=2.25pt]} ]
+ {
+ \draw (0,#6) #4
+ node [ below = 4pt+#6 ] { \box_use:N \l__minimclass_xarrows_below_box }
+ ( \l__minimclass_xarrows_length_dim ,#6) ;
+ \draw (0,-#6) #5
+ node [ above = 3pt+#6 ] { \box_use:N \l__minimclass_xarrows_above_box }
+ ( \l__minimclass_xarrows_length_dim ,-#6) ;
+ }
+ }
+ }
+
+ \NewDocumentCommand \xrightrightarrows { O{} m }
+ {
+ \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/rightarrow ] } { edge [ commutative~diagrams/rightarrow ] } { .2em }
+ }
+
+ \NewDocumentCommand \xleftleftarrows { O{} m }
+ {
+ \minimclass_xarrows_double_generic:nnnnnn { #1 } { #2 } {} { edge [ commutative~diagrams/leftarrow ] } { edge [ commutative~diagrams/leftarrow ] } { .2em }
+ }
+
\hook_gput_code:nnn { begindocument/end } { minimclass }
{
\RenewDocumentCommand \twoheadrightarrow {}