The Ragged2e-package^{∗}

Martin Schröder

Crüsemannallee 3 D-28213 Bremen

Martin.Schroeder@ACM.org

PGP-Key:  2048 bit / KeyID 292814E5
7E86 6EC8 97FA 2995  82C3 FEA5 2719 090E

1999/06/08

Abstract

This package provides new commands and environments for setting ragged text which are easy to configure to allow hyphenation. An earlier attempt to do this was the style raggedright[6] by the same author.

Contents

1 The problem 1

2 Old “solutions” 2 2.1 L^{A}TEX . . . . . . . 2 2.2 plain . . . . . . . 2

3 Our solution 3

3.1 Usage . . . . . . . 3 3.1.1 The macros 3 3.1.2 The para-

meters … 3 3.1.3 The envi-

ronments . 5

4 Options 5

5 Required packages 6

6 The implementation 6 6.1 Initial Code …. 6 6.2 Declaration of op-

tions . . . . . . . . 6 6.2.1 OriginalCommands

option … 6 6.2.2 OriginalParameters

option … 7

6.3 Executing options 7 6.4 Loading packages . 7 6.5 Allocations …. 7 6.6 Initializations … 7 6.7 Setting the

    \spaceskip and
    \xspaceskip . . . 8

6.8 The commands . . 9 6.9 The environments 10 6.10 Overloading the

L^{A}TEX-commands . 11

7 Acknowledgements 11

1 The problem

L^{A}TEX has three commands

(\centering, \raggedleft,

and \raggedright) and three

environments (center, flushleft, and flushright) to typeset ragged text. The environments

∗The version number of this file is v1.02, last revised 1999/06/08.

2 OLD “SOLUTIONS” 2

are based upon the commands (center uses \centering, flushleft \raggedright, and flushright

\raggedleft).

These commands have, however, one serious flaw: they render hyphenation almost impossible, and thus the text looks too ragged, as the following example shows:

\raggedright:

“The L^{A}TEX document preparation system is a special version of Donald Knuth’s TEX program. TEX is a sophisticated program designed to produce high-quality typesetting, especially for mathematical text.” [3, p. xiii]

\RaggedRight:

“The L^{A}TEX document preparation system is a special version of Donald Knuth’s TEX program. TEX is a sophisticated program designed to produce highquality typesetting, especially for mathematical text.” [3, p. xiii]

2 Old “solutions”

2.1 L^{A}TEX

L^{A}TEX defines e. g. \raggedright as follows:

1 ⟨∗latex⟩

2 \def\raggedright{%
3 \let\\=\@centercr
4 \@rightskip\@flushglue
5 \rightskip\@rightskip
6 \leftskip\z@
7 \parindent\z@}

Initially, \@flushglue is defined as

8 \@flushglue = 0pt plus 1fil

9 ⟨/latex⟩

Thus the \rightskip is set to 0pt plus 1fil. Knuth, however warns [2, p. 101]:

“For example, a per-

son can set \rightskip=0pt

plus 1fil, and every line will be filled with space to the right. But this isn’t a particularly good way to make ragged-right margins, because the infinte stretchability will assign zero badness to lines that are very short. To do a decent job of raggedright setting, the trick

is to set \rightskip

so that it will stretch enough to make line breaks possible, yet not too much, because short lines should be considered bad. Furthermore the spaces between words should be fixed so that they do not stretch or shrink.”

2.2 plain

plain TEX defines an special version of \raggedright, which operates the way Knuth describes it; but which can not be used whith L^{A}TEX, because L^{A}TEX

redefines \raggedright.

10 ⟨∗plain⟩

11 \def\raggedright{%
12 \rightskip\z@ plus2em
13 \spaceskip.3333em
14 \xspaceskip.5em\relax}

plain provides also a version of \raggedright for typewriter fonts

15 \def\ttraggedright{%
16 \tt
17 \rightskip\z@ plus2em\relax}

18 ⟨/plain⟩

3 Our solution

3.1 Usage

Since the plain solution can not be used with L^{A}TEX, we have to redefine it and make it possible to configure it for personal preferences.

3.1.1 The macros

\Centering  \Centering, \RaggedLeft, and \RaggedRight can be used in the
\RaggedLeft
\RaggedRight

same way as \centering, \raggedleft, and \raggedright: Just

