summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex3/galley
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:46:26 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:46:26 +0000
commitadc8aaaf59099761577342d1050abb05625eeffc (patch)
treeed08f7c945ba15a7710696caf9fc82ed8d1f2491 /Master/texmf-dist/tex/latex3/galley
parent2a8c0210a3491a41c4ba672c46d215048947638c (diff)
trunk/Master/texmf-dist/tex/latex3
git-svn-id: svn://tug.org/texlive/trunk@616 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex3/galley')
-rw-r--r--Master/texmf-dist/tex/latex3/galley/galley2.sty1724
-rw-r--r--Master/texmf-dist/tex/latex3/galley/xhj.sty313
2 files changed, 2037 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex3/galley/galley2.sty b/Master/texmf-dist/tex/latex3/galley/galley2.sty
new file mode 100644
index 00000000000..4ccb050c6ff
--- /dev/null
+++ b/Master/texmf-dist/tex/latex3/galley/galley2.sty
@@ -0,0 +1,1724 @@
+%%
+%% This is file `galley2.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% galley2.dtx (with options: `package,trace')
+%%
+%%
+%% $Header: /usr3/users/latex3/design/consolidation/CURRENT/RCS/galley2.dtx,v 1.15 2000/01/27 21:45:56 latex3 Exp $
+%%
+%% (C) Copyright 1999-2000 Frank Mittelbach
+%% All rights reserved.
+%%
+%% Not for general distribution. In its present form it is not allowed
+%% to put this package onto CD or an archive without consulting the
+%% the authors.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{galley2}
+ [2000/01/27 v0.2s galley structures]
+\NeedsTeXFormat{LaTeX2e}[1998/12/01]
+\RequirePackage{ldcsetup}
+\RequirePackage{xhj} % taken out of this file
+\IgnoreWhiteSpace
+\catcode`\:=11\relax
+\def\tracinggalleys{\afterassignment\@tracinggalleys\count@}
+\def\@tracinggalleys{
+ \ifcase \count@
+ \let\GAL@typeout\@gobble
+ \or
+ \def\GAL@typeout ##1{
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \wlog {##1}
+ \endgroup
+ }
+ \or
+ \let\GAL@typeout\typeout
+ \else
+ \def\GAL@typeout ##1{
+ \ifnum\tracingmacros>\z@
+ \begingroup
+ \tracingassigns\z@
+ \tracingcommands\z@
+ \tracingrestores\z@
+ \tracingmacros\z@
+ \typeout{##1}
+ \endgroup
+ \else
+ \typeout{##1}
+ \fi
+ }
+ \fi
+}
+\let\GAL@typeout\@gobble
+\let\GAL@@clubpenalty\clubpenalty
+\newcount\clubpenalty
+\let\GAL@@interlinepenalty\interlinepenalty
+\newcount\interlinepenalty
+\let\GAL@@everypar\everypar
+\newtoks\everypar
+\let\GAL@@parindent\parindent \GAL@@parindent\z@
+\newdimen\parindent
+\let\GAL@@parskip\parskip \GAL@@parskip\z@
+\newskip\parskip
+\let\GAL@@leftskip\leftskip
+\newskip\leftskip
+\let\GAL@@rightskip\rightskip
+\newskip\rightskip
+\let\GAL@@parfillskip\parfillskip
+\newskip\parfillskip \parfillskip\@flushglue
+\newskip\GAL@@startskip
+\newskip\GAL@@linefillskip
+\let\GAL@@spaceskip\spaceskip
+\newskip\spaceskip
+\let\GAL@@xspaceskip\xspaceskip
+\newskip\xspaceskip
+\let\GAL@@lineskip\lineskip
+\newskip\lineskip
+\newcount\GAL@cnta
+\newskip\GAL@skipa
+\newskip\GAL@skipb
+\newbox\GAL@boxa
+\def\GAL@init@static {
+ \gdef\GAL@b@s {\z@}
+ \gdef\GAL@p@s {\z@}
+ \gdef\GAL@v@s {-1sp}
+ \gdef\GAL@uv@s {\z@}
+ \gdef\GAL@up@s {}
+ \gdef\GAL@pw@s {}
+ \gdef\GAL@j@s {\z@\leftskip\rightskip\parfillskip
+ \spaceskip\xspaceskip\parfillskip\parindent}
+ \gdef\GAL@o@s {}
+ \gdef\GAL@ps@s {}
+ \gdef\GAL@i@s {\z@}
+ \gdef\GAL@nw@s {}
+ \gdef\GAL@q@s {}
+ \setGALnormalpar:
+ \GAL@init@dynamic@fully
+ \UseInstance{hj}{default}
+%% alternative
+%% \UseInstance{hyphenation}{default}
+%% \UseInstance{linebreak}{default}
+}
+\def\GALsavegalleystate: {
+ \let\GAL@b@l \GAL@b@
+ \let\GAL@p@l \GAL@p@
+ \let\GAL@v@l \GAL@v@
+ \let\GAL@uv@l \GAL@uv@
+ \let\GAL@up@l \GAL@up@
+ \let\GAL@pw@l \GAL@pw@
+ \let\GAL@j@l \GAL@j@
+ \let\GAL@o@l \GAL@o@
+ \let\GAL@ps@l \GAL@ps@
+ \let\GAL@i@l \GAL@i@
+ \let\GAL@nw@l \GAL@nw@
+ \let\GAL@q@l \GAL@q@
+ \let\GAL@b@sl \GAL@b@s
+ \let\GAL@p@sl \GAL@p@s
+ \let\GAL@v@sl \GAL@v@s
+ \let\GAL@uv@sl \GAL@uv@s
+ \let\GAL@up@sl \GAL@up@s
+ \let\GAL@pw@sl \GAL@pw@s
+ \let\GAL@j@sl \GAL@j@s
+ \let\GAL@o@sl \GAL@o@s
+ \let\GAL@ps@sl \GAL@ps@s
+ \let\GAL@i@sl \GAL@i@s
+ \let\GAL@nw@sl \GAL@nw@s
+ \let\GAL@q@sl \GAL@q@s
+ \let\saved@GAL@par\par
+ \let\saved@GAL@reassign@list\GAL@reassign@list
+}
+\def\GALrestoregalleystate: {
+ \global\let\GAL@b@ \GAL@b@l
+ \global\let\GAL@p@ \GAL@p@l
+ \global\let\GAL@v@ \GAL@v@l
+ \global\let\GAL@uv@ \GAL@uv@l
+ \global\let\GAL@up@ \GAL@up@l
+ \global\let\GAL@pw@ \GAL@pw@l
+ \global\let\GAL@j@ \GAL@j@l
+ \global\let\GAL@o@ \GAL@o@l
+ \global\let\GAL@ps@ \GAL@ps@l
+ \global\let\GAL@i@ \GAL@i@l
+ \global\let\GAL@nw@ \GAL@nw@l
+ \global\let\GAL@q@ \GAL@q@l
+ \global\let\GAL@b@s \GAL@b@sl
+ \global\let\GAL@p@s \GAL@p@sl
+ \global\let\GAL@v@s \GAL@v@sl
+ \global\let\GAL@uv@s \GAL@uv@sl
+ \global\let\GAL@up@s \GAL@up@sl
+ \global\let\GAL@pw@s \GAL@pw@sl
+ \global\let\GAL@j@s \GAL@j@sl
+ \global\let\GAL@o@s \GAL@o@sl
+ \global\let\GAL@ps@s \GAL@ps@sl
+ \global\let\GAL@i@s \GAL@i@sl
+ \global\let\GAL@nw@s \GAL@nw@sl
+ \global\let\GAL@q@s \GAL@q@sl
+ \global\let\par\saved@GAL@par
+ \global\let\GAL@reassign@list\saved@GAL@reassign@list
+ \expandafter \setup@paragraph@justification \GAL@j@
+}
+\def\saved@GAL@par{\ERROR\GAL@normal@par}
+\def\GAL@init@dynamic@as@necessary {
+ \GAL@typeout{Reinit~ parameters \on@line}
+ \GAL@typeout{\@spaces \meaning \GAL@reassign@list}
+ \GAL@reassign@list
+ \global\let\GAL@reassign@list\@empty
+}
+\def\GAL@init@dynamic@fully {
+ \GAL@typeout{Reinit~ parameters \on@line}
+ \global\let\GAL@b@ \GAL@b@s
+ \global\let\GAL@p@ \GAL@p@s
+ \global\let\GAL@v@ \GAL@v@s
+ \global\let\GAL@uv@ \GAL@uv@s
+ \global\let\GAL@up@ \GAL@up@s
+ \global\let\GAL@pw@ \GAL@pw@s
+ \global\let\GAL@j@ \GAL@j@s
+ \global\let\GAL@o@ \GAL@o@s
+ \global\let\GAL@ps@ \GAL@ps@s
+ \global\let\GAL@i@ \GAL@i@s
+ \global\let\GAL@nw@ \GAL@nw@s
+ \global\let\GAL@q@ \GAL@q@s
+ \global\let\GAL@reassign@list\@empty
+}
+\let\GAL@reassign@list\@empty
+\def\GAL@prepare@reassign:NN #1#2{
+ \ifx#1#2
+ \else
+ \appendtoDGPV@internal:Nn\GAL@reassign@list
+ {\global \let #1 #2 }
+ \fi
+}
+\def\GAL@prepare@reassign:n #1{
+ \expandafter\ifx \csname GAL@#1@s\endcsname \relax
+ \GAL@typeout{Not~ reassigning~ for~ #1!}
+ \else
+ \expandafter
+ \GAL@prepare@reassign:NN
+ \csname GAL@#1@ \expandafter \endcsname
+ \csname GAL@#1@s \endcsname
+ \fi
+}
+\def\GAL@start@level{
+ \GALsavegalleystate:
+ \bgroup
+ \advance\GAL@level@num\@ne
+ \GAL@typeout{Entering~ galley~ level:~
+ \the\GAL@level@num~ \on@line}
+ \GAL@init@static
+ \@GAL@if@first@on@leveltrue % temp solution!
+ % see below
+ \aftergroup\GAL@cleanup@level}
+\newcount\GAL@level@num
+\newif\if@GAL@if@first@on@level
+\def\GAL@cleanup@level{
+ \par
+ \GAL@finish@typesetting
+ \GAL@typeout{Returning~ to~ galley~ level:~ \the\GAL@level@num~ \on@line}
+ \GALrestoregalleystate:
+ \egroup
+}
+\def\GAL@finish@typesetting {}
+\everyvbox{\GAL@start@level}
+\let\@@insert\insert
+\long\def\insert #1#{\@insert{#1}}
+\long\def\@insert #1#2{\@@insert#1{\GAL@start@level#2\par}}
+\def\GAL@ignore@next@galley{
+ \everyvbox{\global\everyvbox{\GAL@start@level}}
+}
+\def\GAL@ignore@next@galley@vbox{
+ \everyvbox{\global\everyvbox{\GAL@start@level}}\vbox
+}
+\def \GAL@show@datastructure #1{
+ \GAL@typeout{#1^^J
+ \@spaces nominal~ width~ =~ \the\hsize ^^J
+ \@spaces left~ indentation~ =~ \the\@totalleftmargin ^^J
+ \@spaces break~ switch~ (b)~ =~ \GAL@b@ \space (\GAL@b@s) ^^J
+ \@spaces v-penalty~ (p)~ =~ \GAL@p@ \space (\GAL@p@s) ^^J
+ \@spaces v-space~ (v)~ =~ \GAL@v@ \space (\GAL@v@s) ^^J
+ \@spaces user~ v-penalty~ (up)~ =~ \GAL@up@ ^^J
+ \@spaces user~v-space~ (uv)~ =~ \GAL@uv@ ^^J
+ \@spaces prev-whatits~ (pw)~ =~ \meaning \GAL@pw@ ^^J
+ \@spaces next-whatits~ (nw)~ =~ \meaning \GAL@nw@ ^^J
+ \@spaces parshape~spec~ (ps)~ =~ \GAL@ps@ \space (\GAL@ps@s) ^^J
+ \@spaces queries~ (q)~ =~ \meaning \GAL@q@ ^^J
+ \@spaces indent~ flag~ (i)~ =~ \GAL@i@ \space (\GAL@i@s) ^^J
+ \@spaces para~ object~ (o)~ =~ \meaning \GAL@o@ ^^J
+ \@spaces para~ justification~ (j)~ =~ \meaning \GAL@j@ }
+}
+\def\GAL@use@on@para{
+ \GAL@show@datastructure{Para~ start~ for~ galley~
+ level~ \the\GAL@level@num \on@line}
+ \if@GAL@if@first@on@level
+ \GAL@handle@first@para
+ \else
+ \begingroup
+ \global\setbox\GAL@boxa\lastbox
+ \endgraf
+ \GAL@set@vertical@objects
+ \GAL@@everypar{}
+ \noindent
+ \endgroup
+ \fi
+ \GAL@set@measure
+ \GAL@set@horizontal@objects
+ \GAL@init@dynamic@as@necessary
+}
+\def\GAL@handle@first@para {
+ \@GAL@if@first@on@levelfalse
+ \GAL@pw@
+ \@tempskipa \GAL@uv@ \relax
+ \ifdim \@tempskipa =\z@ \else
+ \ifhmode
+ \begingroup
+ \global\setbox\GAL@boxa\lastbox
+ \endgraf
+ \vskip \@tempskipa
+ \GAL@@everypar{}
+ \noindent
+ \endgroup
+ \else
+ \vskip \@tempskipa
+ \fi
+ \fi
+}
+\def\GAL@use@on@vobject{
+ \GAL@show@datastructure{V-object~ for~ galley~
+ level~ \the\GAL@level@num \on@line}
+ \if@GAL@if@first@on@level
+ \GAL@handle@first@para
+ \else
+ \GAL@set@vertical@objects
+ \fi
+ \GAL@init@dynamic@as@necessary
+}
+\def \GAL@set@vertical@objects {
+ \GAL@pw@
+ \penalty
+ \ifx \GAL@up@ \@empty
+ \ifnum \GAL@b@ > \z@
+ \@M
+ \else
+ \GAL@p@ \relax
+ \fi
+ \else
+ \GAL@up@ \relax
+ \fi
+ \GAL@skipa \GAL@v@ \relax
+ \vskip \ifdim
+ \GAL@skipa = -1sp \parskip
+ \GAL@typeout{\parskip=\the\parskip\space applied}
+ \else
+ \GAL@skipa
+ \fi
+ \vskip \GAL@uv@ \relax
+}
+\def \GAL@set@measure {
+ \parshape
+ \ifx\GAL@ps@\@empty
+ \z@
+ \else
+ \GAL@ps@
+ \fi
+}
+\def \GAL@set@horizontal@objects {
+ \GAL@nw@
+ \GAL@q@
+ \expandafter \setup@paragraph@justification \GAL@j@
+ \ifnum \GAL@i@ = \z@
+ \ifvoid\GAL@boxa \else \hb@xt@ \GAL@@parindent{} \fi
+ \fi
+ \GAL@o@ \relax
+ \hskip \GAL@@startskip \relax
+ \setup@page@breaking@penalties \GAL@b@
+}
+\def \setup@page@breaking@penalties #1{
+ \GAL@@clubpenalty \clubpenalty
+ \GAL@@interlinepenalty \interlinepenalty
+ \ifcase #1
+ \or
+ \or
+ \GAL@@clubpenalty \@M
+ \or
+ \GAL@@interlinepenalty \@M
+ \else
+ \setup@page@breaking@penalties {-#1}
+ \fi
+}
+\def \setup@paragraph@justification #1 #2 #3 #4 #5 #6 #7 #8{
+ \global \GAL@@startskip #1 \relax
+ \global \GAL@@leftskip #2 \relax
+ \global \GAL@@rightskip #3 \relax
+ \global \GAL@@parfillskip #4 \relax
+ \global \GAL@@spaceskip #5 \relax
+ \global \GAL@@xspaceskip #6 \relax
+ \global \GAL@@linefillskip#7 \relax
+ \global \GAL@@parindent #8 \relax
+}
+\def \GAL@normal@par {
+ \begingroup
+ \ifvmode
+ \endgraf
+ \else %% For error-trapping needs
+ %% \ifinner \ifhmode etc cases
+ \endgraf
+ %%%% NOTE: this puts us into vmode with the para on the galley
+ %%%% AND rignt here we have stuff that has migrated
+ %%%% (eg vadjust stuff) from the last line!!!
+ \nobreak
+ \fi
+ \endgroup
+}
+\let\@@par\GAL@normal@par
+\def\setGALnormalpar:{
+ \global\let\par\GAL@normal@par
+}
+\def \setGALignoredpar:n #1 {
+ \ifvmode
+ \global \par@deathcycles \z@
+ \global\let\par\GAL@ignored@par
+ \gdef\GAL@ignored@par@error{#1}
+ \appendtoDGPVthing:nn q \setGALnormalpar:
+ \else
+ \ERROR \setGALnormalpar: \par
+ \fi
+}
+\def\GAL@ignored@par{
+ \global \advance\par@deathcycles \@ne
+ \ifnum \par@deathcycles > \thr@@
+ \PackageError{galley2}\GAL@ignored@par@error\@ehd
+ \setGALnormalpar:
+ \par
+ \fi
+}
+\def \GALignorepars:n #1 {
+ \global \par@deathcycles \z@
+ \global\let\par\GAL@ignore@next@pars
+ \gdef\GAL@ignored@par@error{#1}
+ \GAL@ignore@next@pars
+}
+\def\GAL@ignore@next@pars {
+ \global \advance\par@deathcycles \@ne
+ \ifnum \par@deathcycles > \thr@@
+ \PackageError{galley2}\GAL@ignored@par@error\@ehd
+ \setGALnormalpar:
+ \par
+ \fi
+ \@ifnextchar\par{}{\setGALnormalpar:}
+}
+\long\def\GAL@for#1#2\do#3{%
+ \expandafter\def\expandafter\@fortmp\expandafter{#2}%
+ \ifx\@fortmp\@empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}
+\def \parshape@setup #1 #2 #3 #4 #5 #6{
+ \setlength\@tempdima{#2}
+ \setlength\@tempdimb{#3}
+ \global\let\GAL@ps@\@gobble % remove upcoming space below
+ \parshape@linecnt \z@
+ \@whilenum \parshape@linecnt < #4 \do
+ { \xdef\GAL@ps@{\GAL@ps@\space
+ \the\@tempdima\space \the\@tempdimb
+ }
+ \advance \parshape@linecnt \@ne
+ }
+ \GAL@for\parshape@next#6\do
+ {
+ \advance\parshape@linecnt\@ne
+ \setlength\parshape@lineindent{\@tempdima+#5+\parshape@next}
+ \setlength\parshape@linewidth
+ {\@tempdima+\@tempdimb-\parshape@lineindent}
+
+ \ifnum\parshape@linecnt=\@ne
+ \@tempdimc \parshape@lineindent
+ \advance\@tempdimc -\@tempdima
+ \edef\parshape@firstlineindent{\the\@tempdimc}
+ \fi
+ \xdef\GAL@ps@{\GAL@ps@\space
+ #1\space
+ \the\parshape@linewidth}
+ }
+ \advance\parshape@linecnt\@ne
+ \xdef\GAL@ps@{\the\parshape@linecnt\space
+ \GAL@ps@\space
+ \the\@tempdima\space \the\@tempdimb}
+ \GAL@typeout{\space\space set~ ps = \GAL@ps@}%
+ \GAL@prepare@reassign:NN \GAL@ps@ \GAL@ps@s
+}
+\newcount\parshape@linecnt
+\newlength\parshape@lineindent
+\newlength\parshape@linewidth
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\setDGPVdimension:nn #1#2{% #1=v/h #2=value
+ \calc@assign@skip\GAL@skipb{#2}
+ \GAL@typeout{\space\space set~ #1 = #2 = \the\GAL@skipb}%
+ \expandafter \xdef
+ \csname GAL@#1@\endcsname
+ {\the\GAL@skipb}
+ \GAL@prepare@reassign:n{#1}
+}
+\def\addDGPVdimension:nn #1#2{% #1=v/h/... #2=value
+ \GAL@skipb\csname GAL@#1@ \endcsname\relax
+ \ifdim\GAL@skipb=-1sp
+ \calc@assign@skip\GAL@skipb{#2}
+ \else
+ \calc@assign@skip{\advance\GAL@skipb}{#2}
+ \fi
+ \GAL@typeout{\space\space set~ #1 =+ #2 = \the\GAL@skipb}
+ \expandafter
+ \xdef
+ \csname GAL@#1@\endcsname
+ {\the\GAL@skipb}
+ \GAL@prepare@reassign:n{#1}
+}
+\def\maxDGPVdimension:nn #1#2{
+ \GAL@skipa\csname GAL@#1@\endcsname\relax
+ \calc@assign@skip\GAL@skipb{#2}
+ \ifdim\GAL@skipa<\GAL@skipb
+ \expandafter
+ \xdef
+ \csname GAL@#1@\endcsname
+ {\the\GAL@skipb}
+ \GAL@prepare@reassign:n{#1}
+ \fi
+ \GAL@typeout{\space\space set~ #1 =
+ max(\the\GAL@skipa,\the\GAL@skipb) ^^J\@spaces\@spaces
+ = \csname GAL@#1@\endcsname}
+}
+\def\setGALpenalty:n #1{%
+ \calc@assign@count\GAL@cnta{#1}
+ \xdef \GAL@p@ {\the\GAL@cnta}
+ \GAL@typeout{\space\space set~ p = #1 = \the\GAL@cnta}
+ \GAL@prepare@reassign:NN \GAL@p@ \GAL@p@s
+}
+\def\addGALpenalty:n #1{%
+ \GAL@cnta \GAL@p@ \relax
+ \calc@assign@count{\advance\GAL@cnta}{#1}
+ \xdef \GAL@p@ {\the\GAL@cnta}
+ \GAL@typeout{\space\space set~ p += #1 = \the\GAL@cnta}
+ \GAL@prepare@reassign:NN \GAL@p@ \GAL@p@s
+}
+\def\setGALbreak:n #1{% values 0, 1, 2, or 3
+ \GAL@typeout{\space\space set~ b = #1 }
+ \gdef \GAL@b@ {#1}
+ \GAL@prepare@reassign:NN \GAL@b@ \GAL@b@s
+}
+\def\setGALobject:n #1{
+ \gdef \GAL@o@ {#1}
+ \GAL@prepare@reassign:NN \GAL@o@ \GAL@o@s
+}
+\def\setDGPVthing:nn #1 #2{
+ \expandafter \gdef \csname GAL@#1@\endcsname {#2}
+ \GAL@prepare@reassign:n{#1}
+}
+\def\appendtoDGPVthing:nn #1#2{
+ \expandafter\appendtoDGPV@internal:Nn\csname GAL@#1@\endcsname {#2}
+ \GAL@prepare@reassign:n{#1}
+}
+\def\appendtoDGPVthing:no #1#2{
+ \expandafter\appendtoDGPV@internal:No\csname GAL@#1@\endcsname {#2}
+ \GAL@prepare@reassign:n{#1}
+}
+\def\appendtoDGPV@internal:Nn #1 #2{
+ \expandafter \gdef \expandafter #1 \expandafter
+ {#1 #2}
+}
+\def\appendtoDGPV@internal:No #1 #2{
+ \expandafter\appendtoDGPV@internal:Nn\expandafter #1\expandafter {#2}
+}
+\def \setGALleftparshape:nnn {
+ \parshape@setup {\the\parshape@lineindent} \@totalleftmargin
+ \linewidth }
+\def \setGALrightparshape:nnn {
+ \parshape@setup \@totalleftmargin \@totalleftmargin \linewidth
+}
+\def \GALhangfrom:n #1 {
+ \setbox\@tempboxa\hbox{{#1}}
+ \parshape@setup {\the\parshape@lineindent}
+ {\@totalleftmargin+\wd\@tempboxa}
+ {\linewidth-\wd\@tempboxa}
+ \z@
+ \z@
+ {-\wd\@tempboxa}
+ \noindent\box\@tempboxa}
+\let \@hangfrom \GALhangfrom:n
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\setSGPVthing:nn #1 #2 {
+ \setDGPVthing:nn {#1} {#2}
+ \global\expandafter
+ \let\csname GAL@#1@s \expandafter\endcsname
+ \csname GAL@#1@ \endcsname
+}
+\def\setSGPVdimension:nn #1 #2 {
+ \setDGPVdimension:nn {#1} {#2}
+ \global\expandafter
+ \let\csname GAL@#1@s \expandafter\endcsname
+ \csname GAL@#1@ \endcsname
+}
+\def \setSGPVmeasure:nn #1 #2 {
+ \setlength\@totalleftmargin{#1}
+ \setlength\linewidth{#2}
+ \xdef\GAL@ps@s{\@ne\space
+ \the\@totalleftmargin\space \the\linewidth}
+ \global\let\GAL@ps@\GAL@ps@s
+}
+\def \addSGPVmeasure:nn #1 #2 {
+ \addtolength\@totalleftmargin{#1}
+ \addtolength\linewidth{#2}
+ \xdef\GAL@ps@s{\@ne\space
+ \the\@totalleftmargin\space \the\linewidth}
+ \global\let\GAL@ps@\GAL@ps@s
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\DeclareDocumentCommand \vspace {s m }
+ {
+ \addDGPVdimension:nn{uv}{#2}
+ }
+\def\addvspace#1{
+ \maxDGPVdimension:nn{v}{#1}
+}
+\def\addpenalty#1{
+ \addGALpenalty:n{#1}
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{template}
+\RequirePackage{xparse}
+\DeclareTemplateType{endlist}{0}
+
+\DeclareTemplate{endlist}{std}{0}{
+ penalty =+C \GAL@p@ ,
+ vspace =+L \GAL@v@ ,
+ parindent =+L \GAL@i@ ,
+ par-penalty =+C [0] \GAL@p@X ,
+ par-vspace =+L [\z@] \GAL@v@X ,
+ par-parindent =+L [\z@] \GAL@i@X ,
+ }
+ {\DoParameterAssignments
+ \setGALendlistpar:}
+
+\DeclareInstance{endlist}{list}{std}{
+ penalty = 999 ,
+ vspace = 10pt ,
+ parindent = 0pt ,
+ par-penalty = -1000 ,
+ par-vspace = 5pt ,
+ par-parindent = 10pt ,
+ }
+\GAL@init@static % this is to be after the templates by now
+
+\GAL@@everypar{\GAL@use@on@para\the\everypar}
+
+\AtBeginDocument {
+ \GAL@init@static % this is to be after the templates by now
+}
+\def\@@line#1{\GAL@use@on@vobject\hb@xt@\hsize{#1}\nobreak}
+
+\long\def \@savemarbox #1#2{%
+ \global\setbox #1%
+ \color@vbox
+ \vtop{%
+ \hsize\marginparwidth
+ \@parboxrestore
+ \@marginparreset
+ #2%
+ \par % needed nowadays!
+ \@minipagefalse
+ \outer@nobreak
+ }%
+ \color@endbox
+}
+
+\long\def\@footnotetext#1{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox\par}% %ditto!!!
+ \color@endgroup}}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\showGALcmd#1{\GAL@typeout{In~#1: \the\GAL@level@num~ \on@line}}
+
+\def\@afterheading{
+ \showGALcmd{@afterheading}
+ \if@afterindent \else
+ \setDGPVthing:nn i \@ne
+ \fi
+ \setGALbreak:n 2
+}
+
+\def\nofiles{%
+ \showGALcmd{}
+ \@fileswfalse
+ \typeout{No auxiliary output files.^^J}%
+ \long\def\protected@write##1##2##3%
+ {\write\m@ne{}%
+ }
+ \let\makeindex\relax
+ \let\makeglossary\relax}
+
+\long\def \protected@write#1#2#3{%
+ \showGALcmd{protected@write}
+ \begingroup
+ \let\thepage\relax
+ #2%
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{\write#1{#3}}%
+ \appendtoDGPVthing:no {nw} \reserved@a
+ \endgroup
+}
+
+\def\markboth#1#2{\gdef\@themark{{#1}{#2}}{%
+ \showGALcmd{}
+ \let\protect\@unexpandable@protect
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \mark{\@themark}}%
+}
+
+\def\markright#1{{\let\protect\@unexpandable@protect
+ \showGALcmd{}
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {#1}\mark{\@themark}}%
+}
+
+\def \newpage {%
+ \showGALcmd{newpage}
+ \if@noskipsec
+ \ifx \@nodocument\relax
+ \leavevmode
+ \global \@noskipsecfalse
+ \fi
+ \fi
+ \if@inlabel
+ \leavevmode
+ \global \@inlabelfalse
+ \fi
+ \ifnum \GAL@b@ > \z@
+ \setGALbreak:n 0
+ \fi
+ \par
+ \vfil
+ \penalty -\@M}
+\def\@arrayparboxrestore{%
+ \showGALcmd{@arrayparboxrestore}
+ \let\if@noskipsec\iffalse
+ \let\par\@@par
+ \let\-\@dischyph
+ \let\'\@acci\let\`\@accii\let\=\@acciii
+ \parindent\z@ \parskip\z@skip
+ \everypar{}%
+ \linewidth\hsize
+ \@totalleftmargin\z@
+ \leftskip\z@skip \rightskip\z@skip \@rightskip\z@skip
+ \parfillskip\@flushglue \lineskip\normallineskip
+ \baselineskip\normalbaselineskip
+ \sloppy}
+
+\def\@startsection#1#2#3#4#5#6{%
+ \showGALcmd{@startsection}
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \ifnum \GAL@b@ = \z@
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+
+\def\@xsect#1{%
+ \showGALcmd{@xsect}
+ \@tempskipa #1\relax
+ \ifdim \@tempskipa>\z@
+ \par \nobreak
+ \vskip \@tempskipa
+ \@afterheading
+ \else
+ \global\@noskipsectrue
+ \setDGPVthing:nn i \@ne
+ \setGALbreak:n 2
+ \setGALobject:n { \begingroup \@svsechd \endgroup
+ \unskip }
+ \@tempskipa #1\relax
+ \setDGPVdimension:nn h {-\@tempskipa}
+ \everypar{%
+ \if@noskipsec
+ \global\@noskipsecfalse
+ \else
+ \everypar{}%
+ \fi}%
+ \fi
+ \ignorespaces}
+
+\gdef\@specialoutput{%
+ \showGALcmd{@specialoutput}
+ \ifnum \outputpenalty>-\@Mii
+ \@doclearpage
+ \else
+ \GAL@ignore@next@galley
+ \ifnum \outputpenalty<-\@Miii
+ \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
+ \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
+ \else
+ \global \setbox\@holdpg \vbox{%
+ \unvbox\@holdpg
+ \unvbox\@cclv
+ \setbox\@tempboxa \lastbox
+ \unskip
+ }%
+ \@pagedp \dp\@holdpg
+ \@pageht \ht\@holdpg
+ \unvbox \@holdpg
+ \@next\@currbox\@currlist{%
+ \ifnum \count\@currbox>\z@
+ \advance \@pageht \@pagedp
+ \ifvoid\footins \else
+ \advance \@pageht \ht\footins
+ \advance \@pageht \skip\footins
+ \advance \@pageht \dp\footins
+ \fi
+ \ifvbox \@kludgeins
+ \ifdim \wd\@kludgeins=\z@
+ \advance \@pageht \ht\@kludgeins
+ \fi
+ \fi
+ \@reinserts
+ \@addtocurcol
+ \else
+ \@reinserts
+ \@addmarginpar
+ \fi
+ }\@latexbug
+ \ifnum \outputpenalty<\z@
+ \addpenalty \interlinepenalty
+ \fi
+ \fi
+ \fi
+}
+
+\def \@addtocurcol {%
+ \showGALcmd{@addtocurcol}
+ \@insertfalse
+ \@setfloattypecounts
+ \ifnum \@fpstype=8
+ \else
+ \ifnum \@fpstype=24
+ \else
+ \@flsettextmin
+ \advance \@textmin \@textfloatsheight
+ \@reqcolroom \@pageht
+ \ifdim \@textmin>\@reqcolroom
+ \@reqcolroom \@textmin
+ \fi
+ \advance \@reqcolroom \ht\@currbox
+ \ifdim \@colroom>\@reqcolroom
+ \@flsetnum \@colnum
+ \ifnum \@colnum>\z@
+ \@bitor\@currtype\@deferlist
+ \if@test
+ \else
+ \@bitor\@currtype\@botlist
+ \if@test
+ \@addtobot
+ \else
+ \ifodd \count\@currbox
+ \advance \@reqcolroom \intextsep
+ \ifdim \@colroom>\@reqcolroom
+ \global \advance \@colnum \m@ne
+ \global \advance \@textfloatsheight \ht\@currbox
+ \global \advance \@textfloatsheight 2\intextsep
+ \@cons \@midlist \@currbox
+ \addpenalty \interlinepenalty
+ \vskip \intextsep
+ \box\@currbox
+ \penalty\interlinepenalty
+ \vskip\intextsep
+ \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi
+ \outputpenalty \z@
+ \@inserttrue
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@addtotoporbot
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@insert
+ \else
+ \@resethfps
+ \@cons\@deferlist\@currbox
+ \fi
+}
+
+
+\def\@item[#1]{%
+ \showGALcmd{@item}
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+
+\DeclareRobustCommand{\LaTeX}{L\kern-.36em%
+ {\sbox\z@ T%
+ \GAL@ignore@next@galley@vbox to\ht\z@{\hbox{\check@mathfonts
+ \fontsize\sf@size\z@
+ \math@fontsfalse\selectfont
+ A}%
+ \vss}%
+ }%
+ \kern-.15em%
+ \TeX}
+\DeclareTextCommandDefault{\textunderscore}{%
+ \leavevmode \kern.06em\GAL@ignore@next@galley@vbox{\hrule\@width.3em}}
+\DeclareTextCommandDefault{\textvisiblespace}{%
+ \mbox{\kern.06em\vrule \@height.3ex}%
+ \GAL@ignore@next@galley@vbox{\hrule \@width.3em}%
+ \hbox{\vrule \@height.3ex}}
+\gdef\showhyphens#1{%
+ \setbox0\vbox{%
+ \color@begingroup
+ \everypar{}%
+ \parfillskip\z@skip\hsize\maxdimen
+ \normalfont
+ \pretolerance\m@ne\tolerance\m@ne\hbadness\z@\showboxdepth\z@\ #1%
+ \color@endgroup}}
+\catcode`\:=12
+\long\def\@imakepicbox(#1,#2)[#3]#4{%
+ \GAL@ignore@next@galley@vbox to#2\unitlength
+ {\let\mb@b\vss \let\mb@l\hss\let\mb@r\hss
+ \let\mb@t\vss
+ \@tfor\reserved@a :=#3\do{%
+ \if s\reserved@a
+ \let\mb@l\relax\let\mb@r\relax
+ \else
+ \expandafter\let\csname mb@\reserved@a\endcsname\relax
+ \fi}%
+ \mb@t
+ \hb@xt@ #1\unitlength{\mb@l #4\mb@r}%
+ \mb@b
+ \kern\z@}}
+\catcode`\:=11
+\long\def\frame#1{%
+ \leavevmode
+ \hbox{%
+ \hskip-\@wholewidth
+ \GAL@ignore@next@galley@vbox{%
+ \vskip-\@wholewidth
+ \hrule \@height\@wholewidth
+ \hbox{%
+ \vrule\@width\@wholewidth
+ #1%
+ \vrule\@width\@wholewidth}%
+ \hrule\@height\@wholewidth
+ \vskip-\@wholewidth}%
+ \hskip-\@wholewidth}}
+\def\@frameb@x#1{%
+ \@tempdima\fboxrule
+ \advance\@tempdima\fboxsep
+ \advance\@tempdima\dp\@tempboxa
+ \hbox{%
+ \lower\@tempdima\hbox{%
+ \GAL@ignore@next@galley@vbox{%
+ \hrule\@height\fboxrule
+ \hbox{%
+ \vrule\@width\fboxrule
+ #1%
+ \GAL@ignore@next@galley@vbox{%
+ \vskip\fboxsep
+ \box\@tempboxa
+ \vskip\fboxsep}%
+ #1%
+ \vrule\@width\fboxrule}%
+ \hrule\@height\fboxrule}%
+ }%
+ }%
+}
+\typeout{****~ Careful:~ there~ is~ another~ rewrite~ for~ iiiparbox~ in~ coffins!}
+
+\long\def\@iiiparbox#1#2[#3]#4#5{%
+ \leavevmode
+ \@pboxswfalse
+ \setlength\@tempdima{#4}%
+ \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
+ \ifx\relax#2\else
+ \setlength\@tempdimb{#2}%
+ \def\@parboxto{to\@tempdimb}%
+ \fi
+ \GAL@ignore@next@galley
+ \if#1b\vbox
+ \else\if #1t\vtop
+ \else\ifmmode\vcenter
+ \else\@pboxswtrue $\vcenter
+ \fi\fi\fi
+ \@parboxto{\let\hss\vss\let\unhbox\unvbox
+ \csname bm@#3\endcsname}%
+ \if@pboxsw \m@th$\fi
+ \@end@tempboxa}
+\def\@iiiminipage#1#2[#3]#4{%
+ \leavevmode
+ \@pboxswfalse
+ \setlength\@tempdima{#4}%
+ \def\@mpargs{{#1}{#2}[#3]{#4}}%
+ \setbox\@tempboxa\vbox\bgroup
+ \color@begingroup
+ \hsize\@tempdima
+ \textwidth\hsize \columnwidth\hsize
+ \@parboxrestore
+ \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
+ \let\@footnotetext\@mpfootnotetext
+ \let\@listdepth\@mplistdepth \@mplistdepth\z@
+ \@minipagerestore
+ \@setminipage}
+\long\def\@mpfootnotetext#1{%
+ \global\setbox\@mpfootins\vbox{%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+\def\@array[#1]#2{%
+ \GAL@ignore@next@galley
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi
+ \bgroup
+ \setbox\@arstrutbox\hbox{%
+ \vrule \@height\arraystretch\ht\strutbox
+ \@depth\arraystretch \dp\strutbox
+ \@width\z@}%
+ \@mkpream{#2}%
+ \edef\@preamble{%
+ \ialign \noexpand\@halignto
+ \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}%
+ \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox
+ \let\tabularnewline\\%
+%%%% \let\par\@empty
+ \let\@sharp##%
+ \set@typeset@protect
+ \lineskip\z@skip\baselineskip\z@skip
+ \ifhmode \@preamerr\z@ \@@par\fi
+ \@preamble}
+\gdef\@shortstack[#1]{%
+ \leavevmode
+ \GAL@ignore@next@galley@vbox\bgroup
+ \baselineskip-\p@\lineskip 3\p@
+ \let\mb@l\hss\let\mb@r\hss
+ \expandafter\let\csname mb@#1\endcsname\relax
+ \let\\\@stackcr
+ \@ishortstack}
+\gdef\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup}
+\gdef\@stackcr{\@ifstar\@ixstackcr\@ixstackcr}
+\gdef\@ixstackcr{\@ifnextchar[\@istackcr{\cr\ignorespaces}}
+\gdef\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces}
+\newif\if@negarg
+\gdef\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vline
+ \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi
+ \fi
+ \fi}
+\gdef\@sline{%
+ \ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg
+ \else \@negargfalse \@yyarg \@yarg \fi
+\ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi
+\ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi
+\ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi
+\setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}%
+\ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@
+ \else\let\@upordown\lower \@clnht \ht\@linechar\fi
+\@clnwd \wd\@linechar
+\if@negarg
+ \hskip -\wd\@linechar \def\reserved@a{\hskip -2\wd\@linechar}%
+\else
+ \let\reserved@a\relax
+\fi
+\@whiledim \@clnwd <\@linelen \do
+ {\@upordown\@clnht\copy\@linechar
+ \reserved@a
+ \advance\@clnht \ht\@linechar
+ \advance\@clnwd \wd\@linechar}%
+\advance\@clnht -\ht\@linechar
+\advance\@clnwd -\wd\@linechar
+\@tempdima\@linelen\advance\@tempdima -\@clnwd
+\@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar
+\if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi
+\multiply\@tempdima \@m
+\@tempcnta \@tempdima
+\@tempdima \wd\@linechar \divide\@tempcnta \@tempdima
+\@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta
+\divide\@tempdima \@m
+\advance\@clnht \@tempdima
+\ifdim \@linelen <\wd\@linechar
+ \hskip \wd\@linechar
+ \@picture@warn
+ \else\@upordown\@clnht\copy\@linechar\fi}
+\gdef\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi
+\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen
+\ifnum \@xarg <\z@ \hskip -\@linelen \fi}
+\gdef\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8%
+ \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else
+ \advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi
+ \char\@tempcnta}
+\gdef\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax
+ \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi
+ \ifnum\@tempcnta<5\relax
+ \@linelen #3\unitlength
+ \ifdim\@linelen<\z@\@badlinearg\else
+ \ifnum\@xarg =\z@ \@vvector
+ \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi
+ \fi
+ \fi
+ \else\@badlinearg\fi}
+\gdef\@hvector{\@hline\hb@xt@\z@{\@linefnt
+ \ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else
+ \hss\@getrarrow(1,0)\fi}}
+\gdef\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi}
+\gdef\@svector{\@sline
+ \@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi
+ \ifnum\@tempcnta <5%
+ \hskip -\wd\@linechar
+ \@upordown\@clnht \hbox{\@linefnt \if@negarg
+ \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}%
+ \else\@badlinearg\fi}
+\gdef\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else
+ \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta
+ -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@
+ \ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb
+ \else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64
+ \fi\fi\char\@tempcnta}
+\gdef\@getrarrow(#1,#2){\@tempcntb #2\relax
+\ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi
+\ifcase \@tempcntb\relax \@tempcnta'55 \or
+\ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta
+24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49
+\else\@tempcnta 58 \fi\fi\or
+\ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta
+24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or
+\@tempcnta #1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta -\tw@ \else
+\@tempcnta #1\relax\multiply\@tempcnta
+\sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi
+\char\@tempcnta}
+\gdef\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi}
+\gdef\@upline{%
+ \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \@linelen \@depth \z@\hss}}
+\gdef\@downline{%
+ \hb@xt@\z@{\hskip -\@halfwidth \vrule \@width \@wholewidth
+ \@height \z@ \@depth \@linelen \hss}}
+\gdef\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise
+ \@linelen \hb@xt@\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}}
+\gdef\@downvector{\@downline\lower \@linelen
+ \hb@xt@\z@{\@linefnt\char'77\hss}}
+\gdef\dashbox#1(#2,#3){\leavevmode\hb@xt@\z@{\baselineskip \z@skip
+\lineskip \z@skip
+\@dashdim #2\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt\@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else \divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(0,#3){\copy\@dashbox}%
+\put(#2,0){\hskip-\@dashdim\copy\@dashbox}%
+\put(#2,#3){\hskip-\@dashdim\box\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth
+\@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@
+\put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@
+\put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt
+\do{\copy\@dashbox\advance\@tempcnta \@ne }}%
+\@dashdim #3\unitlength
+\@dashcnt \@dashdim \advance\@dashcnt 200
+\@dashdim #1\unitlength\divide\@dashcnt \@dashdim
+\ifodd\@dashcnt \@dashdim \z@
+\advance\@dashcnt \@ne \divide\@dashcnt \tw@
+\else
+\divide\@dashdim \tw@ \divide\@dashcnt \tw@
+\advance\@dashcnt \m@ne
+\setbox\@dashbox\hbox{\hskip -\@halfwidth
+\vrule \@width \@wholewidth
+\@height \@dashdim}\put(0,0){\copy\@dashbox}%
+\put(#2,0){\copy\@dashbox}%
+\put(0,#3){\lower\@dashdim\copy\@dashbox}%
+\put(#2,#3){\lower\@dashdim\copy\@dashbox}%
+\multiply\@dashdim \thr@@
+\fi
+\setbox\@dashbox\hbox{\vrule \@width \@wholewidth
+\@height #1\unitlength}\@tempcnta\z@
+\put(0,0){\hskip -\@halfwidth \GAL@ignore@next@galley@vbox{\@whilenum \@tempcnta <\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}\@tempcnta\z@
+\put(#2,0){\hskip -\@halfwidth \GAL@ignore@next@galley@vbox{\@whilenum \@tempcnta<\@dashcnt
+\do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }%
+\vskip\@dashdim}}}\@makepicbox(#2,#3)}
+\gdef\@ovvert#1#2{\GAL@ignore@next@galley@vbox to\@ovyy{%
+ \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax
+ \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip
+ \else \kern \@ovri \kern \@ovdy \fi
+ \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip
+ \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax
+ \hbox{\char \@tempcntb}%
+ \else \kern \@ovdy \kern \@ovro \fi}}
+\catcode`\:=12
+\def\@xfloat #1[#2]{%
+ \@nodocument
+ \def \@captype {#1}%
+ \def \@fps {#2}%
+ \@onelevel@sanitize \@fps
+ \def \reserved@b {!}%
+ \ifx \reserved@b \@fps
+ \@fpsadddefault
+ \else
+ \ifx \@fps \@empty
+ \@fpsadddefault
+ \fi
+ \fi
+ \ifhmode
+ \@bsphack
+ \@floatpenalty -\@Mii
+ \else
+ \@floatpenalty-\@Miii
+ \fi
+ \ifinner
+ \@parmoderr\@floatpenalty\z@
+ \else
+ \@next\@currbox\@freelist
+ {%
+ \@tempcnta \sixt@@n
+ \expandafter \@tfor \expandafter \reserved@a
+ \expandafter :\expandafter =\@fps
+ \do
+ {%
+ \if \reserved@a h%
+ \ifodd \@tempcnta
+ \else
+ \advance \@tempcnta \@ne
+ \fi
+ \fi
+ \if \reserved@a t%
+ \@setfpsbit \tw@
+ \fi
+ \if \reserved@a b%
+ \@setfpsbit 4%
+ \fi
+ \if \reserved@a p%
+ \@setfpsbit 8%
+ \fi
+ \if \reserved@a !%
+ \ifnum \@tempcnta>15
+ \advance\@tempcnta -\sixt@@n\relax
+ \fi
+ \fi
+ }%
+ \@tempcntb \csname ftype@\@captype \endcsname
+ \multiply \@tempcntb \@xxxii
+ \advance \@tempcnta \@tempcntb
+ \global \count\@currbox \@tempcnta
+ }%
+ \@fltovf
+ \fi
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox \bgroup
+ \hsize\columnwidth
+ \@parboxrestore
+ \@floatboxreset
+}
+\catcode`\:=11
+\def\end@float{%
+ \@endfloatbox
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \@cons\@currlist\@currbox
+ \ifnum\@floatpenalty <-\@Mii
+ \penalty -\@Miv
+ \@tempdima\prevdepth
+ \GAL@ignore@next@galley@vbox{}%
+ \prevdepth\@tempdima
+ \penalty\@floatpenalty
+ \else
+ \vadjust{\penalty -\@Miv \GAL@ignore@next@galley@vbox{}\penalty\@floatpenalty}\@Esphack
+ \fi
+ \fi
+}
+\def \@xympar{%
+ \ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi
+ \setbox\@tempboxa
+ \color@vbox
+ \vbox \bgroup
+ \end@float
+ \@ignorefalse
+ \@esphack
+}
+\def \AtBeginDvi #1{%
+ \global \setbox \@begindvibox
+ \vbox{\unvbox \@begindvibox #1}%
+}
+\def\clearpage{%
+ \ifvmode
+ \ifnum \@dbltopnum =\m@ne
+ \ifdim \pagetotal <\topskip
+ \hbox{}%
+ \fi
+ \fi
+ \fi
+ \newpage
+ \write\m@ne{}%
+ \GAL@ignore@next@galley@vbox{}%
+ \penalty -\@Mi
+}
+\def \@emptycol {\GAL@ignore@next@galley@vbox{}\penalty -\@M}
+\long\def \@topnewpage [#1]{%
+ \@nodocument
+ \@next\@currbox\@freelist{}{}%
+ \global \setbox\@currbox
+ \color@vbox
+ \normalcolor
+ \vbox {%
+ \hsize\textwidth
+ \@parboxrestore
+ \col@number \@ne
+ #1%
+ \vskip -\dbltextfloatsep
+ }%
+ \color@endbox
+ \ifdim \ht\@currbox>\textheight
+ \ht\@currbox \textheight
+ \fi
+ \global \count\@currbox \tw@
+ \@tempdima -\ht\@currbox
+ \advance \@tempdima -\dbltextfloatsep
+ \global \advance \@colht \@tempdima
+ \ifx \@dbltoplist \@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \let \@dbltoplist \@empty
+ \fi
+ \@cons \@dbltoplist \@currbox
+ \global \@dbltopnum \m@ne
+ \ifdim \@colht<2.5\baselineskip
+ \@latex@warning@no@line {Optional argument of \noexpand\twocolumn
+ too tall on page \thepage}%
+ \@emptycol
+ \if@firstcolumn
+ \else
+ \@emptycol
+ \fi
+ \else
+ \global \vsize \@colht
+ \global \@colroom \@colht
+ \@floatplacement
+ \fi
+}
+\gdef\@specialoutput{%
+ \ifnum \outputpenalty>-\@Mii
+ \@doclearpage
+ \else
+ \ifnum \outputpenalty<-\@Miii
+ \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
+ \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
+ \else
+ \global \setbox\@holdpg \vbox{%
+ \unvbox\@holdpg
+ \unvbox\@cclv
+ \setbox\@tempboxa \lastbox
+ \unskip
+ }%
+ \@pagedp \dp\@holdpg
+ \@pageht \ht\@holdpg
+ \unvbox \@holdpg
+ \@next\@currbox\@currlist{%
+ \ifnum \count\@currbox>\z@
+ \advance \@pageht \@pagedp
+ \ifvoid\footins \else
+ \advance \@pageht \ht\footins
+ \advance \@pageht \skip\footins
+ \advance \@pageht \dp\footins
+ \fi
+ \ifvbox \@kludgeins
+ \ifdim \wd\@kludgeins=\z@
+ \advance \@pageht \ht\@kludgeins
+ \fi
+ \fi
+ \@reinserts
+ \@addtocurcol
+ \else
+ \@reinserts
+ \@addmarginpar
+ \fi
+ }\@latexbug
+ \ifnum \outputpenalty<\z@
+ \if@nobreak
+ \nobreak
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\def \@doclearpage {%
+ \ifvoid\footins
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage
+ \@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \else
+ \GAL@ignore@next@galley@vbox{}\clearpage
+ \fi
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi
+}
+\gdef \@makecol {%
+ \ifvoid\footins
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox \@cclv
+ \vskip-\@tempdima
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ }%
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox \@outputbox
+ \vskip -\dimen@
+ \@textbottom
+ }%
+ \fi
+ \global \maxdepth \@maxdepth
+}
+\gdef \@makespecialcolbox {%
+ \setbox\@outputbox \vbox {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox\@outputbox
+ \vskip-\dimen@
+ }%
+ \@tempdima \@colht
+ \ifdim \wd\@kludgeins>\z@
+ \advance \@tempdima -\ht\@outputbox
+ \advance \@tempdima \pageshrink
+ \setbox\@outputbox \vbox to \@colht {%
+ \unvbox\@outputbox
+ \vskip \@tempdima
+ \@textbottom
+ }%
+ \else
+ \advance \@tempdima -\ht\@kludgeins
+ \setbox \@outputbox \vbox to \@colht {%
+ \GAL@ignore@next@galley@vbox to \@tempdima {%
+ \unvbox\@outputbox
+ \@textbottom}%
+ \vss}%
+ \fi
+ {\setbox \@tempboxa \box \@kludgeins}%
+}
+\def\@outputpage{%
+\begingroup % the \endgroup is put in by \aftergroup
+ \@resetactivechars
+ \@parboxrestore
+ \let \protect \noexpand % <- this moved after parboxrestore!!!!
+ \shipout \vbox{%
+ \set@typeset@protect
+ \aftergroup \endgroup
+ \aftergroup \set@typeset@protect
+ % correct? or just restore by ending
+ % the group?
+ \if@specialpage
+ \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%
+ \fi
+ \if@twoside
+ \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot
+ \let\@themargin\oddsidemargin
+ \else \let\@thehead\@evenhead
+ \let\@thefoot\@evenfoot \let\@themargin\evensidemargin
+ \fi
+ \fi
+ \reset@font
+ \normalsize
+ \normalsfcodes
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
+ \@begindvi
+ \vskip \topmargin
+ \moveright\@themargin \vbox {%
+ \setbox\@tempboxa \vbox to\headheight{%
+ \vfil
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thehead}%
+ \color@endbox
+ }% %% 22 Feb 87
+ \dp\@tempboxa \z@
+ \box\@tempboxa
+ \vskip \headsep
+ \box\@outputbox
+ \baselineskip \footskip
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\@thefoot}%
+ \color@endbox
+ }%
+ }%
+ \global \@colht \textheight
+ \stepcounter{page}%
+ \let\firstmark\botmark
+}
+\def \@cflt{%
+ \let \@elt \@comflelt
+ \setbox\@tempboxa \vbox{}%
+ \@toplist
+ \setbox\@outputbox \vbox{%
+ \boxmaxdepth \maxdepth
+ \unvbox\@tempboxa
+ \vskip -\floatsep
+ \topfigrule
+ \vskip \textfloatsep
+ \unvbox\@outputbox
+ }%
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@toplist}%
+ \global\let\@toplist\@empty
+}
+\def\@comflelt#1{\setbox\@tempboxa
+ \vbox{\unvbox\@tempboxa\box #1\vskip\floatsep}}
+\def \@combinedblfloats{%
+ \ifx \@dbltoplist \@empty
+ \else
+ \setbox\@tempboxa \vbox{}%
+ \let \@elt \@comdblflelt
+ \@dbltoplist
+ \let \@elt \relax
+ \xdef \@freelist {\@freelist\@dbltoplist}%
+ \global\let \@dbltoplist \@empty
+ \setbox\@outputbox \vbox to\textheight
+ {%\boxmaxdepth\maxdepth %% probably not needed, CAR
+ \unvbox\@tempboxa\vskip-\dblfloatsep
+ \ifnum \@dbltopnum>\m@ne
+ \dblfigrule
+ \fi
+ \vskip \dbltextfloatsep
+ \box\@outputbox
+ }%
+ \fi
+}
+\def\@vtryfc #1{%
+ \global\setbox\@outputbox\vbox{}%
+ \let\@elt\@wtryfc
+ \@flsucceed
+ \global\setbox\@outputbox \vbox to\@colht{%
+ \vskip \@fptop
+ \vskip -\@fpsep
+ \unvbox \@outputbox
+ \vskip \@fpbot}%
+ \let\@elt\relax
+ \xdef #1{\@failedlist\@flfail}%
+ \xdef\@freelist{\@freelist\@flsucceed}}
+\def\@wtryfc #1{%
+ \global\setbox\@outputbox\vbox{%
+ \unvbox\@outputbox
+ \vskip\@fpsep
+ \box #1}}
+\def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox
+ \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
+ \if@twocolumn
+ \if@firstcolumn \@tempcnta\m@ne \fi
+ \else
+ \if@mparswitch
+ \ifodd\c@page \else\@tempcnta\m@ne \fi
+ \fi
+ \if@reversemargin \@tempcnta -\@tempcnta \fi
+ \fi
+ \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi
+ \@tempdima\@mparbottom
+ \advance\@tempdima -\@pageht
+ \advance\@tempdima\ht\@marbox
+ \ifdim\@tempdima >\z@
+ \@latex@warning@no@line {Marginpar on page \thepage\space moved}%
+ \else
+ \@tempdima\z@
+ \fi
+ \global\@mparbottom\@pageht
+ \global\advance\@mparbottom\@tempdima
+ \global\advance\@mparbottom\dp\@marbox
+ \global\advance\@mparbottom\marginparpush
+ \advance\@tempdima -\ht\@marbox
+ \global\setbox \@marbox
+ \vbox {\vskip \@tempdima
+ \box \@marbox}%
+ \global \ht\@marbox \z@
+ \global \dp\@marbox \z@
+ \kern -\@pagedp
+ \nointerlineskip
+ \hb@xt@\columnwidth
+ {\ifnum \@tempcnta >\z@
+ \hskip\columnwidth \hskip\marginparsep
+ \else
+ \hskip -\marginparsep \hskip -\marginparwidth
+ \fi
+ \box\@marbox \hss}%
+ \nointerlineskip
+ \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}}
+\def\@outputdblcol{%
+ \if@firstcolumn
+ \global \@firstcolumnfalse
+ \global \setbox\@leftcolumn \box\@outputbox
+ \else
+ \global \@firstcolumntrue
+ \setbox\@outputbox \vbox {%
+ \hb@xt@\textwidth {%
+ \hb@xt@\columnwidth {%
+ \box\@leftcolumn \hss}%
+ \hfil
+ \vrule \@width\columnseprule
+ \hfil
+ \hb@xt@\columnwidth {%
+ \box\@outputbox \hss}%
+ }%
+ }%
+ \@combinedblfloats
+ \@outputpage
+ \begingroup
+ \@dblfloatplacement
+ \@startdblcolumn
+ \@whilesw\if@fcolmade \fi
+ {\@outputpage
+ \@startdblcolumn}%
+ \endgroup
+ \fi
+}
+
+\catcode`\:=12\relax
+\endinput
+%%
+%% End of file `galley2.sty'.
diff --git a/Master/texmf-dist/tex/latex3/galley/xhj.sty b/Master/texmf-dist/tex/latex3/galley/xhj.sty
new file mode 100644
index 00000000000..b8196755c76
--- /dev/null
+++ b/Master/texmf-dist/tex/latex3/galley/xhj.sty
@@ -0,0 +1,313 @@
+%%
+%% This is file `xhj.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xhj.dtx (with options: `package,trace')
+%%
+%%
+%% $Header: /usr3/users/latex3/design/consolidation/CURRENT/RCS/xhj.dtx,v 1.8 2000/01/14 15:24:24 latex3 Exp $
+%%
+%% (C) Copyright 1999-2000 Frank Mittelbach
+%% All rights reserved.
+%%
+%% Not for general distribution. In its present form it is not allowed
+%% to put this package onto CD or an archive without consulting the
+%% the authors.
+%%
+%% This module only works in conjunction with the galley2 module.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{xhj}
+ [2000/01/14 v0.3c hyphenation & justification]
+
+%%
+\NeedsTeXFormat{LaTeX2e}[1998/12/01]
+\RequirePackage{template,xparse}
+ % be loaded afterwards !!!!
+\IgnoreWhiteSpace
+\catcode`\:=11\relax
+\def\@usefontdimen#1{\fontdimen#1\font}
+\def\fontslant {\@usefontdimen1}
+\def\fontwordspace {\@usefontdimen2}
+\def\fontwordspacestretch {\@usefontdimen3}
+\def\fontwordspaceshrink {\@usefontdimen4}
+\def\fontex {\@usefontdimen5}
+\def\fontem {\@usefontdimen6}
+\def\fontextraspace {\@usefontdimen7}
+\DeclareTemplateType{measure}{1}
+\DeclareTemplate{measure}{absolute}{1}{
+ leftmargin =l \leftmargin,
+ rightmargin =l \rightmargin,
+ }{
+ \DoParameterAssignments
+ \IfNoValueF{#1} { \setlength\leftmargin{ #1 + \@totalleftmargin } }
+ \setSGPVmeasure:nn \leftmargin {\hsize -\leftmargin -\rightmargin }
+}
+\DeclareTemplate{measure}{relative}{1}{
+ leftmargin =l \leftmargin,
+ rightmargin =l \rightmargin,
+ }{
+ \DoParameterAssignments
+ \IfNoValueF{#1} { \setlength\leftmargin{#1} }
+ \addSGPVmeasure:nn \leftmargin { -\leftmargin -\rightmargin }
+}
+\DeclareTemplateType{pshape}{0}
+\DeclareTemplate{pshape}{cutout}{0}{
+ no-page-break-boolean =s {\setGALbreak:n {-3}}{},
+ left-side-boolean =s {}{\let\shape@side\setGALrightparshape:nnn},
+ normal-lines-num =C \pshape@normalines,
+ parshape-list =f0 \pshape@parshape,
+ }{
+ \let\pshape@normalines\z@
+ \let\shape@side\setGALleftparshape:nnn
+ \DoParameterAssignments
+ \shape@side \pshape@normalines \z@ \pshape@parshape
+ }
+\DeclareInstance{pshape}{staggered}{cutout}{
+ no-page-break-boolean = true,
+ normal-lines-num = 1,
+ parshape-list = { 20pt, 40pt, 60pt },
+}
+\DeclareInstance{pshape}{ltriangle}{cutout}{
+ no-page-break-boolean = true,
+ normal-lines-num = 0,
+ parshape-list = { 60pt, 40pt, 20pt },
+}
+\DeclareInstance{pshape}{rectangle}{cutout}{
+ no-page-break-boolean = false,
+ normal-lines-num = 0,
+ parshape-list = { },
+}
+\DeclareTemplateType{justification}{0}
+\DeclareTemplate{justification}{single}{0}{
+ startskip =L \justification@a ,
+ leftskip =L \justification@b ,
+ rightskip =L \justification@c ,
+ parfillskip =L \justification@d ,
+ spaceskip =L \justification@e ,
+ xspaceskip =L \justification@f ,
+ linefillskip =L \justification@g ,
+ parindent =L \justification@h ,
+ }{
+ \def\justification@a{\z@}
+ \def\justification@b{\leftskip}
+ \def\justification@c{\rightskip}
+ \def\justification@d{\parfillskip}
+ \def\justification@e{\spaceskip}
+ \def\justification@f{\xspaceskip}
+ \def\justification@g{\justification@d}
+ \def\justification@h{\parindent}
+ \DoParameterAssignments
+ \xdef \GAL@j@
+ {{\justification@a}
+ {\justification@b}
+ {\justification@c}
+ {\justification@d}
+ {\justification@e}
+ {\justification@f}
+ {\justification@g}
+ {\justification@h}
+ }
+ \GAL@prepare@reassign:NN \GAL@j@ \GAL@j@s
+ }
+\DeclareTemplate{justification}{std}{0}{
+ startskip =L \justification@a ,
+ leftskip =L \justification@b ,
+ rightskip =L \justification@c ,
+ parfillskip =L \justification@d ,
+ spaceskip =L \justification@e ,
+ xspaceskip =L \justification@f ,
+ linefillskip =L \justification@g ,
+ parindent =L \justification@h ,
+ }
+ {
+ \def\justification@a{\z@}
+ \def\justification@b{\leftskip}
+ \def\justification@c{\rightskip}
+ \def\justification@d{\parfillskip}
+ \def\justification@e{\spaceskip}
+ \def\justification@f{\xspaceskip}
+ \def\justification@g{\justification@d}
+ \def\justification@h{\parindent}
+ \DoParameterAssignments
+ \edef \@tempa {\noexpand \setSGPVthing:nn j
+ {{\justification@a}
+ {\justification@b}
+ {\justification@c}
+ {\justification@d}
+ {\justification@e}
+ {\justification@f}
+ {\justification@g}
+ {\justification@h}
+ }
+ }
+ \@tempa
+ \expandafter \setup@paragraph@justification \GAL@j@
+}
+\DeclareTemplate{justification}{complex}{0}{
+ first-para-justification-setup =i {justification}
+ \justification@first,
+ other-para-justification-setup =i {justification}
+ \justification@other,
+ }
+ {
+ \DoParameterAssignments
+ \justification@other
+ \justification@first
+ }
+\DeclareInstance{justification}{adjust}{std}
+ {rightskip =0pt,
+ leftskip =0pt,
+ startskip =0pt,
+ parfillskip=\fill
+}
+\DeclareInstance{justification}{default}{std}
+ {rightskip =0pt,
+ leftskip =0pt,
+ startskip =0pt,
+ parfillskip=\fill
+}
+\DeclareInstance{justification}{adjust2}{std}
+ {parindent = 0pt,
+ rightskip = 0pt,
+ leftskip = 0pt,
+ startskip = 0pt,
+ parfillskip= 20pt plus 1fil
+}
+\DeclareInstance{justification}{center}{std}
+ {parindent =0pt,
+ rightskip =\fill,
+ leftskip =\fill,
+ startskip =0pt,
+ parfillskip=0pt
+}
+\DeclareInstance{justification}{centermiddle}{std}
+ {parindent =0pt,
+ rightskip =36pt plus 1fill,
+ leftskip =36pt plus 1fill,
+ startskip =-36pt plus -1fill,
+ parfillskip=-36pt plus -1fill,
+ linefillskip= 0pt,
+}
+\DeclareInstance{justification}{raggedright}{std}
+ {rightskip = \DelayEvaluation 0pt plus 2em,
+ leftskip = 0pt,
+ startskip = 0pt,
+ parfillskip= \fill,
+ spaceskip = \DelayEvaluation \fontwordspace,
+ xspaceskip = \DelayEvaluation \fontwordspace + \fontextraspace,
+}
+\DeclareInstance{justification}{flushleft}{std}
+ {rightskip =\fill,
+ leftskip =0pt,
+ startskip =0pt,
+ parfillskip=\fill,
+}
+\DeclareInstance{justification}{raggedleft}{std}
+ {leftskip = \DelayEvaluation 0pt plus 2em,
+ rightskip = 0pt,
+ startskip = 0pt,
+ parfillskip= 0pt,
+ spaceskip = \DelayEvaluation \fontwordspace,
+ xspaceskip = \DelayEvaluation \fontwordspace + \fontextraspace,
+}
+\DeclareInstance{justification}{flushright}{std}
+ {leftskip = \fill,
+ rightskip = 0pt,
+ startskip = 0pt,
+ parfillskip= 0pt,
+}
+\DeclareInstance{justification}{centerfirst}{single}
+ {parindent = 0pt,
+ rightskip = \fill,
+ leftskip = -\fill,
+ parfillskip= 0pt,
+ startskip = 0pt plus 2fill,
+ linefillskip= 0pt,
+}
+\DeclareInstance{justification}{centerfirst-adjust}{complex}
+ { first-para-justification-setup = centerfirst,
+ other-para-justification-setup = adjust
+ }
+\DeclareTemplateType{linebreak}{0}
+\DeclareTemplate{linebreak}{TeX}{0}{
+ pretolerance =c [100] \pretolerance,
+ tolerance =c [200] \tolerance,
+ linepenalty =c [10] \linepenalty,
+ binoppenalty =c [700] \binoppenalty,
+ relpenalty =c [500] \relpenalty,
+ hbadness =c [1000] \hbadness,
+ adjdemerits =c [10000] \adjdemerits,
+ doublehyphendemerits =c [10000] \doublehyphendemerits,
+ finalhyphendemerits =c [5000] \finalhyphendemerits,
+ hfuzz =l [.1pt] \hfuzz,
+ emergencystretch =l [0pt] \emergencystretch,
+}
+ {\DoParameterAssignments
+ \GAL@typeout{Now~ changing~ linebreaking}
+ }
+\DeclareInstance{linebreak}{default}{TeX}{}
+\DeclareInstance{linebreak}{fussy}{TeX}{}
+\DeclareInstance{linebreak}{sloppy}{TeX}
+ {
+ tolerance = 9999,
+ hfuzz = .5pt,
+ emergencystretch = \DelayEvaluation 3em,
+ }
+\def\fussy {\UseInstance{linebreak}{fussy}}
+\def\sloppy{\UseInstance{linebreak}{sloppy}}
+\DeclareTemplateType{hyphenation}{0}
+
+\DeclareTemplate{hyphenation}{TeX}{0}{
+ uchyph =c [1] \uchyph,
+ hyphenpenalty =c [50] \hyphenpenalty,
+ exhyphenpenalty =c [50] \exhyphenpenalty,
+ lefthyphenmin =c \lefthyphenmin,
+ righthyphenmin =c \righthyphenmin,
+}
+ {\DoParameterAssignments
+ \GAL@typeout{Now~ changing~ hyphenation}
+ }
+\newcount\@@lefthyphenmin
+\DeclareTemplate{hyphenation}{std}{0}{
+ hyphen-enable-boolean =s {\ifnum\@@lefthyphenmin>\z@
+ \lefthyphenmin\@@lefthyphenmin
+ \fi}
+ {\@@lefthyphenmin\lefthyphenmin
+ \lefthyphenmin\@M},
+ hyphen-uppercase-boolean =s {\uchyph\@ne}{\uchyph\z@},
+ hyphen-discourage-boolean=s {\hyphenpenalty\@highpenalty
+ \exhyphenpenalty\@highpenalty}{},
+ hyphen-encourage-boolean =s {\hyphenpenalty\@lowpenalty
+ \exhyphenpenalty\@lowpenalty}{},
+}
+ {\DoParameterAssignments
+ \GAL@typeout{Now~ changing~ hyphenation}
+ }
+\DeclareInstance{hyphenation}{default}{TeX}
+ {}
+\DeclareInstance{hyphenation}{off}{std}
+ {hyphen-enable-boolean = false}
+\DeclareInstance{hyphenation}{on}{std}
+ {hyphen-enable-boolean = true}
+\DeclareInstance{hyphenation}{discourage}{std}
+ {hyphen-enable-boolean = true,
+ hyphen-discourage-boolean = true}
+\DeclareTemplateType{hj}{0}
+\DeclareTemplate{hj}{std}{0}{
+ justification-setup =i {justification} [default] \hj@justification,
+ linebreak-setup =i {linebreak} [default] \hj@linebreak,
+ hyphenation-setup =i {hyphenation} [default] \hj@hyphenation,
+}
+ {\DoParameterAssignments
+ \hj@justification
+ \hj@linebreak
+ \hj@hyphenation
+ }
+\DeclareInstance{hj}{default}{std}{}
+\catcode`\:=12\relax
+\endinput
+%%
+%% End of file `xhj.sty'.