diff options
Diffstat (limited to 'Master/texmf-dist/source/latex3/galley/xhj.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex3/galley/xhj.dtx | 1924 |
1 files changed, 0 insertions, 1924 deletions
diff --git a/Master/texmf-dist/source/latex3/galley/xhj.dtx b/Master/texmf-dist/source/latex3/galley/xhj.dtx deleted file mode 100644 index 56f245782c9..00000000000 --- a/Master/texmf-dist/source/latex3/galley/xhj.dtx +++ /dev/null @@ -1,1924 +0,0 @@ -% \iffalse -%% -%% $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. -%% -%<*dtx> - \ProvidesFile{xhj.dtx} -%</dtx> -%<package>\NeedsTeXFormat{LaTeX2e} -%<package>\ProvidesPackage{xhj} -%<driver>\ProvidesFile{xhj.drv} -% \fi -% \ProvidesFile{xhj.dtx} - [2000/01/14 v0.3c hyphenation & justification] -% -% \iffalse -%<*driver> - \documentclass{ltxdoc} -%\usepackage{xlists-samples} -%\makeatletter \let\GAL@typeout\@gobble \let\GAL@show@datastructure\@gobble -% \usepackage{ldcdoc} - -\newcommand\LaTeXplus{\LaTeXe$*$} - -\newcommand\DelayEvaluation{\texttt{\textbackslash DelayEvalution} - \ignorespaces} -\newcommand\fontwordspace{\texttt{\textbackslash fontwordspace}} -\newcommand\fontextraspace{\texttt{\textbackslash fontextraspace}} - - -% next three definitions are big hacks to run the file -% without the above packages -% -\newcommand\NoValue{\texttt{\textbackslash NoValue}} - -\makeatletter -\newenvironment{TemplateInterfaceDescription}[1] - {\subsection{The Template Type `#1'}% - \begingroup - \@beginparpenalty\@M - \description - \def\TemplateArgument##1##2{\item[Arg: ##1]##2\par}% - \def\TemplateSemantics{\enddescription\endgroup - \subsubsection*{Semantics:}}% - } - {\par\bigskip} - -\newenvironment{TemplateDescription}[2] - {\subsection{The Template `#2' (type #1)}% - \subsubsection*{Attributes:}% - \begingroup - \@beginparpenalty\@M - \description - \def\TemplateKey##1##2##3##4{\item[##1 (##2)]##3% - \ifx\TemplateKey##4\TemplateKey\else -% \hskip0ptplus3em\penalty-500\hskip 0pt plus 1filll Default:~##4% - \hfill\penalty500\hbox{}\hfill Default:~##4% - \nobreak\hskip-\parfillskip\hskip0pt\relax - \fi - \par}% - \def\TemplateSemantics{\enddescription\endgroup - \subsubsection*{Semantics \& Comments:}}% - } - {\par\bigskip} - -\newenvironment{InstanceDescription}[4][xxxxxxxxxxxxxxx] - {\subsubsection{The Instance `#3' (template #2/#4)}% - \subsubsection*{Attribute values:}% - \begingroup - \@beginparpenalty\@M - \def\InstanceKey##1##2{\>\textbf{##1}\>##2\\}% - \def\InstanceSemantics{\endtabbing\endgroup - \vskip-30pt\vskip0pt - \subsubsection*{Layout description \& Comments:}}% - \tabbing - xxxx\=#1\=\kill - } - {\par\bigskip} - -\makeatother - -\newcommand\key[1]{\textbf{#1}} - - \begin{document} - \DocInput{xhj.dtx} - \end{document} -%</driver> -% \fi -% -% \CheckSum{298} -% -% \newcommand\subsubsubsection{\paragraph} -% -% \GetFileInfo{xhj.dtx} -% -% \title{The \textsf{h\&j} package\thanks{This file -% has version number \fileversion, last -% revised \filedate.}} -% \author{FMi} -% \date{\filedate} -% \maketitle -% -% \tableofcontents -% -% \bigskip -% -% \begin{abstract} -% This module contains basic templates for interfacing with the -% galley mechanism as set up by the module -% \texttt{galley2}. These templates are intended for class -% designers and are mostly usable out of the box (i.e., this is one -% of the modules where providing a suitable number of default -% instances is probably sensible since they would cover 98\% of all -% usage. In contrast the \texttt{galley2} module contains only -% low-level interfaces for -% direct manipulation of the galley mechanism which are geared -% towards package writers having special needs which are not -% fulfilled by the templates in this module. -% \end{abstract} -% -% -% -% -% \section{Introduction} -% -% In \LaTeXplus{} terminology a galley is a rectangular area which -% receives text and other material filling it from -% top.\footnote{The predominant direction depends on the writing -% system and with extensions to \TeX{} such as Omega there are -% possibilities to define galleys with a different filling direction.} -% The vertically extend of a galley is normally not restricted -% (there are exceptions); instead certain chunks are taken off the top -% of an -% already partially filled galley to form columns or similar areas -% on a page. This process is typically asynchronous but there are ways -% to control or change its behavior. -% -% Examples for galleys are `the main galley', where the continuous -% document data gets formatted into and from which columns and pages are -% constructed, and `vbox galley's, such as the body of a minipage -% environment or the body of a float (in \LaTeXe only---the new float -% mechanism for \LaTeXplus{} will employ horizontally oriented float -% bodies). The latter galleys are typically not being split after -% formatting though there can be exceptions. -% -% Low-level interfaces for setting up such galleys and the way objects -% are formatted into them are provided by the module -% \texttt{galley2}. -% -% \subsection{Formatting layers} -% -% The present module is mainly concerned with the -% formatting of text in such galleys. -% The galley mechanism provides interfaces at four different layers -% some of which can be manipulated through the templates provided by -% this module. -% -% \subsubsection{Outer galley dimensions} -% -% In the bottom layer the external dimensions of a galley are -% fixed. In most cases only the horizontal dimension is defined while -% the vertical dimension (i.e., the filling direction) remains -% unspecified. These dimensions are fixed when initiating a new galley, -% using low-level functions, and are not modifiable. The horizontal -% overall width of the current galley is available for inspection in -% the register |\hsize|.\footnote{This is going to change once there -% is a final concept for handling this part of the interface, e.g., -% the relation of \texttt{\textbackslash hsize}, -% \texttt{\textbackslash columnwidth}, and \texttt{\textbackslash -% textwidth}. The latter are actually parameters of the text-page and -% should probably not be handled as it is done in \LaTeXe{}, i.e., by -% also using \texttt{\textbackslash columnwidth} as a measure for the -% current galley width. Perhaps one should introduce a -% \texttt{\textbackslash galleywidth} parameter instead of using -% \texttt{\textbackslash hsize}.} -% There are no templates that only set variable of this layer, though -% higher level -% templates (e.g., a template for providing minipage functionality) -% will of course address this part of the galley mechanism. -% -% -% \subsubsection{Inner galley dimensions} -% -% The second layer defines the inner horizontal galley dimensions of -% the galley, i.e., the measure used for paragraph text and its -% positioning within the galley. The current measure of the galley is -% available for inspection in the register |\linewidth| and the -% indentation from the left outer margin is available in the register -% |\@totalleftmargin|.\footnote{The two registers are already -% available in \LaTeXe{} and their names have been retained to make -% it easier to use a mixture of old and new code. However at some -% point the interface should be made more uniform by either providing -% two user accessible or two user inaccessible names.} -% -% This layer can (and should) be manipulated by higher-level templates -% through template instances of the type `measure'. These templates -% make long-term changes. -% -% -% -% -% \subsubsection{Paragraph shapes} -% -% The third layer defines the paragraph shape within the measure as -% provided by the second layer. In the absence of any specification -% for that layer the paragraph shape used will be that of a -% rectangular area of the width of the current measure. -% -% For this layer we are restricted by the mechanisms offered by -% \TeX{}. This means that it is possible to define particular -% paragraph shapes such as cutouts only from the top of a paragraph -% but not relative to its bottom. -% -% This layer can (and should) be manipulated by higher-level templates -% through template instances of the type `pshape'. Templates in this -% layer typically make short-term changes only (i.e. applicable only -% to the upcoming paragraph), however templates for long-term changes -% are also permissable though none are provided right now. -% -% A future implementation of the \texttt{galley2} module is probably -% going to support pshapes spanning several paragraphs, however at the -% moment pshapes apply per paragraph only. -% -% -% \subsubsection{Text formatting within the paragraph shape} -% -% The forth (and currently final) layer deals with the paragraph -% formatting aspects such as hyphenation and justification (h\&j which -% gave the current module its name). -% -% There are several template types in this layer: `hj' is a type that -% sets all aspects of h\&j in a single template whereas the types -% `justification', `linebreak', and `hyphenation' deal with individual -% aspects. -% -% \subsection{Open issues} -% -% Several but right now most of them are discussed when describing the -% interfaces in more details below. -% -% \begin{itemize} -% \item -% The model attempts a proper separation between paragraph shapes -% (layer three) and justification (part of layer four). However, due -% to the way \TeX{} works certain paragraph shapes can only be -% accomplished by using the parameters that are normally reserved -% for justification (an example would be the famous shape used by -% |\@dottedcontentsline|, i.e., a rectangular shape with the first -% line sticking out to the left and the last line sticking out to -% the right). How to integrate such shapes on layer three needs some -% more thought. -% \item -% What does the argument to the `measure' type really signal? Always -% a relative value (to current |\@totalleftmargin|), always an -% absolute value, or a value depending on what the template makes -% out of it? Perhaps this is not that important as one can't expect -% any such document supplied value be correct for different -% designs---or is this the wrong idea? At the moment I make -% it always be a relative change to |\@totalleftmargin| independent -% of the type of template being used. -% \end{itemize} -% -% -% \section{Interfaces} -% -% \begin{TemplateInterfaceDescription}{measure} -% -% \TemplateArgument{1} -% {Indentation of the left margin overwriting the default change -% or \NoValue{} in which case the value from the template -% is used. If provide the value is \emph{always} interpreted as -% being relative to the current indentation in the galley.} -% -% \TemplateSemantics -% This template type defines the basic measure of the galley, -% i.e., the width of the lines (|\linewidth|) and their -% indentation from the left (|\@totalleftmargin|). -% -% Each template of this type has to set the above parameters -% locally to their correct value.\footnote{That part of the -% implementation in \texttt{galley2.dtx} probably needs changing.} -% -% The templates can (and in most cases do) refer to an -% external\footnote{Again that is something which may not survive -% for long. It might very well be the case that all these -% parameters need to be added to the main galley data structures.} -% parameter holding the overall nominal width of the current -% galley (|\hsize|). However it is perfectly admissible that the -% template parameters are set in a way that |\@totalleftmargin| + -% |\linewidth| exceeds this nominal width (the galley mechanism -% provides low-level calls that allow for this without producing -% an error. This way paragraphs in a galley may stick out on -% either side if desired. -% -% One could think of making also the right margin being user -% over-writable or providing something like a boolean to modify the -% meaning of the template argument---suggestions/applications -% needed.\footnote{Think!} -% -% Templates of this type make long-term changes, i.e., their -% settings remain until the next occurence of an instance of this -% type or until the galley ends or its previous settings are -% restored. As remarked in the introduction -% there is a need for saving and restoring the settings of this -% particular part of the mechanism individually. -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{measure}{relative} -% -% \TemplateKey{leftmargin}{l} -% {Additional indentation on the left for all lines} -% {none} -% -% \TemplateKey{rightmargin}{l} -% {Additional indentation on the right for all lines} -% {none} -% -% \TemplateSemantics -% This is the main template needed for defining vertically oriented -% lists and the like (at least if they are supposed to allow for -% nesting). -% -% \end{TemplateDescription} -% -% -% -% \begin{TemplateDescription}{measure}{absolute} -% -% \TemplateKey{leftmargin}{l} -% {Indentation on the left for all lines} -% {none} -% -% \TemplateKey{rightmargin}{l} -% {Indentation on the right for all lines measured from the -% nominal width of the galley (i.e., \texttt{\textbackslash -% hsize})} -% {none} -% -% \TemplateSemantics -% This template can be used in cases where one wishes to ignore -% any already existing indentations. Whether or not this has real -% applications remains to be seen. -% -% \end{TemplateDescription} -% -% -% -% -% -% \begin{TemplateInterfaceDescription}{pshape} -% -% \TemplateArgument{none} -% {---} -% -% \TemplateSemantics -% Templates of this type define the shape of the paragraph within -% the given measure of the galley, e.g., whether it has some -% special form such as a cutout one or the other side. -% -% Typically they define a shape only for the next paragraph, -% however templates that provide long term changes are also allowed. -% -% Since such special forms often require that all lines of a -% paragraph are kept together on a page these templates typically -% also define whether or not pages breaks within a paragraph are -% allowed. -% -% An interesting question is whether or not such templates should -% set (or inhibit) paragraph indentations via a template key. After -% all with cutouts on the top left such indentations are usually -% not desired.\footnote{Right now only justification templates set -% indentation but perhaps they should not, or both should, or what?} -% -% \end{TemplateInterfaceDescription} -% -% -% -% \begin{TemplateDescription}{pshape}{cutout} -% -% \TemplateKey{no-page-break-boolean}{s} -% {If true the upcoming paragraph will not be broken across a -% page. If false the breakability of the upcoming paragraph -% depends on other elements in the galley, i.e., it might still -% be forbidden to break.} -% {false} -% -% \TemplateKey{left-side-boolean}{s} -% {If true, the cutout will appear on the left otherwise it will -% appear on the right.} -% {true} -% -% \TemplateKey{normal-lines-num}{c} -% {Number of lines before the cutoff starts.} -% {0} -% -% \TemplateKey{parshape-list}{f0} -% {Comma separated list of dimensions denoting the horizontal -% size of the cutout for successive lines. If the paragraph -% contains more lines than the sum of \key{normal-lines-num} and -% the number of elements in this list then the remaining lines -% are all normal lines (i.e., cutout width 0pt) again.} -% {none} -% -% \TemplateSemantics -% This template is used to define a fixed cutout on one or the -% other side of a paragraph. It applies to the next paragraph -% only. -% -% The \key{normal-lines-num} is for convenience -% only. Alternatively one could prepend a suitable number of -% `\texttt{0pt,}'s to \key{parshape-list}. -% -% \end{TemplateDescription} -% -% -% \begin{InstanceDescription}[\textbf{no-page-break-boolean}xx] -% {pshape}{staggered}{cutout} -% -% \InstanceKey{no-page-break-boolean}{true} -% -% \InstanceKey{left-side-boolean}{true} -% -% \InstanceKey{normal-lines-num}{1} -% -% \InstanceKey{parshape-list}{20pt,40pt,60pt} -% -% \InstanceSemantics -% This instance will indent each line by an additional 20pt (up to -% the fourth line). A possible application would be a heading text -% (with a maximum number of four lines). -% This should then perhaps be combined with a special justification -% instance which does ragged right except for the last line which is -% set to full measure. -% -% \end{InstanceDescription} -% -% -% \begin{InstanceDescription}[\textbf{no-page-break-boolean}xx] -% {pshape}{ltriangle}{cutout} -% -% \InstanceKey{no-page-break-boolean}{true} -% -% \InstanceKey{left-side-boolean}{true} -% -% \InstanceKey{normal-lines-num}{0} -% -% \InstanceKey{parshape-list}{60pt,40pt,20pt} -% -% \InstanceSemantics -% This instance will produce a triangle cutout on the left upper -% corner of a paragraph. Could, for example, used together with an -% unusual heading layout~\ldots -% -% \end{InstanceDescription} -% -% -% \begin{InstanceDescription}[\textbf{no-page-break-boolean}xx] -% {pshape}{rectangle}{cutout} -% -% \InstanceKey{no-page-break-boolean}{false} -% -% \InstanceKey{left-side-boolean}{true} -% -% \InstanceKey{normal-lines-num}{0} -% -% \InstanceKey{parshape-list}{} -% -% \InstanceSemantics -% This instance can be used when a pshape is required but one just -% wants a standard regular paragraph area.\footnote{Using the cutoff -% template for this is overkill; at some point in the future this -% instance should be reimplemented.} -% -% \end{InstanceDescription} -% -% -% -% -% \begin{TemplateInterfaceDescription}{justification} -% -% \TemplateArgument{none} -% {---} -% -% \TemplateSemantics -% Templates of this type define how a paragraph text is formatted -% within the boundaries of a general paragraph shape (as defined -% through a measure (and perhaps additionally a pshape) -% template). More exactly they define whether or -% not the text should be justified at both sides or only at one -% side and in the latter case how much raggedness is desired, -% etc. See the instance examples for more details. -% -% The \key{linefillskip} in the templates below is worth -% mentioning. It defines a stretchable space that is used by -% commands that end a line prematurely in the middle of a -% paragraph, e.g., |\\| or |\newline|. In most cases what is -% needed is to fill the line with white space in exactly the same -% way as \TeX's |\parfillskip| parameter works (which is also the -% reason for the chosen default). However, for special instances -% this is not appropriate. Important is that any template of this -% type provides this key or rather provides a mechanism to -% correctly feeds the underlying data structure. -% -% Originally there have been different template types for setting -% the paragraph specs for all following paragraphs and for only -% the next one but this was combined into a single type. Whether -% or not this is the right approach remains to be seen. -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{justification}{std} -% -% \TemplateKey{startskip}{l} -% {Stretchable space added to the left of the first line in a -% paragraph (in addition to \key{leftskip}).} -% {0pt} -% -% \TemplateKey{leftskip}{l} -% {Stretchable space added to the left of every line in a -% paragraph.} -% {\texttt{\textbackslash leftskip}} -% -% \TemplateKey{rightskip}{l} -% {Stretchable space added to the right of every line in a -% paragraph.} -% {\texttt{\textbackslash rightskip}} -% -% \TemplateKey{parfillskip}{l} -% {Stretchable space added to the right of the last line in a -% paragraph (in addition to \key{rightskip}).} -% {\texttt{\textbackslash parfillskip}} -% -% \TemplateKey{spaceskip}{l} -% {Stretchable space to use between words if non-zero. Otherwise -% size for space between words is taken from the current font -% metrics.} -% {\texttt{\textbackslash spaceskip}} -% -% \TemplateKey{xspaceskip}{l} -% {Extra space to use after periods etc.~(in certain situations)} -% {\texttt{\textbackslash xspaceskip}} -% -% \TemplateKey{linefillskip}{l} -% {Space to add at the point where some command requests a -% ``carriage-return line-feed'' in the middle of a paragraph, -% e.g., the \LaTeX{} command \texttt{\textbackslash newline}.} -% {value of \key{parfillskip}} -% -% \TemplateKey{parindent}{l} -% {Non-stretchable space to be added at the beginning of a -% paragraph.} -% {\texttt{\textbackslash parindent}} -% -% \TemplateSemantics -% -% This template sets the paragraph justification for all following -% paragraph (within the normal scope, i.e., until the end of the -% galley or a new specification). -% -% The key names for this template are derived from the original -% \TeX{} primitives whenever applicable. Perhaps this is a bad -% idea as \key{startskip} and \key{parfillskip} do not go well -% together. -% -% The defaults for most keys are actually the command names of the -% original \TeX{} primitives. The intention is that something like -% \key{parindent} could be externally provided by setting -% |\parindent| for all instances which do not explicitly set it to -% some value (e.g., to 0pt in instances where paragraph -% indentation is not really appropriate). Whether this is a good -% idea remains to be seen, this probably need some radically -% different default concept. -% -% \end{TemplateDescription} -% -% -% -% -% \begin{InstanceDescription}{justification}{default}{std} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{0pt plus 1fil} -% -% \InstanceSemantics -% -% This instance is slightly special as it is internally called -% whenever a new galley is instantiated, e.g., in a minipage. Thus -% it must be defined by class. The setting above is the same as for -% the adjust instance, but of course a class might wish to change -% this, e.g., if the desired layout requires ragged right setting by -% default. -% -% \end{InstanceDescription} -% -% -% -% -% -% -% \begin{InstanceDescription}{justification}{adjust}{std} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{0pt plus 1fil} -% -% \InstanceSemantics -% -% This instance provides the standard justified paragraph setting, -% i.e., every line is justified at both sides and the final line -% is set flush left. Paragraph indentation is not set, i.e. will -% be whatever the value of |\parindent| is. -% -% \end{InstanceDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{adjust2}{std} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{20pt plus 1fil} -% -% \InstanceSemantics -% -% This is a variation of the previous instance: the difference is -% that the last line of a paragraph can never be completely -% filled. In some sense this defines a paragraph indent at the -% end. -% -% Further variations are possible, e.g., one can ensure that the -% last line always contains at least a certain amount of space. -% -% \end{InstanceDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{center}{std} -% -% \InstanceKey{parindent}{0pt} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{0pt} -% -% \InstanceSemantics -% -% This instance is an example of a layout where the paragraph -% indent is explicitly set to zero to ensure that all lines are -% properly centered. Of course even with centered lines somebody -% could think of having a paragraph indentation: if so define a -% variation of the this instance. -% -% \end{InstanceDescription} -% -% -% -% -% \begin{InstanceDescription}{justification}{centermiddle}{std} -% -% \InstanceKey{parindent}{0pt} -% -% \InstanceKey{startskip}{-36pt plus -1fill} -% -% \InstanceKey{leftskip}{36pt plus 1fill} -% -% \InstanceKey{rightskip}{36pt plus 1fill} -% -% \InstanceKey{parfillskip}{-36pt plus -1fill} -% -% \InstanceSemantics -% -% A specialized instance that sets the first line of the paragraph -% flush left, the last line flush right and the intermediate lines -% centered with at least one centimeter space at each -% side. Possible application could be two or three line headings. -% -% \end{InstanceDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{raggedright}{std} -% -% \InstanceKey{startskip}{0pt} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{\DelayEvaluation 0pt plus 2em} -% -% \InstanceKey{parfillskip}{0pt plus 1fil} -% -% \InstanceKey{spaceskip}{\DelayEvaluation \fontwordspace} -% -% \InstanceKey{xspaceskip}{\DelayEvaluation -% \fontwordspace + \fontextraspace} -% -% \InstanceSemantics -% -% This interesting instance defines a ragged right setting which -% allows for hyphenation in case the raggedness would otherwise be -% too extreme (2em in the current font are considered okay anything -% in addition will start making the line bad as far as \TeX's -% paragraph algorithm is concerned so \TeX{} will consider -% hyphenation in such cases. -% -% An unjustified setting should always contain identical word -% spaces. Since we restrict the stretchability at the right end (it is -% of the same strength as the default word space stretchability), we -% have to ensure that the word spaces to not stretch or shrink at -% all. This is achieved by forcing the \key{spaceskip} to the -% normal font word space (without any stretch). -% -% \end{InstanceDescription} -% -% -% -% -% -% -% \begin{InstanceDescription}{justification}{flushleft}{std} -% -% \InstanceKey{startskip}{0pt} -% -% \InstanceKey{leftskip}{0pt} -% -% \InstanceKey{rightskip}{0pt plus 1fill} -% -% \InstanceKey{parfillskip}{0pt plus 1fill} -% -% \InstanceSemantics -% -% In contrast to the previous instance, this instance allows for -% arbitrary short lines, i.e., a paragraph set using this instance -% will never get hyphenated unless it contains words longer than -% the line measure. -% -% As all the stretchable space will appear at the right margin -% there in no point in artifically modify the word spaces as they -% will be set at their natural size anyway. -% -% \end{InstanceDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{raggedleft}{std} -% -% \InstanceKey{startskip}{0pt} -% -% \InstanceKey{leftskip}{\DelayEvaluation 0pt plus 2em} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{0pt} -% -% \InstanceKey{spaceskip}{\DelayEvaluation \fontwordspace} -% -% \InstanceKey{xspaceskip}{\DelayEvaluation -% \fontwordspace + \fontextraspace} -% -% \InstanceSemantics -% -% This instance is the raggedleft counter part to the raggedright -% instance above. -% -% \end{InstanceDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{flushright}{std} -% -% \InstanceKey{startskip}{0pt} -% -% \InstanceKey{leftskip}{0pt plus 1fill} -% -% \InstanceKey{rightskip}{0pt} -% -% \InstanceKey{parfillskip}{0pt} -% -% \InstanceSemantics -% -% And here is the variation which is not using hyphenation unless -% there is absolutely no other alternative. -% -% \end{InstanceDescription} -% -% -% -% \begin{TemplateDescription}{justification}{single} -% -% \TemplateKey{startskip}{l} -% {Stretchable space added to the left of the first line in a -% paragraph (in addition to \key{leftskip}).} -% {0pt} -% -% \TemplateKey{leftskip}{l} -% {Stretchable space added to the left of every line in a -% paragraph.} -% {\texttt{\textbackslash leftskip}} -% -% \TemplateKey{rightskip}{l} -% {Stretchable space added to the right of every line in a -% paragraph.} -% {\texttt{\textbackslash rightskip}} -% -% \TemplateKey{parfillskip}{l} -% {Stretchable space added to the right of the last line in a -% paragraph (in addition to \key{rightskip}).} -% {\texttt{\textbackslash parfillskip}} -% -% \TemplateKey{spaceskip}{l} -% {Stretchable space to use between words if non-zero. Otherwise -% size for space between words is taken from the current font -% metrics.} -% {\texttt{\textbackslash spaceskip}} -% -% \TemplateKey{xspaceskip}{l} -% {Extra space to use after periods etc.~(in certain situations)} -% {\texttt{\textbackslash xspaceskip}} -% -% \TemplateKey{linefillskip}{l} -% {Space to add at the point where some command requests a -% ``carriage-return line-feed'' in the middle of a paragraph, -% e.g., the \LaTeX{} command \texttt{\textbackslash newline}.} -% {value of \key{parfillskip}} -% -% \TemplateKey{parindent}{l} -% {Non-stretchable space to be added at the beginning of a -% paragraph.} -% {\texttt{\textbackslash parindent}} -% -% \TemplateSemantics -% -% This template is exactly the same as the std one, except that it -% applies only to the next paragraph after which the previous -% setting will become active again. For an explanation of the keys -% see the std template description. -% -% It is not clear whether this approach makes much -% sense. See comments below. -% -% \end{TemplateDescription} -% -% -% -% -% -% \begin{InstanceDescription}{justification}{centerfirst}{single} -% -% \InstanceKey{startskip}{0pt plus 2fill} -% -% \InstanceKey{leftskip}{0pt plus -1fill} -% -% \InstanceKey{rightskip}{0pt plus 1fill} -% -% \InstanceKey{parfillskip}{0pt} -% -% \InstanceKey{linefillskip}{0pt} -% -% \InstanceSemantics -% -% This instance centers the first line of a paragraph and sets all -% remaining lines as a solid block (including the last line). This -% is a rather specialized justification method which relies on some -% peculiar features of the \TeX's internal handling of stretchable -% space. It is not possible to control the amount of white space on -% the first line (other than forcing it to be centered) with the -% controls available. Anything further needs manual intervention by -% the user. -% -% In a similar fashion centering of the last line could be achieved -% (by setting \key{parfillskip} rather than \key{startskip}. -% -% \end{InstanceDescription} -% -% -% -% -% -% -% -% \begin{TemplateDescription}{justification}{complex} -% -% \TemplateKey{first-para-justification-setup}{i} -% {Justification setup for the first paragraph of a sequence.} -% {none} -% -% \TemplateKey{other-para-justification-setup}{i} -% {Justification setup for the remaining paragraphs in the sequence} -% {none} -% -% \TemplateSemantics -% -% This template allows to specify a different justification setup -% for the first paragraph of a sequence and its remaining -% paragraphs. Due to the implementation it is currently required -% that the key \key{first-para-justification-setup} receives an -% instance defined through the template `single' or more exactly -% through a template that modifies the justification setup only for -% a single paragraph. Otherwise all paragraphs in the sequence will -% be formatted in the same way (i.e., the second key would have no -% effect). -% -% This is largely due to the fact that the implementation previously -% contained different template types for local and `global' changes -% to the justification.\footnote{Better concept needed! Perhaps the -% coding in galley2 needs changing in this area.} -% -% -% \end{TemplateDescription} -% -% -% -% -% \begin{InstanceDescription}[\textbf{other-para-justification-setup}xx] -% {justification}{centerfirst-adjust}{complex} -% -% \InstanceKey{first-para-justification-setup}{centerfirst} -% -% \InstanceKey{other-para-justification-setup}{adjust} -% -% \InstanceSemantics -% -% This instance is an example for a paragraph justification where -% the first and the remaining paragraphs are handled differently: -% the first paragraph will get a centered first line (with the -% remaining lines being set as a squared block and any additional -% paragraph will be justified. A common use for such a -% layout would be table captions. -% -% \end{InstanceDescription} -% -% -% -% -% -% -% -% -% -% -% \begin{TemplateInterfaceDescription}{hyphenation} -% -% \TemplateArgument{none} -% {---} -% -% \TemplateSemantics -% -% Templates of this type define whether or not hyphenation is -% attempted for upcoming paragraphs in the galley and if hyphenation -% is allowed whether it should be encouraged (to support better -% justification) or whether it should be only used if justification -% would get too bad without it.\footnote{There are a few conceptual -% questions: should templates of this type set anything like -% \key{hyphenpenalty} or would this be better handled in the -% linebreak template type and this template type only be used to set -% hyphenation on/off? In case of the latter is it needed as a -% separate type or should it be added to some other type?} -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{hyphenation}{TeX} -% -% \TemplateKey{uchyph}{c} -% {If positive allow hyphenation of words starting with an -% uppercase letter.} -% {1} -% -% \TemplateKey{hyphenpenalty}{c} -% {} -% {50} -% -% \TemplateKey{exhyphenpenalty}{c} -% {} -% {50} -% -% \TemplateKey{lefthyphenmin}{c} -% {} -% {leave unchanged} -% -% \TemplateKey{righthyphenmin}{c} -% {} -% {leave unchanged} -% -% \TemplateSemantics -% -% Keys are named like the \TeX{} primitives. As I remarked -% earlier, perhaps \key{hyphenpenalty} and \key{exhyphenpenalty} -% should be moved to the linebreak templates. -% -% Also an open question is the keys -% \key{left/righthyphenmin}. Their minimum values are actually a -% feature of the current language or more exactly a feature of the -% hyphenation patterns in force, but on the other hand one can -% increase their values without harm and especially by setting -% them to extremely high values one can disable hyphenation -% altogether. So how should this be handled? -% -% \end{TemplateDescription} -% -% -% -% \begin{TemplateDescription}{hyphenation}{std} -% -% \TemplateKey{hyphen-enable-boolean}{s} -% {If false disables hyphenation} -% {none} -% -% \TemplateKey{hyphen-uppercase-boolean}{s} -% {If positive allows hyphenation of words starting with an -% uppercase letter.} -% {none} -% -% \TemplateKey{hyphen-discourage-boolean}{s} -% {Sets penalties for breaking a line at a discretionary to a -% higher value. Only relevant if \key{hyphen-enable-boolean} is -% set to true.} -% {none} -% -% \TemplateKey{hyphen-encourage-boolean}{s} -% {Sets penalties for breaking a line at a discretionary to a -% higher value. Only relevant if \key{hyphen-enable-boolean} is -% set to true.} -% {none} -% -% \TemplateSemantics -% -% Better or worse than the TeX version? In any case it remains a -% question of whether the line breaking parts should be set in a -% template like this. -% -% \end{TemplateDescription} -% -% -% -% -% -% -% \begin{TemplateInterfaceDescription}{linebreak} -% -% \TemplateArgument{none} -% {---} -% -% \TemplateSemantics -% -% This template type determines the line breaking behavior of the -% \TeX{} machinery, with the exception of whether or not to -% hyphenate (certain) words. It could be considered to moved the -% parameters related to breaking up math formulas to a separate -% type. -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{linebreak}{TeX} -% -% \TemplateKey{pretolerance}{c} -% {Maximum tolerance allowed for individual lines to break the -% paragraph without attempting hyphenation.} -% {100} -% -% \TemplateKey{tolerance}{c} -% {Maximum tolerance allowed for individual lines when breaking a -% paragraph while attempting hyphenation (if this limit can't be -% met \key{emergencystretch} comes into play.} -% {200} -% -% \TemplateKey{linepenalty}{c} -% {Extra penalty charged per line in the paragraph. By making -% this penalty higher \TeX{} will try harder to produce compact -% paragraphs.} -% {10} -% -% \TemplateKey{binoppenalty}{c} -% {Penalty charged if an inline math formula is broken at a -% binary operator.} -% {700} -% -% \TemplateKey{relpenalty}{c} -% {Penalty charged if an inline math formula is broken at a -% relational symbol.} -% {500} -% -% \TemplateKey{hbadness}{c} -% {Boundary that if exceeded will cause \TeX{} to report an -% underfull line.} -% {1000} -% -% \TemplateKey{adjdemerits}{c} -% {Extra demerit charge if two visually incompatible lines follow -% each other.} -% {10000} -% -% \TemplateKey{doublehyphendemerits}{c} -% {Extra demerit charge of two (or more) lines in succession end -% in a hyphen.} -% {10000} -% -% \TemplateKey{finalhyphendemerits}{c} -% {Extra demerit charge if the second last line is hyphenated.} -% {5000} -% -% \TemplateKey{hfuzz}{l} -% {Boundary below overfull lines are not reported.} -% {.1pt} -% -% \TemplateKey{emergencystretch}{l} -% {Complicated --- I write up the explanation at some other day :-)} -% {0pt} -% -% \TemplateSemantics -% Keys are named like the \TeX{} primitives. As I remarked -% earlier, perhaps \key{hyphenpenalty} and \key{exhyphenpenalty} -% from the hyphenation template -% should be moved to the linebreak templates. -% -% -% \end{TemplateDescription} -% -% -% -% -% -% -% \begin{TemplateInterfaceDescription}{hj} -% -% \TemplateArgument{none} -% {---} -% -% \TemplateSemantics -% Often certain combinations of justification, line breaking and -% hyphenation settings are used together. For those case it might -% be desirable to be able to identify these settings with a single -% name. The hj type provides for this. It is supposed to set the -% complete ``micro typography'' setting concerning paragraphs, -% i.e., everything that happens within the outer form as defined by -% the measure and/or pshape templates. -% -% Whether this template type is actually needed remains to be -% seen. Clearly everywhere where it gets applied one could apply -% individually templates of type justification, linebreak, and -% hyphenation. -% -% Right now the low-level galley interface uses an instance of this -% type (with the name ``default'') to initialize a new -% galley. -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{hj}{std} -% -% \TemplateKey{justification-setup}{i} -% {Instance specifying the justification used.} -% {\texttt{default}} -% -% \TemplateKey{linebreak-setup}{i} -% {Instance specifying the line breaking parameters} -% {\texttt{default}} -% -% \TemplateKey{hyphenation-setup}{i} -% {Instance specifying the hyphenation parameter used.} -% {\texttt{default}} -% -% \TemplateSemantics -% This is the shortcut template as discussed before. One could -% think of other templates that do set the parameters using a large -% number keys (\TeX{} style, for example) --- whether this -% makes sense~\ldots -% -% \end{TemplateDescription} -% -% - -% \begin{InstanceDescription}[\textbf{justification-setup}xx] -% {hj}{default}{std} -% -% \InstanceKey{justification-setup}{default} -% -% \InstanceKey{linebreak-setup}{default} -% -% \InstanceKey{hyphenation-setup}{default} -% -% \InstanceSemantics -% -% This instance is used when initializing new galleys. It is in -% fact slightly faster to run |\UseInstance{hj}{default}| compared -% to three calls to |\UseInstance| for the individual template -% instances.\footnote{This is because we avoid the overhead of -% \texttt{\textbackslash UseInstance} (the keys of type \texttt{i} -% are optimized in this respect.} -% -% \end{InstanceDescription} -%% -% -% -% -% \StopEventually{} -% -% \section{Implementation} -% -% Set up certain defaults including to ignore white space -% within the body of this package. \LaTeXe{} release needs to be -% recent because of changing some bits of the |\parbox| handling below. -% \begin{macrocode} -%<*package> -\NeedsTeXFormat{LaTeX2e}[1998/12/01] -% \end{macrocode} -% -% \begin{macrocode} -\RequirePackage{template,xparse} -% \RequirePackage{galley2} % this is required but needs to - % be loaded afterwards !!!! -% \end{macrocode} -% -% The primitives of the galley mechanism currently have ``:'' in their -% names so\ldots -% \begin{macrocode} -\IgnoreWhiteSpace -\catcode`\:=11\relax -% \end{macrocode} -% -% -% \subsection{Using Font Dimensions} -% -% Some helper functions to access information in a tfm file. -% They do not really belong here but right now we don't have a place -% for them. -% \begin{macro}{\@usefontdimen} -% A shorthand: -% \begin{macrocode} -\def\@usefontdimen#1{\fontdimen#1\font} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\fontslant} -% \begin{macro}{\fontwordspace} -% \begin{macro}{\fontwordspacestretch} -% \begin{macro}{\fontwordspaceshrink} -% \begin{macro}{\fontex} -% \begin{macro}{\fontem} -% \begin{macro}{\fontextraspace} -% The following commands access dimension of the current font, -% e.g., |\fontwordspace| gives the width of a space between words -% in the current font. Typically these commands have to be used -% together with |\DelayEvaluation| so that they are applied at -% runtime rather than during the declaration of template -% instances. -% \begin{macrocode} -\def\fontslant {\@usefontdimen1} -\def\fontwordspace {\@usefontdimen2} -\def\fontwordspacestretch {\@usefontdimen3} -\def\fontwordspaceshrink {\@usefontdimen4} -\def\fontex {\@usefontdimen5} -\def\fontem {\@usefontdimen6} -\def\fontextraspace {\@usefontdimen7} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% -% -% \subsection{Templates for the second layer} -% -% \subsubsection{The template type `measure'} -% -% The `measure' type takes one argument (left margin or -% |\NoValue|), see discussion above. -% \begin{macrocode} -\DeclareTemplateType{measure}{1} -% \end{macrocode} -% -% \begin{macrocode} -\DeclareTemplate{measure}{absolute}{1}{ - leftmargin =l \leftmargin, - rightmargin =l \rightmargin, - }{ - \DoParameterAssignments -% \end{macrocode} -% -% User provided left margin is always relative to current -% indentation even if template does provide absolute values. -% \begin{macrocode} - \IfNoValueF{#1} { \setlength\leftmargin{ #1 + \@totalleftmargin } } - \setSGPVmeasure:nn \leftmargin {\hsize -\leftmargin -\rightmargin } -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareTemplate{measure}{relative}{1}{ - leftmargin =l \leftmargin, - rightmargin =l \rightmargin, - }{ - \DoParameterAssignments - \IfNoValueF{#1} { \setlength\leftmargin{#1} } - \addSGPVmeasure:nn \leftmargin { -\leftmargin -\rightmargin } -} -% \end{macrocode} -% -% -% -% \subsection{Templates for the third layer} -% -% \subsubsection{The template type `pshape'} -% -% The template type `pshape' right now is mostly an interface to -% \TeX's |\parshape| primitive. This is probably going to be extended. -% -% \begin{macrocode} -\DeclareTemplateType{pshape}{0} -% \end{macrocode} -% -% -% \begin{macrocode} -\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 - } -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{pshape}{staggered}{cutout}{ - no-page-break-boolean = true, - normal-lines-num = 1, - parshape-list = { 20pt, 40pt, 60pt }, -} -% \end{macrocode} -% -% -% -% \begin{macrocode} -\DeclareInstance{pshape}{ltriangle}{cutout}{ - no-page-break-boolean = true, - normal-lines-num = 0, - parshape-list = { 60pt, 40pt, 20pt }, -} -% \end{macrocode} -% -% The next instance provides a ``noop'' or ``regular'' pshape instance, -% i.e., one -% that can be applied when a template requests to set up a pshape but -% the standard rectangular is desired (of course using using the -% cutout template for this task is very very inefficient so at some -% point this should be done differently). -% -% \begin{macrocode} -\DeclareInstance{pshape}{rectangle}{cutout}{ - no-page-break-boolean = false, - normal-lines-num = 0, - parshape-list = { }, -} -% \end{macrocode} -% -% -% \subsection{Templates for the forth layer} -% -% \subsubsection{The template type `justification'} -% -% How we justify the text within the measure: -% \begin{macrocode} -\DeclareTemplateType{justification}{0} -% \end{macrocode} -% -% -% \begin{macrocode} -\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 -% \end{macrocode} -% Next is a written out form of |\appendtoDGPVthing:nx| (more or less) -% \begin{macrocode} - \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 - } -% \end{macrocode} -% -% -% \begin{macrocode} -\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 -% \end{macrocode} -% \begin{macrocode} - \expandafter \setup@paragraph@justification \GAL@j@ -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareTemplate{justification}{complex}{0}{ - first-para-justification-setup =i {justification} - \justification@first, - other-para-justification-setup =i {justification} - \justification@other, - } - { - \DoParameterAssignments -% long term changes first! - \justification@other - \justification@first - } -% \end{macrocode} -% -% -% -% And some instances for testing \ldots -% \begin{macrocode} -\DeclareInstance{justification}{adjust}{std} - {rightskip =0pt, - leftskip =0pt, - startskip =0pt, - parfillskip=\fill -} -% \end{macrocode} -% -% -% -% Another name for the above: -% \begin{macrocode} -\DeclareInstance{justification}{default}{std} - {rightskip =0pt, - leftskip =0pt, - startskip =0pt, - parfillskip=\fill -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{adjust2}{std} - {parindent = 0pt, - rightskip = 0pt, - leftskip = 0pt, - startskip = 0pt, - parfillskip= 20pt plus 1fil -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{center}{std} - {parindent =0pt, - rightskip =\fill, - leftskip =\fill, - startskip =0pt, - parfillskip=0pt -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{centermiddle}{std} - {parindent =0pt, - rightskip =36pt plus 1fill, - leftskip =36pt plus 1fill, - startskip =-36pt plus -1fill, - parfillskip=-36pt plus -1fill, - linefillskip= 0pt, -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{raggedright}{std} - {rightskip = \DelayEvaluation 0pt plus 2em, - leftskip = 0pt, - startskip = 0pt, - parfillskip= \fill, - spaceskip = \DelayEvaluation \fontwordspace, - xspaceskip = \DelayEvaluation \fontwordspace + \fontextraspace, -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{flushleft}{std} - {rightskip =\fill, - leftskip =0pt, - startskip =0pt, - parfillskip=\fill, -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{raggedleft}{std} - {leftskip = \DelayEvaluation 0pt plus 2em, - rightskip = 0pt, - startskip = 0pt, - parfillskip= 0pt, - spaceskip = \DelayEvaluation \fontwordspace, - xspaceskip = \DelayEvaluation \fontwordspace + \fontextraspace, -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{flushright}{std} - {leftskip = \fill, - rightskip = 0pt, - startskip = 0pt, - parfillskip= 0pt, -} -% \end{macrocode} -% -% -% \begin{macrocode} -% this does now work: -\DeclareInstance{justification}{centerfirst}{single} - {parindent = 0pt, - rightskip = \fill, - leftskip = -\fill, - parfillskip= 0pt, - startskip = 0pt plus 2fill, - linefillskip= 0pt, -} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{justification}{centerfirst-adjust}{complex} - { first-para-justification-setup = centerfirst, - other-para-justification-setup = adjust - } -% \end{macrocode} -% -% -% -% \subsubsection{The template `linebreak'} -% -% How we attempt to break the paragraph into lines: -% \begin{macrocode} -\DeclareTemplateType{linebreak}{0} -% \end{macrocode} -% -% -% \begin{macrocode} -\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 -%<*trace> - \GAL@typeout{Now~ changing~ linebreaking} -%</trace> - } -% \end{macrocode} -% -% -% -% -% -% \begin{macrocode} -\DeclareInstance{linebreak}{default}{TeX}{} -\DeclareInstance{linebreak}{fussy}{TeX}{} -\DeclareInstance{linebreak}{sloppy}{TeX} - { - tolerance = 9999, - hfuzz = .5pt, - emergencystretch = \DelayEvaluation 3em, - } -% \end{macrocode} -% -% -% \begin{macro}{\fussy} -% \begin{macro}{\sloppy} -% Two old friends from \LaTeX: -% \begin{macrocode} -\def\fussy {\UseInstance{linebreak}{fussy}} -\def\sloppy{\UseInstance{linebreak}{sloppy}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% -% -% -% \subsubsection{The template type `hyphenation'} -% -% How do we handle the question of hyphenation: -% \begin{macrocode} -\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 -%<*trace> - \GAL@typeout{Now~ changing~ hyphenation} -%</trace> - } -% \end{macrocode} -% -% -% -% -% -% \begin{macrocode} -\newcount\@@lefthyphenmin -% \end{macrocode} -% -% -% \begin{macrocode} -\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 -%<*trace> - \GAL@typeout{Now~ changing~ hyphenation} -%</trace> - } -% \end{macrocode} -% -% -% -% -% -% \begin{macrocode} -\DeclareInstance{hyphenation}{default}{TeX} - {} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{hyphenation}{off}{std} - {hyphen-enable-boolean = false} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{hyphenation}{on}{std} - {hyphen-enable-boolean = true} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{hyphenation}{discourage}{std} - {hyphen-enable-boolean = true, - hyphen-discourage-boolean = true} -% -%\ShowInstance{hyphenation}{off} -%\ShowInstance{hyphenation}{discourage} -% \end{macrocode} -% -% -% -% \subsubsection{The template type `hj'} -% -% \begin{macrocode} -\DeclareTemplateType{hj}{0} -% \end{macrocode} -% -% -% \begin{macrocode} -\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 - } -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{hj}{default}{std}{} -% \end{macrocode} -% -% -% \begin{macrocode} -%\ShowInstance{hj}{default} -% \end{macrocode} -% -% -% \begin{macrocode} -\catcode`\:=12\relax -\endinput -% \end{macrocode} -% -% \begin{macrocode} -%</package> -% \end{macrocode} -% -% -% \Finale -% -% \endinput -% -% -% -% \subsection{The template `pagebreak'} -% -% -% -% The rest doesn't belong here but i've already set it up I have to -% keep it somewhere until work on the page builder actually -% starts---so why not in this place. -% -% \begin{TemplateInterfaceDescription}{pagebreak} -% -% \TemplateArgument{1} -% {none} -% -% \TemplateSemantics -% -% \end{TemplateInterfaceDescription} -% -% -% \begin{TemplateDescription}{pagebreak}{TeX} -% -% \TemplateKey{clubpenalty}{c} -% {} -% {150} -% -% \TemplateKey{widowpenalty}{c} -% {} -% {150} -% -% \TemplateKey{displaywidowpenalty}{c} -% {} -% {50} -% -% \TemplateKey{predisplaypenalty}{c} -% {} -% {10000} -% -% \TemplateKey{postdisplaypenalty}{c} -% {} -% {0} -% -% \TemplateKey{brokenpenalty}{c} -% {} -% {100} -% -% \TemplateKey{interlinepenalty}{c} -% {} -% {0} -% -% \TemplateKey{vbadness}{c} -% {} -% {1000} -% -% \TemplateKey{vfuzz}{l} -% {} -% {.1pt} -% -% \TemplateSemantics -% -% \end{TemplateDescription} -% -% -% -% -% \begin{macrocode} -\DeclareTemplateType{pagebreak}{0} -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareTemplate{pagebreak}{TeX}{0}{ - clubpenalty =c [150] \clubpenalty, - widowpenalty =c [150] \widowpenalty, - displaywidowpenalty =c [50] \displaywidowpenalty, - predisplaypenalty =c [10000] \predisplaypenalty, - postdisplaypenalty =c [0] \postdisplaypenalty, - brokenpenalty =c [100] \brokenpenalty, - interlinepenalty =c [0] \interlinepenalty, -% - vbadness =c [1000] \vbadness, - vfuzz =l [.1pt] \vfuzz, -} - {\DoParameterAssignments -%<*trace> - \GAL@typeout{Now~ changing~ pagebreaking} -%</trace> - } -% \end{macrocode} -% -% -% \begin{macrocode} -\DeclareInstance{pagebreak}{default}{TeX}{} -% \end{macrocode} -% -% -% -% -% -% -% -% -% \begin{TemplateInterfaceDescription}{} -% -% \TemplateArgument{1} -% {} -% -% \TemplateSemantics -% -% \end{TemplateInterfaceDescription} -% -% |