type the command, and after that the whole text will be set centered, ragged-left or ragged-right. For example, we switched on \RaggedRight on the top of this text, and consequently this text was set ragged-right. The new commands are fully compatible with their counterparts in L^{A}TEX, but implement the plain solution and can be easily configured using the following parameters:

3.1.2 The parameters

Command  Uses

 \Centering    \CenteringLeftSkip, \CenteringRightSkip,
               \CenteringParfillskip,
               \CenteringParIndent
 \RaggedLeft   \RaggedLeftLeftskip,
               \RaggedLeftRightskip,
               \RaggedLeftParfillskip,
               \RaggedLeftParIndent
 \RaggedRight  \RaggedRightLeftskip,
               \RaggedRightRightskip,
               \RaggedRightParfillskip,
               \RaggedRightParIndent

 all  \RaggedSpaceskip, \RaggedXSpaceskip

All Parameters can be set with \setlength, e. g.

     \setlength{RaggedRightRightskip}{0pt plus 1em}
sets \RaggedRightRightskip to 0pt plus 1em.
\CenteringLeftskip These are the \leftskips inserted by \Centering, \RaggedLeft,
\RaggedLeftLeftskip
\RaggedRightLeftskip

and \RaggedRight.

“\leftskip (glue at left of justified lines)” [2, p. 274]

\leftskip must be set to a finite value, to make hyphenation possible. Setting it to infinite values like 0pt plus 1fil makes hyphenation almost impossible.

\CenteringRightskip These are the \rightskips inserted by \Centering, \RaggedLeft,
\RaggedLeftRightskip
\RaggedRightRightskip

and \RaggedRight.

“\rightskip (glue at right of justified lines)” [2, p. 274]

\rightskip must be set to a finite value, to make hyphenation possible. Setting it to infinite values like 0pt plus 1fil makes hyphenation almost impossible.

\CenteringParfillskip These are the \parfillskips inserted by \Centering, \RaggedLeft,
\RaggedLeftParfillskip
\RaggedRightParfillskip

and \RaggedRight.

“\parfillskip (additional \rightskip at end of paragraphs)” [2, p. 274]

The normal setting for \parfillskip is 0pt plus 1fil; the parameters are provided for testing combinations of \{left|right}skip

and \parfillskip.
\CenteringParindent These are the \parindents used by \Centering, \RaggedLeft, and
\RaggedLeftParindent
\RaggedRightParindent

\RaggedRight.

“\parindent (width of \indent)” [2, p. 274]

\parindent is the indent of the first line of a paragraph and should be set to 0pt, since indented lines in ragged text do not look good.

\RaggedSpaceskip  \RaggedSpaceskip is the \spaceskip used by \Centering,
\RaggedLeft, and \RaggedRight.

“\spaceskip (glue between words, if nonzero)” [2, p. 274]

If \spaceskip is nonzero, the \spaceskip glue is used for an interword space. The plain solution sets \spaceskip to .3333em so that the spaces between words are fixed. This can only be used with proportional fonts, since with monospaced fonts like cmtt the \spaceskip should be set to the width of a space ‘ ’, which is e. g. .5em in cmtt. So plain provides the command \ttraggedright for monospaced fonts which doesn’t set \spaceskip.

To solve this problem we use the package eversel to distinguish between monospaced and proportional fonts. If the current font is monospaced (\fontdimen3 = 0pt) we set \spaceskip to the interword space defined by the font (\fontdimen2); otherwise we

use \RaggedSpaceskip.^{1}
\RaggedXSpaceskip  \RaggedXSpaceskip is the \xspaceskip used by \Center,
\RaggedLeft, and \RaggedRight.

“\xspaceskip (glue between sentences, if nonzero)” [2, p. 274]

1This will not allow hyphenation of typewriter fonts; L^{A}TEX disables this by setting \hyphenchar to -1 for the \ttfamily[4].

\xspaceskip is the glue between sentences (after elements with a space factor ≥ 2000), if nonzero. Here we also have to distinguish between monospaced and proportional fonts using everysel.

The parameters have the following initial setting:

Parameter L^{A}TEX setting Ragged2e setting

\CenteringLeftskip       0pt plus 1fil   0pt plus 2em
\RaggedLeftLeftskip      0pt plus 1fil   0pt plus 2em

\RaggedRightLeftskip     0pt plus 0pt
                         minus 0pt

                                         0pt plus 0pt
                                         minus 0pt

\CenteringRightskip      0pt plus 1fil   0pt plus 2em

