diff options
author | Karl Berry <karl@freefriends.org> | 2010-11-04 18:05:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-11-04 18:05:23 +0000 |
commit | 6e7ee46711fac1d368c51cff0acd1fa1268069fb (patch) | |
tree | 764407211d3a5ae15339c598c49db609c0d0ac13 /Master/texmf-dist/tex/latex/ltxmisc | |
parent | 44b6547a1fd727060c83f23c3c2e05dfca76ad10 (diff) |
sphack own package (1nov10)
git-svn-id: svn://tug.org/texlive/trunk@20313 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ltxmisc')
-rw-r--r-- | Master/texmf-dist/tex/latex/ltxmisc/sphack.sty | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/Master/texmf-dist/tex/latex/ltxmisc/sphack.sty b/Master/texmf-dist/tex/latex/ltxmisc/sphack.sty deleted file mode 100644 index e0bc115d34d..00000000000 --- a/Master/texmf-dist/tex/latex/ltxmisc/sphack.sty +++ /dev/null @@ -1,113 +0,0 @@ -% SPHACK.STY -% Oliver Pretzel (o.pretzel@ic.ac.uk) -% Created 22 May 1998, Version 1.0 22May 1998 -% Modified space hacks for LateX (209 and 2e) -% (to prevent \label, \index and similar commands -% affecting spacing in vertical mode). -% -% -% DOCUMENTATION at end of file -% -% ALL RIGHTS RESERVED -% -% This file may be distributed freely. -% It may be modified for local use (please inform me of such modifications) -% Modified versions may only be distributed if -% 1. The name is changed -% 2. A statement acknowledging the modification heads the file. -% -% DO NOT USE \neq in this file -\chardef\neq\the\catcode`\@ -\makeatletter\@makeother\" -% - -\typeout{`sphack.sty <1.0>} -%************************* - -\ifx\@savdim\undefined\let\@savdim\@savsk\newskip\@savsk\fi -\def\@bsphack{\relax\ifmmode\else\@savsk\lastskip\@savsf\ifhmode\spacefactor - \else\lastpenalty\@savdim\prevdepth\removelastskip\fi\fi} -\def\@esphack{\relax\ifmmode\else\ifvmode\penalty\if@nobreak\@M\else - \if@inlabel\@M\else\if@noskipsec\@M\else\@savsf\fi\fi\fi - \prevdepth\@savdim\vskip\@savsk\else - \spacefactor\@savsf\ifdim\@savsk>\z@\ignorespaces\fi\fi\fi} -\ifx\LateXe\undefined -\def\@Esphack{\@esphack\ifhmode\ifdim\@savsk>\z@ - \global\@ignoretrue\ignorespaces\fi\fi} -\else -\def\@Esphack{\@esphack\ifhmode\ifdim\@savsk>\z@ - \@ignoretrue\ignorespaces\fi\fi} -\fi - -% This line must be last line of code -\catcode`\@\neq\let\neq\ne\endinput - -******************* - DOCUMENTATION -******************* -Standard LaTeX uses the macros \@bsphack, \@esphack, and \@Esphack, for -inserts into the text that should be invisible. So, for instance a space -before and after a \label command should not result in two spaces in the -output. - -LaTeX deals with this as follows - in maths mode do nothing, - in horizontal mode restore the space factor, - if the last thing on the list was a space - add \ignorespaces (and (\global)\ignoretrue at the end of an environment), - in vertical mode do nothing. - -Doing nothing in maths mode is (nearly) harmless because maths mode does its -own spacing (and anyway hidden commands will usually appear only at the start -or end of maths). - -Doing nothing in vertical mode is not harmless. Many invisible commands such -as \index may insert delayed write commands into TeX's output (so that page -numbers are correctly calculated). These commands can cause vertical space to -accumulate, and may cause a page break; \index is a particular problem in -LaTeX209 since it inserts a delayed write if an index is actually being built -(\makeindex in preamble) but does nothing otherwise. That can change the page -breaks in a document. - -It is not possible to solve this problem completely in LaTeX because TeX does -not remove things from the main vertical list once they have been -contributed. So LaTeX2e makes \index insert something into the vertical -list whether the index is being written or not. That has the virtue of -consistancy, but is far from ideal. For instance, an \index immediately after -an \item can cause the page to break between the item label and content. - -The code above remedies this fault and other common anomalies so that commands -are nearly always invisible in vertical mode as well. It works as follows: - -Rename LaTeX's dimension \@savsk to \@savdim set a new skip \@savsk - (because we need a true skip and a dimension in vertical mode) - -\@bsphack (at start of invisible command) -in hmode (non-math) - store spacefactor in \@savsf - store lastskip in \@savsk (used to test whether space already present) -in vmode - store lastpenalty in \@savsf - store lastskip in \@savsk (used for movement) - store previous depth in \@savdim - skip back \lastskip - -\@esphack (at end of invisible command) -in hmode (non-math) - set spacefactor = \@savsf - if \@savsk > \z@ \ignorespaces -in vmode - if in a label, or just after section heading, or if \@nobreak - insert infinite penalty, (to prevent a page break) - else insert penalty \@savsf - endif - set previous depth = \@savdim - skip \@savsk - -Just as in standard LateX, \@Esphack is \@esphack + (\global)\@ignoretrue. - -It is not necessary to change any of the label or index macros to fit with -this code. - -End of sphack.sty -******************* |