blob: 010c83ec2aa7d11dbca1dda6cf5469f769af9df4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
%%
%% file: ob-mathleading.sty
%%
%% written by nova
%%
%% a supplementary package to oblivoir
%% set lineskips in multi-lined math environments
%% (amsmath required)
%%
%% v. 0.1alpha : 2018/12/22
%% v. 0.0.1-pr2 : 2018/12/24
%% v. 0.0.1 : 2018/12/25
%%
\RequirePackage{expl3}
\ProvidesExplPackage
{ob-mathleading}
{2018/12/25}
{v0.0.1}
{adjust math leadings for oblivoir}
\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
\RequirePackage{xparse}
\RequirePackage{etoolbox}
\RequirePackage{l3keys2e}
\keys_define:nn { obmathleading }
{
default .bool_set:N = \l_defaultopt_bool,
mathleading .fp_set:N = \l_opt_mathleading_fp,
exception .clist_set:N = \g_opt_mlexception_clist,
noallowdisplaybreaks .bool_set:N = \g_noallowdispbreak_bool
}
\keys_set:nn { obmathleading }
{
default = true,
mathleading = 1.0,
exception = {},
noallowdisplaybreaks = false
}
\ProcessKeysOptions { obmathleading }
\scan_stop:
\bool_if:NTF \l_defaultopt_bool
{
\tl_set:Nn \l_obml_stretch_tl { \fp_use:N \l_opt_mathleading_fp }
}
{
\tl_set:No \l_obml_stretch_tl { \baselinestretch }
}
\NewDocumentCommand \obmathleading { m }
{
\tl_set:Nn \l_obml_stretch_tl { #1 }
}
\NewDocumentEnvironment { obMathLeading } { O{1.0} }
{
\obmathleading { #1 }
}
{
}
\cs_new:Npn \mathleading_set_default:nN #1 #2
{
\clist_if_in:NnF \g_opt_mlexception_clist { #1 }
{
\AtBeginEnvironment { #1 }
{
\linespread { #2 } \selectfont \ignorespaces
}
}
}
\cs_new:Npn \splitleading_set_default:N #1
{
\clist_if_in:NnF \g_opt_mlexception_clist { split }
{
\patchcmd \start@split
{ \spread@equation }
{ \linespread { #1 } \selectfont \spread@equation }
{ }
{ }
}
}
\mathleading_set_default:nN { array } \l_obml_stretch_tl
\mathleading_set_default:nN { matrix } \l_obml_stretch_tl
\mathleading_set_default:nN { matrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { pmatrix } \l_obml_stretch_tl
\mathleading_set_default:nN { pmatrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { bmatrix } \l_obml_stretch_tl
\mathleading_set_default:nN { bmatrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { Bmatrix } \l_obml_stretch_tl
\mathleading_set_default:nN { Bmatrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { vmatrix } \l_obml_stretch_tl
\mathleading_set_default:nN { vmatrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { Vmatrix } \l_obml_stretch_tl
\mathleading_set_default:nN { Vmatrix* } \l_obml_stretch_tl
\mathleading_set_default:nN { cases } \l_obml_stretch_tl
\mathleading_set_default:nN { cases* } \l_obml_stretch_tl
\mathleading_set_default:nN { aligned } \l_obml_stretch_tl
\mathleading_set_default:nN { alignedat } \l_obml_stretch_tl
\mathleading_set_default:nN { gathered } \l_obml_stretch_tl
\splitleading_set_default:N \l_obml_stretch_tl
\clist_if_in:NnF \g_opt_mlexception_clist { gather }
{
\patchcmd \start@gather
{ \collect@body }
{ \linespread { \l_obml_stretch_tl } \selectfont \collect@body }
{ }
{ }
}
\clist_if_in:NnF \g_opt_mlexception_clist { align }
{
\patchcmd \start@align
{ \collect@body }
{ \linespread { \l_obml_stretch_tl } \selectfont \collect@body }
{ }
{ }
}
\clist_if_in:NnF \g_opt_mlexception_clist { multline }
{
\patchcmd \start@multline
{ \collect@body }
{ \linespread { \l_obml_stretch_tl } \selectfont \collect@body }
{ }
{ }
}
\bool_if:NF \g_noallowdispbreak_bool
{
\AtBeginDocument { \allowdisplaybreaks }
}
%% end of file
|