\RaggedLeftRightskip     0pt plus 0pt
                         minus 0pt

                                         0pt plus 0pt
                                         minus 0pt

\RaggedRightRightskip    0pt plus 1fil   0pt plus 2em

\CenteringParfillskip    0pt plus 0pt
                         minus 0pt

                                         0pt plus 0pt
                                         minus 0pt
\RaggedLeftParfillskip   0pt plus 0pt
                         minus 0pt

                                         0pt plus 0pt
                                         minus 0pt

\RaggedRightParfillskip  0pt plus 1fil   0pt plus 1fil
\CenteringParindent      0pt             0pt
\RaggedLeftParindent     0pt             0pt
\RaggedRightParindent    0pt             0pt

\RaggedSpaceskip

                         0pt

                                         0.3333em/
                                         \fontdimen2^{2}

\RaggedXSpaceskip        0pt             .5em/0pt^{2}

3.1.3 The environments

Center Center is fully compatible with center, but uses \Centering instead

of \centering.

FlushLeft FlushLeft is fully compatible with flushleft, but uses

\RaggedRight instead of \raggedright.
FlushRight  FlushRight is fully compatible with flushright, but uses
\RaggedLeft instead of \raggedleft.

E. g. FlushLeft can be used in the same way as flushleft:

    \begin{FlushLeft}

⟨text, which is set ragged-right⟩

    \end{FlushLeft}

4 Options

This package has the following options:

2For proportional and monospaced fonts.

OriginalCommands The L^{A}TEX-commands \centering, \raggedleft, and \raggedright and the L^{A}TEX-environments center, flushleft, and flushright remain unchanged. It is the default.

NewCommands The L^{A}TEX-commands \centering, \raggedleft, and \raggedright and the L^{A}TEX-environments center, flushleft, and flushright are set equal to their counterparts defined

by ragged2e. Thus \raggedright invokes \RaggedRight.

The original commands can be accessed unter the Names

\LaTeX⟨original name⟩, e. g. \LaTeXraggedright.

OriginalParameters The parameters used by the commands implemented by ragged2e are initialized with the default settings used by L^{A}TEX.

NewParameters The parameters used by the commands implemented by ragged2e are initialized with the default settings defined by ragged2e. It is the default.

5 Required packages

This package requires the following package:

everysel[5] It is used to distinguish between monospaced and proportional fonts.

6 The implementation

19 ⟨∗package⟩

6.1 Initial Code

\if@raggedtwoe@originalcommands  \if@raggedtwoe@originalcommands is used to flag the use of the

OriginalCommands or NewCommands option.

20 \newif\if@raggedtwoe@originalcommands
\if@raggedtwoe@originalparameters  \if@raggedtwoe@originalparameters is used to flag the use of the

OriginalParameters or NewParameters option.

21 \newif\if@raggedtwoe@originalparameters

6.2 Declaration of options

6.2.1 OriginalCommands option

6 THE IMPLEMENTATION 7

The OriginalCommands and NewCommands options control the meaning of the L^{A}TEX-commands for ragged text: If NewCommands is used the L^{A}TEX-commands are set equal to the commands defined by ragged2e.

22 \DeclareOption{OriginalCommands}{\@raggedtwoe@originalcommandstrue}
23 \DeclareOption{NewCommands}{\@raggedtwoe@originalcommandsfalse}

6.2.2 OriginalParameters option

The OriginalParameters and NewParameters options control the defaults for the parameters used by the commands implemented by ragged2e: If NewParameters is used the parameters are set to the values defined by ragged2e.

24 \DeclareOption{OriginalParameters}{\@raggedtwoe@originalparameterstrue}
25 \DeclareOption{NewParameters}{\@raggedtwoe@originalparametersfalse}

6.3 Executing options

The default options are OriginalCommands and NewParameters.

26 \ExecuteOptions{OriginalCommands,NewParameters}
27 \ProcessOptions\relax

6.4 Loading packages

We need the everysel package.

28 \RequirePackage{everysel}

6.5 Allocations

