Skip to content

Commit 3b03a93

Browse files
committed
feat: add ragged2e
1 parent 52466ad commit 3b03a93

File tree

1 file changed

+321
-0
lines changed

1 file changed

+321
-0
lines changed

typeset/macro/ragged2e.sty

Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
1+
%%
2+
%% This is file `ragged2e.sty',
3+
%% generated with the docstrip utility.
4+
%%
5+
%% The original source files were:
6+
%%
7+
%% ragged2e.dtx (with options: `package')
8+
%% Copyright (C) 1996–2019 Martin Schröder, 2021–2023 Marei Peischl (peiTeX) <[email protected]>
9+
%%
10+
%% This work may be distributed and/or modified under the
11+
%% conditions of the LaTeX Project Public License, either version 1.3c
12+
%% of this license or (at your option) any later version.
13+
%% The latest version of this license is in
14+
%% http://www.latex-project.org/lppl.txt
15+
%% and version 1.3c or later is part of all distributions of LaTeX
16+
%% version 2005/12/01 or later.
17+
%%
18+
%% This work has the LPPL maintenance status `maintained'.
19+
%%
20+
%% The Current Maintainer of this work is
21+
%% Marei Peischl <[email protected]>.
22+
%%
23+
%% This work consists of the files ragged2e.dtx and ragged2e.ins
24+
%% and the derived file ragged2e.sty.
25+
%%
26+
%% \iffalse meta-comment
27+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
28+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
29+
\NeedsTeXFormat{LaTeX2e}[2021/06/01]
30+
\ProvidesPackage{ragged2e}
31+
[2023/06/22 v3.6 ragged2e Package]
32+
%% \CharacterTable
33+
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
34+
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
35+
%% Digits \0\1\2\3\4\5\6\7\8\9
36+
%% Exclamation \! Double quote \" Hash (number) \#
37+
%% Dollar \$ Percent \% Ampersand \&
38+
%% Acute accent \' Left paren \( Right paren \)
39+
%% Asterisk \* Plus \+ Comma \,
40+
%% Minus \- Point \. Solidus \/
41+
%% Colon \: Semicolon \; Less than \<
42+
%% Equals \= Greater than \> Question mark \?
43+
%% Commercial at \@ Left bracket \[ Backslash \\
44+
%% Right bracket \] Circumflex \^ Underscore \_
45+
%% Grave accent \` Left brace \{ Vertical bar \|
46+
%% Right brace \} Tilde \~}
47+
%%
48+
\newif\if@raggedtwoe@originalcommands
49+
\newif\if@raggedtwoe@originalparameters
50+
\newif\if@raggedtwoe@footmisc
51+
\DeclareOption{OriginalCommands}{\@raggedtwoe@originalcommandstrue}
52+
\DeclareOption{originalcommands}{\@raggedtwoe@originalcommandstrue}
53+
\DeclareOption{NewCommands}{\@raggedtwoe@originalcommandsfalse}
54+
\DeclareOption{newcommands}{\@raggedtwoe@originalcommandsfalse}
55+
\DeclareOption{OriginalParameters}{\@raggedtwoe@originalparameterstrue}
56+
\DeclareOption{originalparameters}{\@raggedtwoe@originalparameterstrue}
57+
\DeclareOption{NewParameters}{\@raggedtwoe@originalparametersfalse}
58+
\DeclareOption{newparameters}{\@raggedtwoe@originalparametersfalse}
59+
\newcommand*{\@raggedtwoe@raggedrightboxes@opt}{
60+
\CheckCommand*{\@arrayparboxrestore}{%
61+
\let\if@nobreak\iffalse
62+
\let\if@noskipsec\iffalse
63+
\let\par\@@par
64+
\let\-\@dischyph
65+
\let\'\@acci\let\`\@accii\let\=\@acciii
66+
\parindent\z@ \parskip\z@skip
67+
\everypar{}%
68+
\linewidth\hsize
69+
\@totalleftmargin\z@
70+
\leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
71+
\parfillskip\@flushglue
72+
\lineskip\normallineskip
73+
\lineskiplimit\normallineskiplimit
74+
\baselineskip\normalbaselineskip
75+
\sloppy}%
76+
\renewcommand{\@arrayparboxrestore}{%
77+
\let\if@nobreak\iffalse
78+
\let\if@noskipsec\iffalse
79+
\let\par\@@par
80+
\let\-\@dischyph
81+
\let\'\@acci\let\`\@accii\let\=\@acciii
82+
\parskip\z@skip
83+
\everypar{}%
84+
\linewidth\hsize
85+
\@totalleftmargin\z@
86+
\RaggedRight
87+
\lineskip\normallineskip
88+
\baselineskip\normalbaselineskip
89+
\lineskiplimit\normallineskiplimit
90+
\sloppy}%
91+
\let\@raggedtwoe@raggedrightboxes@opt\relax
92+
}
93+
\DeclareOption{raggedrightboxes}{\@raggedtwoe@raggedrightboxes@opt}
94+
\DeclareOption{footnotes}{%
95+
\@raggedtwoe@footmisctrue
96+
\PassOptionsToPackage{ragged}{footmisc}%
97+
}
98+
\newcommand{\@raggedtwoe@abdhook}{%
99+
\PackageInfo{ragged2e}{ABD: executing \string\RaggedRight}%
100+
\RaggedRight
101+
\@ifundefined{@tocrmarg}{}{\edef\@tocrmarg{\@tocrmarg plus 2em}}%
102+
\let\@raggedtwoe@abdhook\relax
103+
}
104+
\newcommand{\@raggedtwoe@document@opt}{%
105+
\AtBeginDocument{\@raggedtwoe@abdhook}%
106+
\@raggedtwoe@raggedrightboxes@opt
107+
\@raggedtwoe@footmisctrue
108+
\let\@raggedtwoe@document@opt\relax
109+
}
110+
\DeclareOption{document}{\@raggedtwoe@document@opt}
111+
\DeclareOption*{%
112+
\if@raggedtwoe@footmisc
113+
\PassOptionsToPackage{\CurrentOption}{footmisc}%
114+
\else
115+
\OptionNotUsed
116+
\fi
117+
}
118+
%% ^^A -----------------------------
119+
\ExecuteOptions{originalcommands,newparameters}
120+
\ProcessOptions\relax
121+
\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion}
122+
\IfFormatAtLeastTF{2021/01/05}{}{\RequirePackage{everysel}}
123+
\if@raggedtwoe@footmisc
124+
\RequirePackage{footmisc}[2002/08/28]
125+
\fi
126+
\newlength{\CenteringLeftskip}
127+
\newlength{\RaggedLeftLeftskip}
128+
\newlength{\RaggedRightLeftskip}
129+
\newlength{\CenteringRightskip}
130+
\newlength{\RaggedLeftRightskip}
131+
\newlength{\RaggedRightRightskip}
132+
\newlength{\CenteringParfillskip}
133+
\newlength{\RaggedLeftParfillskip}
134+
\newlength{\RaggedRightParfillskip}
135+
\newlength{\JustifyingParfillskip}
136+
\newlength{\CenteringParindent}
137+
\newlength{\RaggedLeftParindent}
138+
\newlength{\RaggedRightParindent}
139+
\newlength{\JustifyingParindent}
140+
\if@raggedtwoe@originalparameters
141+
\CenteringLeftskip\@flushglue
142+
\RaggedLeftLeftskip\@flushglue
143+
\RaggedRightLeftskip\z@skip
144+
\CenteringRightskip\@flushglue
145+
\RaggedLeftRightskip\z@skip
146+
\RaggedRightRightskip\@flushglue
147+
\CenteringParfillskip\z@skip
148+
\RaggedLeftParfillskip\z@skip
149+
\RaggedRightParfillskip\@flushglue
150+
\CenteringParindent\z@
151+
\RaggedLeftParindent\z@
152+
\RaggedRightParindent\z@
153+
\else
154+
\CenteringLeftskip\z@\@plus\tw@ em
155+
\RaggedLeftLeftskip\z@\@plus\tw@ em
156+
\RaggedRightLeftskip\z@skip
157+
\CenteringRightskip\z@\@plus\tw@ em
158+
\RaggedLeftRightskip\z@skip
159+
\RaggedRightRightskip\z@\@plus\tw@ em
160+
\CenteringParfillskip\z@skip
161+
\RaggedLeftParfillskip\z@skip
162+
\RaggedRightParfillskip\@flushglue
163+
\CenteringParindent\z@
164+
\RaggedLeftParindent\z@
165+
\RaggedRightParindent\z@
166+
\fi
167+
\JustifyingParfillskip\@flushglue
168+
\JustifyingParindent\parindent
169+
\newif\if@raggedtwoe@spaceskip
170+
\newcommand{\@raggedtwoe@everyselectfont@active}{%
171+
\if@raggedtwoe@spaceskip
172+
\ifdim\fontdimen\thr@@\font=\z@\relax
173+
\spaceskip\z@
174+
\else
175+
\spaceskip\fontdimen\tw@\font
176+
\fi
177+
\else
178+
\spaceskip\z@
179+
\fi
180+
}
181+
\newif\if@raggedtwoe@localhook
182+
\IfFormatAtLeastTF{2021/01/05}
183+
{\@raggedtwoe@localhooktrue}
184+
{\EverySelectfont{\@raggedtwoe@everyselectfont}}
185+
\let\@raggedtwoe@everyselectfont\relax
186+
\if@raggedtwoe@localhook
187+
\AddToHook{selectfont}[ragged2e]{\@raggedtwoe@everyselectfont}%
188+
\fi
189+
\let\@raggedtwoe@savedcr\\
190+
\let\@raggedtwoe@saved@gnewline\@gnewline
191+
\def\@raggedtwoe@centercrNoindent{%
192+
\AddToHookNext{para/begin}{%
193+
\ifx\@raggedtwoe@everyselectfont\relax\else
194+
\OmitIndent
195+
\fi
196+
}%
197+
\@centercr%
198+
}
199+
\newcommand*{\@raggedtwoe@gnewline}[1]{%
200+
\ifvmode
201+
\@nolnerr
202+
\else
203+
\unskip
204+
\ifmmode
205+
\reserved@e {\reserved@f #1}\nobreak \hskip\z@ \break
206+
\else
207+
\reserved@e {\reserved@f #1}%
208+
\@raggedtwoe@centercrNoindent
209+
\fi
210+
\fi
211+
}
212+
\DeclareRobustCommand{\Centering}{%
213+
\if@raggedtwoe@localhook
214+
\let\@raggedtwoe@everyselectfont\@raggedtwoe@everyselectfont@active%
215+
\fi
216+
\ifx\\\@raggedtwoe@savedcr
217+
\let\\\@raggedtwoe@centercrNoindent
218+
\fi
219+
\let\@gnewline\@raggedtwoe@gnewline
220+
\leftskip\CenteringLeftskip
221+
\@rightskip\CenteringRightskip
222+
\rightskip\@rightskip
223+
\parfillskip\CenteringParfillskip
224+
\parindent\CenteringParindent
225+
\@raggedtwoe@spaceskiptrue
226+
\@raggedtwoe@everyselectfont
227+
}
228+
\DeclareRobustCommand{\RaggedLeft}{%
229+
\if@raggedtwoe@localhook
230+
\let\@raggedtwoe@everyselectfont\@raggedtwoe@everyselectfont@active%
231+
\fi
232+
\ifx\\\@raggedtwoe@savedcr
233+
\let\\\@raggedtwoe@centercrNoindent
234+
\fi
235+
\let\@gnewline\@raggedtwoe@gnewline
236+
\leftskip\RaggedLeftLeftskip
237+
\@rightskip\RaggedLeftRightskip
238+
\rightskip\@rightskip
239+
\parfillskip\RaggedLeftParfillskip
240+
\parindent\RaggedLeftParindent
241+
\@raggedtwoe@spaceskiptrue
242+
\@raggedtwoe@everyselectfont
243+
}
244+
\DeclareRobustCommand{\RaggedRight}{%
245+
\if@raggedtwoe@localhook
246+
\let\@raggedtwoe@everyselectfont\@raggedtwoe@everyselectfont@active%
247+
\fi
248+
\ifx\\\@raggedtwoe@savedcr
249+
\let\\\@raggedtwoe@centercrNoindent
250+
\fi
251+
\let\@gnewline\@raggedtwoe@gnewline
252+
\leftskip\RaggedRightLeftskip
253+
\@rightskip\RaggedRightRightskip
254+
\rightskip\@rightskip
255+
\parfillskip\RaggedRightParfillskip
256+
\parindent\RaggedRightParindent
257+
\@raggedtwoe@spaceskiptrue
258+
\@raggedtwoe@everyselectfont
259+
}
260+
\DeclareRobustCommand{\justifying}{%
261+
\if@raggedtwoe@localhook
262+
\let\@raggedtwoe@everyselectfont\@raggedtwoe@everyselectfont@active%
263+
\fi
264+
\let\\\@raggedtwoe@savedcr
265+
\let\@gnewline\@raggedtwoe@saved@gnewline
266+
\leftskip\z@
267+
\@rightskip\z@
268+
\rightskip\@rightskip
269+
\parfillskip\JustifyingParfillskip
270+
\parindent\JustifyingParindent
271+
\@raggedtwoe@spaceskipfalse
272+
\@raggedtwoe@everyselectfont
273+
}
274+
\newenvironment{Center}{%
275+
\trivlist
276+
\Centering\item\relax
277+
}{%
278+
\endtrivlist
279+
}
280+
\newenvironment{FlushLeft}{%
281+
\trivlist
282+
\RaggedRight\item\relax
283+
}{%
284+
\endtrivlist
285+
}
286+
\newenvironment{FlushRight}{%
287+
\trivlist
288+
\RaggedLeft\item\relax
289+
}{%
290+
\endtrivlist
291+
}
292+
\newenvironment{justify}{%
293+
\trivlist
294+
\justifying\item\relax
295+
}{%
296+
\endtrivlist
297+
}
298+
\if@raggedtwoe@originalcommands
299+
\else
300+
\let\LaTeXcentering\centering
301+
\let\LaTeXraggedleft\raggedleft
302+
\let\LaTeXraggedright\raggedright
303+
\let\centering\Centering
304+
\let\raggedleft\RaggedLeft
305+
\let\raggedright\RaggedRight
306+
\let\LaTeXcenter\center
307+
\let\endLaTeXcenter\endcenter
308+
\let\LaTeXflushleft\flushleft
309+
\let\endLaTeXflushleft\endflushleft
310+
\let\LaTeXflushright\flushright
311+
\let\endLaTeXflushright\endflushright
312+
\let\center\Center
313+
\let\endcenter\endCenter
314+
\let\flushleft\FlushLeft
315+
\let\endflushleft\endFlushLeft
316+
\let\flushright\FlushRight
317+
\let\endflushright\endFlushRight
318+
\fi
319+
\endinput
320+
%%
321+
%% End of file `ragged2e.sty'.

0 commit comments

Comments
 (0)