texlive[53365] Master/texmf-dist: ulem (10jan20)

commits+karl at tug.org commits+karl at tug.org
Fri Jan 10 22:42:03 CET 2020


Revision: 53365
          http://tug.org/svn/texlive?view=revision&revision=53365
Author:   karl
Date:     2020-01-10 22:42:03 +0100 (Fri, 10 Jan 2020)
Log Message:
-----------
ulem (10jan20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/ulem/README
    trunk/Master/texmf-dist/doc/generic/ulem/ulem.ltx
    trunk/Master/texmf-dist/doc/generic/ulem/ulem.pdf
    trunk/Master/texmf-dist/tex/generic/ulem/ulem.sty

Modified: trunk/Master/texmf-dist/doc/generic/ulem/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/ulem/README	2020-01-10 21:41:35 UTC (rev 53364)
+++ trunk/Master/texmf-dist/doc/generic/ulem/README	2020-01-10 21:42:03 UTC (rev 53365)
@@ -5,7 +5,7 @@
   A declaration of \normalem (or the \usepackage option "normalem") restores 
   the normal \em and \emph behavior.
 
-  Copyright 1989-2011 by Donald Arseneau (Vancouver, Canada; asnd at triumf.ca)
+  Copyright 1989-2019 by Donald Arseneau (Vancouver, Canada; asnd at triumf.ca)
 
   This software may be freely transmitted, reproduced, or modified for any
   purpose provided that this copyright notice is left intact.  

Modified: trunk/Master/texmf-dist/doc/generic/ulem/ulem.ltx
===================================================================
--- trunk/Master/texmf-dist/doc/generic/ulem/ulem.ltx	2020-01-10 21:41:35 UTC (rev 53364)
+++ trunk/Master/texmf-dist/doc/generic/ulem/ulem.ltx	2020-01-10 21:42:03 UTC (rev 53365)
@@ -2,9 +2,9 @@
 %  ulem.ltx   Manual for ulem.sty
 %
 %
-%  Copyright (c) 1989-2011 by Donald Arseneau
+%  Copyright (c) 1989-2019 by Donald Arseneau
 %
-%  Version date 2011/03/18
+%  Version date 2019/11/18
 %
 \documentclass[12pt]{ltxdoc}
 \addtolength{\textwidth}{1cm}
@@ -15,7 +15,7 @@
 \hyphenation{normalem uwforbf ulforem}
 \title{The ulem package:\\ underlining for emphasis}
 \author{Donald Arseneau\\ asnd at triumf.ca}
-\date{2011/03/18}
+\date{2019/11/18}
 \begin{document}
 
 \maketitle
@@ -46,7 +46,7 @@
 
 
 \begin{footnotesize}
-\noindent The ulem package is Copyright \copyright\ 1989--2011 by 
+\noindent The ulem package is Copyright \copyright\ 1989--2019 by 
 Donald Arseneau (Vancouver, Canada).\\
 The package (ulem.sty) and this documentation (ulem.ltx, ulem.pdf) may be 
 freely transmitted, reproduced, or modified for any purpose provided that the
@@ -104,9 +104,8 @@
 
 You can define your own styles of overprinting or underlining by using
 the \cs{markoverwith} command in the definition of your new command.
-The definition should be something like:\\[3pt]
-\indent
- \cs{newcommand}\cs{cmd}|{|\cs{bgroup} \cs{markoverwith}|{|\meta{something}|}|\cs{ULon}|}|\\[3pt]
+The definition should be something like:\\[6pt]
+ \cs{newcommand}\cs{cmd}|{|\cs{bgroup} \meta{settings}\cs{markoverwith}|{|\meta{something}|}|\cs{ULon}|}|\\[8pt]
 The `\meta{something}' can be as simple as a single character, or as complex as
 you can keep track of; it will likely contain some repositioning commands, perhaps
 \cs{raisebox}.
@@ -127,18 +126,20 @@
 by issuing a proper \cs{useunder} declaration:\\[3pt]
  \cs{useunder}|{|\meta{underlinecommand}|}{|\meta{fontdeclaration}|}{|\meta{fontcommand}|}|\\[3pt]
 e.g., |\useunder{\uuline}{\bfseries}{\textbf}| gives a double underline
-instead of bold face in \LaTeX. 
+instead of bold face in \LaTeX\ (but note the problem explained next).
 
 The commands \cs{normalem} and \cs{ULforem} respectively disable and enable
 underlining for \cs{em}/\cs{emph}, and so do the \cs{usepackage}
 options [normalem] and [ULforem]. There is also the \cs{usepackage} 
-option [UWforbf] to replace boldface with a wavey underline.  These features
-use the \cs{useunder} command internally.  UWforbf does handle bold in 
-math mode, in a limited way, but it doesn't work in section titles,
-unfortunately, because the titles are not delimited by explicit braces when
-printed by the \cs{section} command.  Currently under UWforbf the \cs{bfseries}
+option [UWforbf] to replace boldface from \cs{textbf} with a wavey underline.
+These features use the \cs{useunder} command internally.
+UWforbf specifically employs
+\cs{useunder}|{|\cs{uwave}|}|\allowbreak|{|\cs{bf}|}|\allowbreak|{|\cs{textbf}|}|,
+so the \cs{bfseries}
 command still produces bold face, but \cs{bf} makes an 
-under-wave\footnote{%% no verbatim in footnotes
+under-wave (if \cs{bf} is defined at all). That is
+because section title formatting typically uses \cs{bfseries} not delimited by
+braces, which would give errors for \cs{uwave}.\footnote{%% no verbatim in footnotes
 To get under-waved section titles (in ordinary \LaTeX\ classes) you could define:\\
 \texttt{\string\renewcommand\string\@seccntformat[1]\string{\string\uwave
 \string{\string\csname\ the\#1\string\endcsname\string}\string\hskip 1em\string}}\\
@@ -145,8 +146,7 @@
 and later specify 
 \texttt{\string\section[...]\string{\string\uwave\string{...\string}\string}}. 
 But you don't want to enter that swamp.}
-(if |\bf| is defined at all).
-In plain \TeX\ there is |\bf| but no \cs{textbf} so you could say |\useunder{\UWave}{\bf}{}|.
+In plain \TeX\ there is \cs{bf} but no \cs{textbf} so you could say |\useunder{\uwave}{\bf}{}|.
 
 Some commands, such as |\\| and \cs{hskip} are given special treatment to
 work within uline, but others are not.  Support for others can sometimes 
@@ -157,7 +157,7 @@
 should include the test `|\ifx\ \LA at space|'.  For example, support for 
 \cs{marginpar} is added through the hook mechanism.
 
-All the underlining commands are robust (self-protecting) in \LaTeX.
+All the underlining commands are robust in \LaTeX.
 
 
 \section{Complications}

Modified: trunk/Master/texmf-dist/doc/generic/ulem/ulem.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/ulem/ulem.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ulem/ulem.sty	2020-01-10 21:41:35 UTC (rev 53364)
+++ trunk/Master/texmf-dist/tex/generic/ulem/ulem.sty	2020-01-10 21:42:03 UTC (rev 53365)
@@ -1,5 +1,5 @@
 %
-%  U L E M . S T Y       [2012-05-18]
+%  U L E M . S T Y       [2019-11-18]
 %
 %  The ulem package provides various types of underlining that can stretch
 %  between words and be broken across lines in LaTeX or plain TeX.
@@ -21,7 +21,7 @@
 %
 %    {\em phasized\/}  | In LaTeX, by default, these are underlined; use
 %    \emph{asized}     | \normalem or [normalem] to restore italics
-%    \useunder{\uwave}{\bfseries}{\textbf}
+%    \useunder{\uwave}{\bf}{\textbf}
 %                        use wavy underline in place of bold face
 %    Use \markoverwith for defining new types of underlining.
 %
@@ -40,7 +40,13 @@
 \chardef\ULthickness\catcode\string`\@ % hold catcode temporarily
 \catcode\string`\@=11
 
-\def\uline{\relax \ifmmode\expandafter\underline 
+% \UL at protected = \protected, if available, else \relax
+
+\begingroup
+\global\expandafter\let\expandafter\UL at protected\csname protected\endcsname
+\endgroup
+
+\UL at protected\def\uline{\relax \ifmmode\expandafter\underline 
            \else \bgroup\expandafter\ULset\fi}
 
 \newbox\UL at box
@@ -47,13 +53,10 @@
 \newbox\UL at hyphenbox
 \newskip\UL at skip
 \newtoks\UL at hook
-
-\newdimen\UL at height
-
+\newdimen\UL at height \UL at height=\maxdimen % flags being unused
 \newcount\UL at pe
-\let\LA at space\ \let\LA at hskip\hskip
 
-\def\UL at end *{\relax\relax}% something harmless unlikely to be found elsewhere
+\UL at protected\def\UL at end *{\relax\relax}% something harmless but unique
 
 %   For regular underlines, set the depth based on the font, or retain
 %   the preset value, then start underlining.
@@ -74,7 +77,7 @@
 \def\ULon{\ifmmode \expandafter\UL at onmath\else \expandafter\UL at on\fi}
 
 %   \UL at on sets the engine of underline running, and tells it
-%   where to stop.
+%   where to stop.  #1 = the relevant text.
 \long\def\UL at on#1{\leavevmode\UL at ender \let\UL at on\UL at onin 
   \everymath{\UL at hrest}\everyvbox{\UL at hrest}\let\hskip\UL at hskip
   \let\\\UL at cr \let\-\UL at dischyp \let\newline\UL at newline \let\ \UL at space
@@ -84,9 +87,11 @@
   \UL at word\@empty#1\xdef\UL at spfactor{\the\spacefactor} \UL at end * }
 
 %   This is what \ULon does when it appears nested in an inner place.
-\def\UL at onin#1{\leavevmode\UL at ender % when nested, do multiple underlining
-  \UL at height\ULthickness \advance\ULdepth\thr@@\UL at height 
-  \advance\UL at height-\ULdepth \setbox\UL at box\hbox{{#1}}%
+\long\def\UL at onin#1{\leavevmode\UL at ender % when nested, do multiple underlining
+  \ifdim\ULdepth=\maxdimen\else
+   \UL at height\ULthickness \advance\ULdepth\thr@@\UL at height \advance\UL at height-\ULdepth
+  \fi
+  \setbox\UL at box\hbox{{#1}}%
   \let\UL at start\relax\UL at putbox\egroup}
 % \UL at putbox is disabled in inner mode, so re-enable it by changing \UL at start
 % \UL at hrest is implicit due to \everyhbox.  Double braces for \hbox are in
@@ -103,7 +108,7 @@
 
 % must expand to nothing outside the ifs for syntactical spaces to work.
 % the \expandafters get rid of the \@empty inserted at the beg. of word
-\def\UL at word#1 {\expandafter\UL at start#1 %
+\long\def\UL at word#1 {\expandafter\UL at start#1 %
   \expandafter\ifx\expandafter\UL at end#1\egroup\egroup
    \unskip \unskip \unskip % remove extra leader at end
    \spacefactor\UL at spfactor \let\UL at word\egroup
@@ -134,9 +139,10 @@
 % behaves properly.
 
 \def\UL at putbox{\ifx\UL at start\@empty \else % not inner
-  \vrule\@width\z@ \LA at penalty\@M
-  {\UL at skip\wd\UL at box \UL at leaders \kern-\UL at skip}%
-  \box\UL at box  \fi}
+   \vrule\@width\z@ \LA at penalty\@M
+    {\UL at skip\wd\UL at box \UL at leaders \kern-\UL at skip}%
+    \box\UL at box 
+  \fi}
 
 %  With interword leaders, give some overlap to avoid gaps caused by
 %  round-off errors in the printing program.  Needs \unskip \unskip \unskip
@@ -152,7 +158,8 @@
 % restore some things for inside math or \mbox
 \def\UL at hrest{\let\ \LA at space \let\-\@empty \let\penalty\LA at penalty}
 
-\def\UL at space{\LA at space \global\UL at skip\lastskip \unskip \UL at reskip}% \
+\let\LA at space\ %
+\UL at protected\def\UL at space{\LA at space \global\UL at skip\lastskip \unskip \UL at reskip}% 
 
 % Hyphenation is done by explicit \discretionary.  The overlapping melds
 % with the running overlap because it *is* part of the running overlap:
@@ -160,7 +167,7 @@
 % then overlapped by leaders.  The discretionary may occupy this space
 % if a break occurs; otherwise the next syllable gets doubly-overlapped
 % (in registration) for a distance of the hyphen's width.
-\def\UL at dischyp{\global\setbox\UL at hyphenbox\hbox
+\UL at protected\def\UL at dischyp{\global\setbox\UL at hyphenbox\hbox
    {\ifnum \hyphenchar\font<\z@ \string-\else \char\hyphenchar\font \fi}%
    \kern\wd\UL at hyphenbox \LA at penalty\@M 
    \UL at stop \kern-\wd\UL at hyphenbox
@@ -167,7 +174,7 @@
    \discretionary{\box\UL at hyphenbox}{}{}\UL at start}
 
 \let\LA at penalty\penalty
-\def\UL at penalty{\relax\ifhmode \afterassignment\UL@@penalty\count@
+\UL at protected\def\UL at penalty{\relax\ifhmode \afterassignment\UL@@penalty\count@
   \else\LA at penalty\fi}
 \def\UL@@penalty{\LA at penalty \ifnum\count@=\z@
   \@ne \else \count@ \fi % zero penalty => no penalty, so use 1 instead.
@@ -181,7 +188,8 @@
 % when they're used, but saves processing in \UL at hrest called by \everymath
 % \everyvbox and \everyhbox.
 
-\def\UL at hskip{\ifx\ \LA at space \LA at hskip \else
+\let\LA at hskip\hskip
+\UL at protected\def\UL at hskip{\ifx\ \LA at space \LA at hskip \else
   \afterassignment\UL at reskip \global\UL at skip \fi}
 
 \def\UL at reskip{\UL at stop \UL at leaders \UL at start}
@@ -190,13 +198,13 @@
 % and so the \hfil is not underlined!  \\ and \newline do nothing if inside
 % inner braces.
 
-\def\UL at cr{\unskip \ifx\ \LA at space \let\UL at vad\@gobble
+\UL at protected\def\UL at cr{\unskip \ifx\ \LA at space \let\UL at vad\@gobble
   \else \UL at stop \unskip\unskip\unskip \let\UL at vad\vadjust \fi
   \@ifstar{\UL at vad{\LA at penalty\@M}\UL at cra}\UL at cra}
 \def\UL at cra{\@ifnextchar[\UL at crb\UL at newline}
 \def\UL at crb[#1]{\UL at vad{\vskip#1}\UL at newline}
 
-\def\UL at newline{\ifx\UL at start\@empty % (\UL at cr may have \UL at stop-ed already)
+\UL at protected\def\UL at newline{\ifx\UL at start\@empty % (\UL at cr may have \UL at stop-ed already)
   \unskip \ifx\ \LA at space \else \UL at stop \unskip\unskip\unskip \fi\fi 
   \LA at hskip \z@\@plus.0001fil\LA at penalty -\@M \UL at start}
 
@@ -213,7 +221,8 @@
 \newbox\ULC at box
 \let\ULleaders\leaders
 
-\def\markoverwith#1{\setbox\ULC at box\hbox{{#1}}\UL at pixel.5\wd\ULC at box
+\UL at protected\def\markoverwith#1{\leavevmode
+   \setbox\ULC at box\hbox{{#1}}\UL at pixel.5\wd\ULC at box
    \ifmmode \setbox\ULC at box\hbox{\raise1.4ex\box\ULC at box}%
     \dp\ULC at box-1.4ex\ht\ULC at box\z@ \def\UL at leadtype{\cleaders\copy\ULC at box}%
    \else
@@ -226,14 +235,19 @@
 % For drawing a wavey underline instead of a straight one the command
 % is \uwave (under-wave) which uses the wiggle from 6-pt lasy font:
 
-\def\uwave{\bgroup \markoverwith{\lower3.5\p@\hbox{\sixly \char58}}\ULon}
-\font\sixly=lasy6 % does not re-load if already loaded, so no memory problem.
+\UL at protected\def\uwave{\leavevmode \bgroup 
+  \ifdim \ULdepth=\maxdimen \ULdepth 3.5\p@
+  \else \advance\ULdepth2\p@ 
+  \fi \markoverwith{\lower\ULdepth\hbox{\sixly \char58}}\ULon}
+\font\sixly=lasy6 % does not re-load if already loaded, so no memory drain.
 
 % To draw a double underline under text, use \uuline{text}
 
-\def\uuline{\bgroup \UL at setULdepth
+\UL at protected\def\uuline{\leavevmode \bgroup
+ \UL at setULdepth
+ \ifx\UL at on\UL at onin \advance\ULdepth2.8\p@\fi
  \markoverwith{\lower\ULdepth\hbox
-   {\kern-.03em\vbox{\hrule width.2em\kern1.2\p@\hrule}\kern-.03em}}%
+   {\kern-.03em\vbox{\hrule width.2em\kern1\p@\hrule}\kern-.03em}}%
  \ULon}
 
 % To draw a line through text instead of under it (strike out) do
@@ -240,22 +254,25 @@
 % `under'-line with negative depth.  Note that this one uses a real
 % line, not characters, so there is no \markoverwith.
 
-\def\sout{\bgroup \ULdepth=-.55ex \ULset}
+\UL at protected\def\sout{\leavevmode \bgroup \ULdepth=-.55ex \ULset}
 
 % To mark //// over text instead of underlining (x-out)
 %
-\def\xout{\bgroup \markoverwith{\hbox to.35em{\hss/\hss}}\ULon}
+\UL at protected\def\xout{\leavevmode \bgroup
+  \markoverwith{\hbox to.35em{\hss/\hss}}\ULon}
 
-\def\dotuline{\bgroup 
+\UL at protected\def\dotuline{\leavevmode \bgroup 
   \UL at setULdepth
+  \ifx\UL at on\UL at onin \advance\ULdepth2\p@\fi
   \markoverwith{\begingroup
-     \advance\ULdepth0.08ex 
-     \lower\ULdepth\hbox{\kern.1em .\kern.04em}%
+     %\advance\ULdepth0.08ex 
+     \lower\ULdepth\hbox{\kern.06em .\kern.04em}%
      \endgroup}%
   \ULon}
 
-\def\dashuline{\bgroup 
+\UL at protected\def\dashuline{\leavevmode \bgroup 
   \UL at setULdepth
+  \ifx\UL at on\UL at onin \advance\ULdepth2\p@\fi
   \markoverwith{\kern.13em
   \vtop{\kern\ULdepth \hrule width .3em}%
   \kern.13em}\ULon}
@@ -266,13 +283,14 @@
 % e.g.: \useunder{\uuline}{\bfseries}{\textbf}
 %       \useunder{\uwave}{\bf}{}
 
-\def\useunder#1#2#3{\relax
+\UL at protected\def\useunder#1#2#3{\relax
   \ifx\relax#2\relax\else % declaration command given
-    \def#2{\def\@tempa{#1}\global\let\UL at ender\UL at swender
+    \UL at protected\def#2{\def\@tempa{#1}\global\let\UL at ender\UL at swender
     \expandafter\@tempa\expandafter{\ifnum\z@=\string`}\fi}%
-    \MakeRobust{#2}\fi
+  \fi
   \ifx\relax#3\relax\else % argumentative command
-    \def#3{#1}\MakeRobust{#3}\fi}
+    \UL at protected\def#3{#1}%
+  \fi}
 
 \expandafter\ifx \csname @ifundefined\endcsname \relax
 
@@ -282,23 +300,13 @@
   \def\@width{width}
   \def\@empty{}
   \long\def\@gobble#1{}
-  \def\MakeRobust#1{}
+  \long\def\@firstoftwo#1#2{#1}%
+  \long\def\@secondoftwo#1#2{#2}%
 % Do non-outer \newif with no visible \if's or \fi's when skipping
   \csname newif\expandafter\endcsname \csname if at ignore\endcsname
 
 \else
 
- \def\MakeRobust#1{\expandafter\let
-   \csname \expandafter\@gobble\string#1 \endcsname= #1%
-  \edef#1{\noexpand\protect \expandafter\noexpand
-   \csname\expandafter\@gobble\string#1 \endcsname}
-  }
-  \MakeRobust\uline
-  \MakeRobust\uuline
-  \MakeRobust\uwave
-  \MakeRobust\sout
-  \MakeRobust\xout
-
   \let\LA at em\em   \let\LA at emph\emph
   \expandafter\let\expandafter\LA at Pem \csname em \endcsname
   \expandafter\let\expandafter\LA at Pemph \csname emph \endcsname
@@ -313,7 +321,7 @@
 % Process LaTeX \package options; plain TeX skips this section
 
 \expandafter\ifx\csname ProvidesPackage\endcsname \relax \else
-  \ProvidesPackage{ulem}[2012/05/18]
+  \ProvidesPackage{ulem}[2019/11/18]
   \DeclareOption{normalem}{\normalem}
   \DeclareOption{ULforem}{\ULforem}
   \DeclareOption{normalbf}{}
@@ -320,10 +328,12 @@
   \DeclareOption{UWforbf}{\useunder{\uwave}{\bf}{\textbf}}
   \ProcessOptions
 %
-  \AtBeginDocument{\let\UL at marginpar\marginpar}%
-  \newcommand\UL at marpar[2][\gDefault at pt]{\gdef\gDefault at pt{#2}%
+  \newcommand\UL at marpar[2][\ULmp at opt@arg]{\gdef\ULmp at opt@arg{#2}%
    \ifx\ \LA at space \@latexerr{Marginpar lost}%
-   \else \UL at stop \UL at marginpar[#1]{#2}\UL at start \fi}
+   \else \UL at stop \LA at marginpar[#1]{#2}\UL at start \fi}
+%
+  \AtBeginDocument{\let\LA at marginpar\marginpar}%
+%
   \addto at hook\UL at hook{\let\marginpar\UL at marpar}
 \fi
 
@@ -336,175 +346,7 @@
 
 \endinput
 
-%====================== BEGIN INSTRUCTIONS ===========================
-These plain text instructions may disappear soon.  The primary instructions
-are in ulem.ltx (ulem.pdf, ulem.dvi).
 
-ULEM is a package for LaTeX or plain TeX which provides various types of
-underlining that can stretch between words and be broken across lines.
-In LaTeX this style replaces italics with underlining in emphasized text
-given by \em or \emph -- but only if the text is delimited by braces.  A
-declaration \normalem (or the \usepackage option [normalem]) restores the
-normal \em behavior.  For underlining in plain TeX, \input ulem.sty, and
-use the \uline command.
-
-Unlike regular underlining, ulem allows line breaks, and even primitive
-hyphenation, within the underlined text; but it is far from perfect. It is
-most suitable for simple text like  {\em \LaTeX: A document preparation
-system\/}  that may need to be underlined in a manuscript submitted for
-publication.  Again, ulem will only replace \em and \emph when the text is
-delimited by explicit braces.
-
-The thickness of the underline rule is given by \ULthickness; use
-\renewcommand or \def (not \setlength) to change it.  The depth of the
-underline is controlled by the length \ULdepth.  The default value is a
-special flag which lets the current font control the depth.  You can set
-a particular value to \ULdepth (using \setlength) to force a particular
-depth, either locally for a special purpose, or for the document as a
-whole.  See the definition of \sout.
-
-Every word is typeset in an underlined box, so automatic hyphenation is
-normally disabled, but explicit discretionary hyphens (\-) will still be
-obeyed.  Several text-formatting commands are specially supported within
-the underlining:  \-, \ , ~, \\, \newline, \linebreak, \nolinebreak,
-\penalty, \hskip, \hspace, \hfil, \hfill, \hss.  Displayed math and \par
-are deliberately not supported to aid in the detection of runaway arguments
-(missing braces).  The special commands do have a problem: they end a
-group so any local assignments are lost.  
-
-The underlines continue between words, and stretch just like ordinary
-spaces do.  Since spaces delimit words, there may be some difficulty
-with syntactical spaces (e.g. "2.3 pt"). Some effort is made to handle
-such cases, but sometimes (such as \let\x= y) the space is interpreted
-incorrectly. You can usually solve the problem by enclosing the offending
-command in braces or in a macro (\newcommand\xeqy{\let\x= y}), but...
-
-One important incompatibility with braces and macro replacement:
-ALL THE TEXT IN BRACES OR COMING FROM A MACRO IS TYPESET IN A BOX.
-That is, braces will suppress stretching and linebreaks in the text they
-enclose.  Moreover, the specially-taken-care-of commands \-, \\, \newline
-and \linebreak are usually ignored if they appear inside extra braces.
-They operate only when the braces delimit a command parameter without
-introducing a level of grouping.  (Even though braces delimiting command
-parameters do not normally imply grouping, many commands will add their
-own grouping.)  Thus, you should try to limit inner braces to short bits of
-text or for delimiting parameters to commands. For emergency repairs, see
-the "Marat/Sade" example below.  Syntactical spaces inside braces never
-cause a problem, nor do spaces in math mode.
-
-Text produced by expansion of a command (macro) is boxed too, but \\, \
-and \- still work properly in the expansion text:
-        \newcommand\iff{if and only if} {\em \iff}
-does not allow any stretching or linebreaking between words, but
-        \newcommand\iff{if\ and\ only\ if} {\em \iff}
-allows stretching and linebreaking.  There is a problem though:  the
-\  between words closes a group and any local assignments will be lost,
-in particular, font changes and color changes.
-
-This loss of local assignments will break some other standard commands,
-(e.g., \cite) which produce multiple `words' using local assignments.
-The way to protect such commands is to bury them in an \mbox:
-        {\em every\-one agrees~\mbox{\cite{you,me}}.}
-
-Nested \em commands produce multiple underlining, but heed the warnings
-about braces above.  To get italics without underlining, use \it.  Nesting
-of other types of underline is also possible, but the `underlines' may
-overlap.
-
-HERE IS A SIMPLE EXAMPLE.
-
-\noindent 'Twas {\em brillig\/} and the {\em slithy~toves\/}
-did {\em gyre\/} and {\em gim\-ble\/} in the {\em wabe,\\[2pt] }
-All {\em mim\-sey\/} were the {\em boro\-goves\/} and
-the {\em mome raths outgrabe}.
-
-HERE IS A DIFFICULT EXAMPLE.
-
-\usepackage{ulem}
-\setlength\textwidth{3.3in}
-\begin{document}
-% \large
-No, I did {\em not} act in the movie {\em \emph{The} %    <<<<<<< Nested
-\emph{Persecu}\-\emph{tion} \emph{and} \emph{Assassination} \emph{of}
-\emph{Jean-Paul} \emph{Marat}, as per\-formed by the Inmates
-of the Asylum of Charenton under the Direc\-tion of the
-Marquis de~Sade!} But I {\em did} see it.
-\end{document}
-
-In the nested emphasis, \emph had to be given for each word separately
-so the spaces between could stretch and break into lines.  Even the
-discretionary hyphen (\-) in `Persecution' had to be outside the braces,
-but the hyphen in `Direction' was just fine because it was not in nested
-braces. The same applies to other special commands like \  and ~. Also,
-the spaces are printed with only a single underline because they are
-outside the nested \emph commands.  This example really illustrates that
-ulem does not handle nested emphasis very well!  Nevertheless, it is fine
-for simple things.
-
-Underlining can also be done according to \uline{this text}. To use this
-type of underlining, but have \em still produce italics, put the command
-\normalem in the preamble of the document or load ulem with
-\usepackage[normalem]{ulem}.
-
-Some variations on underlining are provided, including a wavey underline
-(\uwave{under-wave}), double underlines (\uuline{two lines under this}),
-dashed (\dashuline{dashes underneath}) or dotted (\dotuline{dots below})
-underlines,
-a line through text rather than under it (\sout{strike out}), and text
-crossed-out with /////// (\xout{cross out, X out}).  You can define your
-own styles following the examples provided.  The definition should be
-something like:
-
-\newcommand\command{\bgroup \markoverwith{something}\ULon}
-
-The "something" can be as simple as a single character, or as complex as
-you can keep track of.
-
-The various underlining commands are essentially textual, and will not
-work quite the same in math mode.  But since some font commands, like \bf,
-serve both for text and math, math mode is handled (in an approximate way).
-The performance in math mode is somewhat different from in text: there will
-be no line breaks or stretching in the underlined text, and the vertical
-positioning may not be right.  The results should be best for \uline,
-\uwave, \uuline, and any other truly UNDER-line you define.
-
-Any type of underlining can be substituted for any font-selection command
-by issuing a proper \useunder declaration:
-
-\useunder{\underlinecommand}{\fontdeclaration}{\fontcommand}
-
-e.g., \useunder{\uuline}{\bfseries}{\textbf} gives a double underline
-instead of bold face in LaTeX.  The commands \normalem and \ULforem switch
-underlining for \em off and on, respectively, and so do the \usepackage
-options [normalem] and [ULforem]. There is also the \usepackage style
-option [UWforbf] to replace boldface with a wavey underline.
-
-UWforbf does handle \bf in math mode, but it doesn't work in section titles,
-unfortunately, because the titles are not delimited by explicit braces when
-printed by the \section command.  For the present version, the \bfseries
-command still produces bold face, but \bf makes an under-wave. To get under-
-waved section titles you can do
-
-\renewcommand\@seccntformat[1]{\uwave{\csname the#1\endcsname}\hskip 1em}
-
-and later specify \section[...]{\uwave{...}}.
-
-In plain TeX there is no \textbf so you should use \useunder{\UWave}{\bf}{}.
-You can even skip a step and define the underline or overprint with \useunder:
-\useunder{\bgroup\markoverwith{!}\ULon}{\sf}{}
-
-Some commands, such as \\ and \hskip are given special treatment, but 
-others (like \marginpar) are not.  Support for others can be added by 
-assigning special meanings in the token register \UL at hook.  (In LaTeX do 
-\addto at hook\UL at hook{\let\command\ULversion}.)  The UL versions of commands 
-should be modelled on \UL at hskip or \UL at cr, and should include the test 
-"\ifx\ \LA at space".  For example, support for "\marginpar" is added through
-the hook mechanism.
-
-All the underlining commands are robust in LaTeX.
-
-%====================== END INSTRUCTIONS ===========================
-
 %  Previous bug-finders: Esther Hu (\hfill in plain); Lones Smith (\tt\-);
 %  Steve Anderson (\ooalign accents); Thanassi Protopapas ( { in tables).
 %  The bug finders' fee is now $0.00; it will double for each new bug found.
@@ -523,6 +365,8 @@
 %  2010: Include \dotuline and \dashuline, typeset documentation, add \UL at setULdepth
 %  2011: Change \dimen@ to \UL at height
 %  2012: Removed \let\par garbage
+%  2017: Remove \makerobust
+%  2019: Handle \ULdepth better. Some tweaks.
 %
 %  Send problem reports to asnd at triumf.ca
 %



More information about the tex-live-commits mailing list