\CenteringLeftskip \RaggedLeftLeftskip \RaggedRightLeftskip \CenteringRightskip \RaggedLeftRightskip \RaggedRightRightskip \CenteringParfillskip \RaggedLeftParfillskip \RaggedRightParfillskip \CenteringParindent \RaggedLeftParindent \RaggedRightParindent \RaggedSpaceskip \RaggedXSpaceskip First we allocate the parameters
29 \newlength{\CenteringLeftskip}
30 \newlength{\RaggedLeftLeftskip}
31 \newlength{\RaggedRightLeftskip}
32 \newlength{\CenteringRightskip}
33 \newlength{\RaggedLeftRightskip}
34 \newlength{\RaggedRightRightskip}
35 \newlength{\CenteringParfillskip}
36 \newlength{\RaggedLeftParfillskip}
37 \newlength{\RaggedRightParfillskip}
38 \newlength{\CenteringParindent}
39 \newlength{\RaggedLeftParindent}
40 \newlength{\RaggedRightParindent}
41 \newlength{\RaggedSpaceskip}
42 \newlength{\RaggedXSpaceskip}

6.6 Initializations

Depending on \if@raggedtwoe@originalparameters we initialize

the parameters with the values L^{A}TEX uses for its own commands or with our new parameters.

43 \if@raggedtwoe@originalparameters
44 \setlength{\CenteringLeftskip}      {\z@ plus \@ne fil}
45 \setlength{\RaggedLeftLeftskip}     {\z@ plus \@ne fil}
46 \setlength{\RaggedRightLeftskip}    {\z@skip}
47 \setlength{\CenteringRightskip}     {\z@ plus \@ne fil}
48 \setlength{\RaggedLeftRightskip}    {\z@skip}
49 \setlength{\RaggedRightRightskip}   {\z@ plus \@ne fil}
50 \setlength{\CenteringParfillskip}   {\z@skip}
51 \setlength{\RaggedLeftParfillskip}  {\z@skip}
52 \setlength{\RaggedRightParfillskip} {\z@ plus \@ne fil}
53 \setlength{\CenteringParindent}     {\z@}
54 \setlength{\RaggedLeftParindent}    {\z@}
55 \setlength{\RaggedRightParindent}   {\z@}
56 \setlength{\RaggedSpaceskip}        {\z@}
57 \setlength{\RaggedXSpaceskip}       {\z@}
58 \else
59 \setlength{\CenteringLeftskip}      {\z@ plus \tw@ em}
60 \setlength{\RaggedLeftLeftskip}     {\z@ plus \tw@ em}
61 \setlength{\RaggedRightLeftskip}    {\z@skip}
62 \setlength{\CenteringRightskip}     {\z@ plus \tw@ em}
63 \setlength{\RaggedLeftRightskip}    {\z@skip}
64 \setlength{\RaggedRightRightskip}   {\z@ plus \tw@ em}
65 \setlength{\CenteringParfillskip}   {\z@skip}
66 \setlength{\RaggedLeftParfillskip}  {\z@skip}
67 \setlength{\RaggedRightParfillskip} {\z@ plus \@ne fil}
68 \setlength{\CenteringParindent}     {\z@}
69 \setlength{\RaggedLeftParindent}    {\z@}
70 \setlength{\RaggedRightParindent}   {\z@}
71 \setlength{\RaggedSpaceskip}        {.3333em}
72 \setlength{\RaggedXSpaceskip}       {.5em}
73 \fi

6.7 Setting the \spaceskip and \xspaceskip

To set ragged text with proportional fonts and monospaced fonts correctly, we must distinguish between these two kinds of fonts everytime a font is loaded. Otherwise the settings for e. g. a proportional fonts would be in effect if you start \RaggedRight in

\rmfamily and then switch to \ttfamily.

We do the setting with the help of everysel[5], which allows us to define code which is (hopefully) executed after every fontchange in a L^{A}TEX document.^{3}

\if@raggedtwoe@spaceskip  \if@raggedtwoe@spaceskip signals the use of commands defined

by ragged2e to the command inserted into \selectfont. It is set to true by these commands and restored to false by TEX when the scope of them ends.

3It is executed after every \selectfont, so if you stay within NFSS and don’t declare your fonts with commands like \newfont and then switch to them, it will work.

74 \newif\if@raggedtwoe@spaceskip
\@raggedtwoe@everyselectfont  \@raggedtwoe@everyselectfont is our code inserted into
\selectfont.
75 \newcommand{\@raggedtwoe@everyselectfont}{%
76 \if@raggedtwoe@spaceskip

If no command defined by ragged2e is in use, we do nothing. But if it is, we look at \fontdimen3 to see if the current font is monospaced or not. If it is, we set \spaceskip to the value intended by the designer of the font (\fontdimen2) and \xspaceskip to 0pt. If it isn’t, we use

the values defined by \RaggedSpaceskip and \RaggedXSpaceskip.
77  \ifdim\fontdimen\thr@@\font=\z@\relax
78  \setlength{\spaceskip}  {\fontdimen\tw@\font}%
79  \setlength{\xspaceskip} {\z@}%
80  \else
81  \setlength{\spaceskip}  {\RaggedSpaceskip}%
82  \setlength{\xspaceskip} {\RaggedXSpaceskip}%
83  \fi
84 \fi

85 }

86 \EverySelectfont{\@raggedtwoe@everyselectfont}

6.8 The commands

\@raggedtwoe@savedcr We save the definition of \\ in \@raggedtwoe@savedcr.
87 \let\@raggedtwoe@savedcr\\
\Centering  \Centering first lets \\ = \@centercr, but only if \\ has its original

meaning, otherwise \Center would not work inside environments like tabular etc., in which \\ has a different meaning. Then, the L^{A}TEX and TEX-parameters are set. \@rightskip is L^{A}TEX’s version

of \rightskip.

“Every environment, like the list environments, that set \rightskip to its ’normal’ value set it to \@rightskip” [1]

Finally we signal the code inserted into \selectfont that we are active.

88 \newcommand{\Centering}{%
89 \ifx\\\@raggedtwoe@savedcr
90  \let\\\@centercr
91 \fi
92 \setlength{\leftskip}   {\CenteringLeftskip}%
93 \setlength{\@rightskip} {\CenteringRightskip}%
94 \setlength{\rightskip}  {\@rightskip}%
95 \setlength{\parfillskip}{\CenteringParfillskip}%
96 \setlength{\parindent}  {\CenteringParindent}%
97 \@raggedtwoe@spaceskiptrue

\RaggedLeft \RaggedLeft is like \Centering; it only uses other parameters.

 99 \newcommand{\RaggedLeft}{%
100 \ifx\\\@raggedtwoe@savedcr
101  \let\\\@centercr
102 \fi
103 \setlength{\leftskip}   {\RaggedLeftLeftskip}%
104 \setlength{\@rightskip} {\RaggedLeftRightskip}%
105 \setlength{\rightskip}  {\@rightskip}%
106 \setlength{\parfillskip}{\RaggedLeftParfillskip}%
107 \setlength{\parindent}  {\RaggedLeftParindent}%
108 \@raggedtwoe@spaceskiptrue

109 }

\RaggedRight  \RaggedRight is like \Centering; it only uses other parameters.
110 \newcommand{\RaggedRight}{%
111 \ifx\\\@raggedtwoe@savedcr
112  \let\\\@centercr
113 \fi
114 \setlength{\leftskip}   {\RaggedRightLeftskip}%
115 \setlength{\@rightskip} {\RaggedRightRightskip}%
116 \setlength{\rightskip}  {\@rightskip}%
117 \setlength{\parfillskip}{\RaggedRightParfillskip}%
118 \setlength{\parindent}  {\RaggedRightParindent}%
119 \@raggedtwoe@spaceskiptrue

120 }

6.9 The environments

Center FlushLeft FlushRight The environments Center, FlushLeft, and \FlushRight are implemented like their counterparts in L^{A}TEX: Start a trivlist and switch on the right command.

121 \newenvironment{Center}{%
122 \begin{trivlist}%
123  \Centering\item\relax
124  }{%
125  \end{trivlist}%

126 }

127 \newenvironment{FlushLeft}{%
128 \begin{trivlist}%
129  \RaggedRight\item\relax
130  }{%
131  \end{trivlist}%

132 }

133 \newenvironment{FlushRight}{%
134 \begin{trivlist}%
135  \RaggedLeft\item\relax
136  }{%
137  \end{trivlist}%

6.10 Overloading the L^{A}TEX-commands

If the option NewCommands is used, we save the original L^{A}TEXcommands for ragged text and overload them.

139 \if@raggedtwoe@originalcommands
140 \else
141 \let\LaTeXcentering\centering
142 \let\LaTeXraggedleft\raggedleft
143 \let\LaTeXraggedright\raggedright
144 \let\LaTeXcenter\center
145 \let\LaTeXflushleft\flushleft
146 \let\LaTeXflushright\flushright
147 \let\centering\Centering
148 \let\raggedleft\RaggedLeft
149 \let\raggedright\RaggedRight
150 \let\begincenter\beginCenter
151 \let\beginflushleft\beginFlushleft
152 \let\beginflushright\beginFlushRight
153 \fi

154 ⟨/package⟩

7 Acknowledgements

A first version of this package for L^{A}TEX2.09 was named raggedri[6]. Laurent Siebenmann (lcs@topo.math.u-psud.fr) with his style ragged.sty[7] provided the final impulse for this new implementation. Without the constant nagging of Rainer Sieger (rsieger@ awi-bremerhaven.de) this package might not be.

References

[1] Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport, Frank Mittelbach, Chris Rowley, and Rainer Schöpf. ltmiscen.dtx. Part of the L^{A}TEX-distribution.

[2] Donald E. Knuth. The TEXBook, volume A of Computers & Typesetting. Addison-Wesley, Reading, MA, USA, 1986.

[3] Leslie Lamport. L^{A}TEX: A Document Preparation System. Addison-Wesley, Reading, MA, USA, first edition, 1986.

[4] Frank Mittelbach and Rainer Schöpf. The file cmfonts.fdd for use with L^{A}TEX 2ε. Part of the L^{A}TEX-distribution.

[5] Martin Schröder. The everysel-package. CTAN:tex-archive/

   macros/latex/contrib/supported/ms/everysel.dtx.

L^{A}TEX 2ε package.

Index 12

[6] Martin Schröder. The raggedri document option. Was in

   CTAN:tex-archive/macros/latex209/contrib/raggedright.

L^{A}TEX2.09 style, outdated.

[7] Laurent Siebenmann. ragged.sty. CTAN:tex-archive/macros/
   generic/ragged/ragged.sty. generic macro file for plain and

L^{A}TEX.

Index

Numbers written in italic refer to the page where the corresponding entry is described, the ones underlined to the code line of the definition, the rest to the code lines where the entry is used.

Symbols

\@centercr …. 3, 90, 101, 112 \@flushglue . . . . . . . . . . . . 4, 8 \@ne . . . . . 44, 45, 47, 49, 52, 67

\@raggedtwoe@everyselectfont

. . . . . . . . . . . . . . . . . . \underline{75}

\@raggedtwoe@originalcommandsfalse

. . . . . . . . . . . . . . . . . . 23

\@raggedtwoe@originalcommandstrue

. . . . . . . . . . . . . . . . . . 22

\@raggedtwoe@originalparametersfalse

. . . . . . . . . . . . . . . . . . 25

\@raggedtwoe@originalparameterstrue

. . . . . . . . . . . . . . . . . . 24

\@raggedtwoe@savedcr . . . . .

. . . . . . . . \underline{87}, 89, 100, 111

\@raggedtwoe@spaceskiptrue

. . . . . . . . . . . 97, 108, 119 \@rightskip . . . . . . . . . . . 4,

5, 93, 94, 104, 105, 115, 116 \\ . . . . . . . . . . . . . . . 3, 87,

89, 90, 100, 101, 111, 112

B

\begin . . . . . . . . . 122, 128, 134 \beginCenter . . . . . . . . . . . 150 \begincenter . . . . . . . . . . . 150

\beginFlushleft . . . . . . . . 151
\beginflushleft . . . . . . . . 151
\beginFlushRight . . . . . . . 152
\beginflushright . . . . . . . 152

C

Center (environment) … 5, \underline{121} \center . . . . . . . . . . . . . . . 144 \Centering …. 3, \underline{88}, 123, 147 \centering . . . . . . . . . 141, 147

                                 \CenteringLeftskip . . . . . . .

. . . . . . . . 3, \underline{29}, 44, 59, 92

                                 \CenteringParfillskip . . . .

. . . . . . . . 4, \underline{29}, 50, 65, 95

                                 \CenteringParindent . . . . . .

. . . . . . . . 4, \underline{29}, 53, 68, 96

                                 \CenteringRightskip . . . . . .

. . . . . . . . 4, \underline{29}, 47, 62, 93

D

                                 \DeclareOption . . . . . . . . 22–25

\def . . . . . . . . . . . . . . 2, 11, 15

E \else . . . . . . . . . . . . 58, 80, 140 \end . . . . . . . . . . 125, 131, 137 environments:

Center . . . . . . . . . . . 5, \underline{121} FlushLeft . . . . . . . . . 5, \underline{121} FlushRight . . . . . . . . 5, \underline{121}

                                 \EverySelectfont . . . . . . . . 86
                                 \ExecuteOptions . . . . . . . . . 26

F \fi 73, 83, 84, 91, 102, 113, 153 FlushLeft (environment) 5, \underline{121} \flushleft . . . . . . . . . . . . 145 FlushRight (environment) 5, \underline{121} \flushright . . . . . . . . . . . . 146 \font . . . . . . . . . . . . . . . 77, 78 \fontdimen . . . . . . . . . . 77, 78

I

                                 \if@raggedtwoe@originalcommands

. . . . . . . . . . . . . . \underline{20}, 139

                                 \if@raggedtwoe@originalparameters

. . . . . . . . . . . . . . . \underline{21}, 43

                                 \if@raggedtwoe@spaceskip .

. . . . . . . . . . . . . . . \underline{74}, 76

Change History 13

\ifdim . . . . . . . . . . . . . . . . . 77 \ifx . . . . . . . . . . . 89, 100, 111 \item . . . . . . . . . . 123, 129, 135

L

\LaTeXcenter . . . . . . . . . . . 144

\LaTeXcentering . . . . . . . . 141
\LaTeXflushleft . . . . . . . . 145
\LaTeXflushright . . . . . . . 146
\LaTeXraggedleft . . . . . . . 142
\LaTeXraggedright . . . . . . 143

\leftskip . . . . . 6, 92, 103, 114 \let 3, 87, 90, 101, 112, 141–152

N

\newcommand …. 75, 88, 99, 110

\newenvironment . 121, 127, 133

\newif . . . . . . . . . . . . 20, 21, 74 \newlength . . . . . . . . . . . 29–42

P

\parfillskip . . . . . 95, 106, 117 \parindent …. 7, 96, 107, 118

\ProcessOptions . . . . . . . . . 27

R

\RaggedLeft …. 3, \underline{99}, 135, 148 \raggedleft . . . . . . . . . 142, 148

\RaggedLeftLeftskip . . . . . .

. . . . . . . 3, \underline{29}, 45, 60, 103

\RaggedLeftParfillskip . . .

. . . . . . . 4, \underline{29}, 51, 66, 106

\RaggedLeftParindent . . . . .

. . . . . . . 4, \underline{29}, 54, 69, 107

\RaggedLeftRightskip . . . . .

. . . . . . . 4, \underline{29}, 48, 63, 104 \RaggedRight . . 3, \underline{110}, 129, 149 \raggedright … 2, 11, 143, 149

                                 \RaggedRightLeftskip . . . . .

. . . . . . . 3, \underline{29}, 46, 61, 114

                                 \RaggedRightParfillskip . .

. . . . . . . 4, \underline{29}, 52, 67, 117

                                 \RaggedRightParindent . . . .

. . . . . . . 4, \underline{29}, 55, 70, 118

                                 \RaggedRightRightskip . . . .

. . . . . . . 4, \underline{29}, 49, 64, 115

                                 \RaggedSpaceskip . . . . . . . .

. . . . . . . . 4, \underline{29}, 56, 71, 81

                                 \RaggedXSpaceskip . . . . . . .

. . . . . . . . 4, \underline{29}, 57, 72, 82 \relax . . . . . . . . . . . . . . 14,

17, 27, 77, 123, 129, 135

                                 \RequirePackage . . . . . . . . . 28

\rightskip 5, 12, 17, 94, 105, 116

S \setlength . . . . . . . . 44–57, 59–72, 78, 79, 81, 82, 92–96, 103–107, 114–118 \spaceskip . . . . . . . . 13, 78, 81

T \thr@@ . . . . . . . . . . . . . . . . . 77 \tt . . . . . . . . . . . . . . . . . . . 16

                                 \ttraggedright . . . . . . . . . . 15

\tw@ . . . . . . . 59, 60, 62, 64, 78

X \xspaceskip . . . . . . . . 14, 79, 82

Z \z@ . . . . . . . 6, 7, 12, 17, 44, 45, 47, 49, 52–57, 59, 60, 62, 64, 67–70, 77, 79

\z@skip . . . . . . . . . . . . . 46, 48, 50, 51, 61, 63, 65, 66

Change History

v1.00

General: New from ragged-

right V 1.21 . . . . . . . . . 1 v1.01

General: Documentation

improved . . . . . . . . . . . 1 v1.02

General: Moved to LPPL . . 1