summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/eplain
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-02-15 00:19:38 +0000
committerKarl Berry <karl@freefriends.org>2013-02-15 00:19:38 +0000
commitc5626af2b77c391bf663c660b9a0b495ab53d941 (patch)
tree5dece1d9c3249e75d509524fc2145c59f759eef9 /Master/texmf-dist/tex/eplain
parenta13000a8a72574b999877de3f97bee16c0980c6a (diff)
eplain (14feb13)
git-svn-id: svn://tug.org/texlive/trunk@29110 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/eplain')
-rw-r--r--Master/texmf-dist/tex/eplain/btxmac.tex36
-rw-r--r--Master/texmf-dist/tex/eplain/eplain.tex374
2 files changed, 252 insertions, 158 deletions
diff --git a/Master/texmf-dist/tex/eplain/btxmac.tex b/Master/texmf-dist/tex/eplain/btxmac.tex
index c8772a176b2..88338ab8b39 100644
--- a/Master/texmf-dist/tex/eplain/btxmac.tex
+++ b/Master/texmf-dist/tex/eplain/btxmac.tex
@@ -1,16 +1,15 @@
%% @texfile{
%% author = "Karl Berry and Oren Patashnik",
-%% version = "0.99k-09sep07",
-%% date = "19 August 2005",
+%% version = "0.99m",
+%% date = "7 February 2013",
%% filename = "btxmac.tex",
%% address = "tex-eplain@tug.org",
-%% checksum = "842 4571 33524",
-%% codetable = "ISO/ASCII",
%% supported = "yes",
%% docstring = "Defines macros that make BibTeX work with plain TeX",
%% }
% BibTeX-for-TeX macros, version 0.99k, for BibTeX 0.99c, TeX 3.0 or later.
-% Copyright (C) 1990, 1991, 1992, 1995, 2005 Karl Berry & Oren Patashnik.
+% Copyright 1990, 1991, 1992, 1995, 2004, 2007, 2013 Karl Berry &
+% Oren Patashnik.
%
% Unlimited copying and redistribution of this file are permitted as
% long as this file is not modified. Modifications (and redistribution
@@ -24,7 +23,7 @@
% (opbibtex@cs.stanford.edu). These macros will become frozen shortly
% after BibTeX version 1.00 is released.
%
-% AMS-TEX WARNING: We tried very hard, for version .99i of these macros,
+% AMS-TEX WARNING: We tried very hard, as of version .99i of these macros,
% to make them compatible with AmS-TeX. We succeeded to the extent
% that, if you use one of the standard bibliography styles, you probably
% won't notice any problems with version 0.99i of btxmac.tex. But
@@ -51,9 +50,9 @@
% the current btxmac.tex macros are sufficient, fine. But if there's a
% demand for more robust BibTeX/AmS-TeX behavior, then someone who's
% very familiar with the AmS-TeX package should probably make an
-% amsbtxmc.tex version of the macros (remembering to follow the
-% copyright restrictions above). Until then, if you're an AmS-TeX user,
-% or a LaTeX or plain TeX user sharing files with an AmS-TeX user, beware.
+% amsbtxmc.tex version of the macros. Until then, if you're an AmS-TeX
+% user, or a LaTeX or plain TeX user sharing files with an AmS-TeX user,
+% beware.
% END OF AMS-TEX WARNING.
%
% To use these macros you should be familiar with how BibTeX interacts
@@ -145,6 +144,8 @@
% \emph, \textbf, and \mbox, since many .bib files
% use them. And made these definitions (and others)
% only effective if not already defined.
+% 07-Feb-13 0.99m, \newcommand and \providecommand should be \long,
+% and not use \edef. Define \bbltextbf.
%
% The LaTeX-related commands defined in this file include
% (a) the four commands that a user types (\bibliography,
@@ -247,10 +248,9 @@
% So to start things off we turn `@' into a letter (category code 11),
% keeping track of the old category code for future restoration.
% (Simply resetting it to 12 when we leave these macros is
-% insufficient.) The use of `\cite' as a temporary control sequence is
-% a kludge, but it's a reasonably simple way to accomplish what we need
-% without possibly overwriting something (without an `@' in its name)
-% that might already be defined.
+% insufficient.) We use `\cite' as a temporary control sequence to
+% save the current catcode of @ to avoid possibly overwriting something
+% (without an `@' in its name) that might already be defined.
%
\edef\cite{\the\catcode`@}%
\catcode`@ = 11
@@ -683,7 +683,7 @@
\def\bblemph#1{{\bblem #1\/}}
%
% And bold.
-\def\textbf#1{{\bf #1}}
+\def\bbltextbf#1{{\bf #1}}
%
% \mbox is \hbox forcing horizontal mode.
\def\bblmbox{\leavevmode\hbox}
@@ -759,7 +759,7 @@
% arg) but we don't bother with either of these.
%
\ifx\newcommand\undefined
-\def\newcommand#1{%
+\long\def\newcommand#1{%
\def\@commandname{#1}%
\@getoptionalarg\@continuenewcommand
}%
@@ -770,7 +770,7 @@
% \newcommand. In LaTeX, it gives a warning if \foo is not already defined.
%
\ifx\renewcommand\undefined
-\let\renewcommand = \newcommand
+ \let\renewcommand = \newcommand
\fi
%
%
@@ -778,7 +778,7 @@
% \foo is not already defined.
%
\ifx\providecommand\undefined
-\def\providecommand#1{%
+\long\def\providecommand#1{%
\def\@commandname{#1}%
%
\expandafter\ifx\@commandname \@undefined
@@ -804,7 +804,7 @@
% command is \@commandname. The replacement text for the new macro is #1.
%
\def\@newcommand#1{%
- \def\@startdef{\expandafter\edef\@commandname}%
+ \def\@startdef{\expandafter\def\@commandname}%
\ifnum\@numparams=0
\let\@paramdef = \empty
\else
diff --git a/Master/texmf-dist/tex/eplain/eplain.tex b/Master/texmf-dist/tex/eplain/eplain.tex
index 236ea4efc32..d4caba1059b 100644
--- a/Master/texmf-dist/tex/eplain/eplain.tex
+++ b/Master/texmf-dist/tex/eplain/eplain.tex
@@ -1,10 +1,10 @@
%% @texfile{
%% author = "Karl Berry, Steven Smith, Oleg Katsitadze, and others",
-%% version = "3.4",
-%% date = "Sun Feb 21 15:52:21 PST 2010",
+%% version = "3.5",
+%% date = "Fri Feb 8 09:51:56 PST 2013",
%% filename = "eplain.tex",
%% email = "bug-eplain@tug.org",
-%% checksum = "4251 9191 135013",
+%% checksum = "4345 9735 139553",
%% codetable = "ASCII",
%% supported = "yes",
%% docstring = "This file defines macros that extend and expand on
@@ -33,13 +33,18 @@
%%
%% This is a generated file.
%%
-%% Copyright (C) 2001, 2005-2009 by
-%% Heiko Oberdiek <oberdiek@uni-freiburg.de>
+%% Project: ifpdf
+%% Version: 2011/01/30 v2.3
+%%
+%% Copyright (C) 2001, 2005-2011 by
+%% Heiko Oberdiek <heiko.oberdiek at googlemail.com>
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
-%% version 1.3 of this license or (at your option) any later
-%% version. The latest version of this license is in
+%% version 1.3c of this license or (at your option) any later
+%% version. This version of this license is in
+%% http://www.latex-project.org/lppl/lppl-1-3c.txt
+%% and the latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of
%% LaTeX version 2005/12/01 or later.
@@ -48,52 +53,59 @@
%%
%% This Current Maintainer of this work is Heiko Oberdiek.
%%
+%% The Base Interpreter refers to any `TeX-Format',
+%% because some files are installed in TDS:tex/generic//.
+%%
%% This work consists of the main source file ifpdf.dtx
%% and the derived files
%% ifpdf.sty, ifpdf.pdf, ifpdf.ins, ifpdf.drv, ifpdf-test1.tex.
%%
-\begingroup
- \catcode44 12 % ,
- \catcode45 12 % -
- \catcode46 12 % .
- \catcode58 12 % :
- \catcode64 11 % @
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode123=1 % {
+ \catcode125=2 % }
\expandafter\let\expandafter\x\csname ver@ifpdf.sty\endcsname
- \ifcase 0%
- \ifx\x\relax % plain
+ \ifx\x\relax % plain-TeX, first loading
+ \else
+ \def\empty{}%
+ \ifx\x\empty % LaTeX, first loading,
\else
- \ifx\x\empty % LaTeX
+ \expandafter\ifx\csname PackageInfo\endcsname\relax
+ \def\x#1#2{%
+ \immediate\write-1{Package #1 Info: #2.}%
+ }%
\else
- 1%
+ \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
\fi
+ \x{ifpdf}{The package is already loaded}%
\fi
- \else
- \catcode35 6 % #
- \catcode123 1 % {
- \catcode125 2 % }
- \expandafter\ifx\csname PackageInfo\endcsname\relax
- \def\x#1#2{%
- \immediate\write-1{Package #1 Info: #2.}%
- }%
- \else
- \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
- \fi
- \x{ifpdf}{The package is already loaded}%
- \endgroup
\fi
-\endgroup
-\begingroup
- \catcode35 6 % #
- \catcode40 12 % (
- \catcode41 12 % )
- \catcode44 12 % ,
- \catcode45 12 % -
- \catcode46 12 % .
- \catcode47 12 % /
- \catcode58 12 % :
- \catcode64 11 % @
- \catcode123 1 % {
- \catcode125 2 % }
+\endgroup%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode35=6 % #
+ \catcode39=12 % '
+ \catcode40=12 % (
+ \catcode41=12 % )
+ \catcode44=12 % ,
+ \catcode45=12 % -
+ \catcode46=12 % .
+ \catcode47=12 % /
+ \catcode58=12 % :
+ \catcode64=11 % @
+ \catcode91=12 % [
+ \catcode93=12 % ]
+ \catcode123=1 % {
+ \catcode125=2 % }
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1#2#3[#4]{\endgroup
\xdef#1{#4}%
@@ -111,29 +123,38 @@
\fi
\expandafter\x\csname ver@ifpdf.sty\endcsname
\ProvidesPackage{ifpdf}%
- [2009/04/10 v2.0 Provides the ifpdf switch (HO)]
-\begingroup
- \catcode123 1 % {
- \catcode125 2 % }
+ [2011/01/30 v2.3 Provides the ifpdf switch (HO)]%
+\begingroup\catcode61\catcode48\catcode32=10\relax%
+ \catcode13=5 % ^^M
+ \endlinechar=13 %
+ \catcode123=1 % {
+ \catcode125=2 % }
+ \catcode64=11 % @
\def\x{\endgroup
\expandafter\edef\csname ifpdf@AtEnd\endcsname{%
- \catcode35 \the\catcode35\relax
- \catcode64 \the\catcode64\relax
- \catcode123 \the\catcode123\relax
- \catcode125 \the\catcode125\relax
+ \endlinechar=\the\endlinechar\relax
+ \catcode13=\the\catcode13\relax
+ \catcode32=\the\catcode32\relax
+ \catcode35=\the\catcode35\relax
+ \catcode61=\the\catcode61\relax
+ \catcode64=\the\catcode64\relax
+ \catcode123=\the\catcode123\relax
+ \catcode125=\the\catcode125\relax
}%
}%
-\x
-\catcode35 6 % #
-\catcode64 11 % @
-\catcode123 1 % {
-\catcode125 2 % }
+\x\catcode61\catcode48\catcode32=10\relax%
+\catcode13=5 % ^^M
+\endlinechar=13 %
+\catcode35=6 % #
+\catcode64=11 % @
+\catcode123=1 % {
+\catcode125=2 % }
\def\TMP@EnsureCode#1#2{%
\edef\ifpdf@AtEnd{%
\ifpdf@AtEnd
- \catcode#1 \the\catcode#1\relax
+ \catcode#1=\the\catcode#1\relax
}%
- \catcode#1 #2\relax
+ \catcode#1=#2\relax
}
\TMP@EnsureCode{10}{12}% ^^J
\TMP@EnsureCode{39}{12}% '
@@ -145,7 +166,8 @@
\TMP@EnsureCode{47}{12}% /
\TMP@EnsureCode{58}{12}% :
\TMP@EnsureCode{60}{12}% <
-\TMP@EnsureCode{61}{12}% =
+\TMP@EnsureCode{91}{12}% [
+\TMP@EnsureCode{93}{12}% ]
\TMP@EnsureCode{94}{7}% ^
\TMP@EnsureCode{96}{12}% `
\begingroup
@@ -171,34 +193,57 @@
therefore package loading is aborted.%
}%
\endgroup
- \ifpdf@AtEnd
- \fi
+ \expandafter\ifpdf@AtEnd
+ \fi%
\endgroup
\begingroup
+ \def\skip#1\relax\begingroup{}%
\expandafter\ifx\csname pdfoutput\endcsname\relax
\else
- \def\skip#1\relax\endgroup{\csname fi\endcsname\endgroup}%
- \skip
+ \expandafter\skip
\fi
\expandafter\ifx\csname directlua\endcsname\relax
- \def\skip#1\endgroup{\csname fi\endcsname\endgroup}%
- \skip
+ \expandafter\skip
\fi
- \expandafter\ifx\csname RequirePackage\endcsname\relax
- \input ifluatex.sty\relax
+\endgroup
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname RequirePackage\endcsname\relax
+ \def\TMP@RequirePackage#1[#2]{%
+ \begingroup\expandafter\expandafter\expandafter\endgroup
+ \expandafter\ifx\csname ver@#1.sty\endcsname\relax
+ \input #1.sty\relax
+ \fi
+ }%
+ \TMP@RequirePackage{ifluatex}[2009/04/10]%
+\else
+ \RequirePackage{ifluatex}[2009/04/10]%
+\fi
+\ifluatex
+ \ifnum\luatexversion<36 %
\else
- \RequirePackage{ifluatex}[2009/04/10]%
- \fi
- \ifluatex
- \ifnum\luatexversion<36 %
- \else
+ \begingroup
\directlua{tex.enableprimitives('ifpdf', {'pdfoutput'})}%
\global\let\pdfoutput\ifpdfpdfoutput
- \fi
+ \endgroup
\fi
- \relax
-\endgroup
-\newif\ifpdf
+\fi
+\relax\begingroup\endgroup
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname newif\endcsname\relax
+ \edef\pdffalse{%
+ \let
+ \expandafter\noexpand\csname ifpdf\endcsname
+ \expandafter\noexpand\csname iffalse\endcsname
+ }%
+ \edef\pdftrue{%
+ \let
+ \expandafter\noexpand\csname ifpdf\endcsname
+ \expandafter\noexpand\csname iftrue\endcsname
+ }%
+ \pdffalse
+\else
+ \csname newif\expandafter\endcsname\csname ifpdf\endcsname
+\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfoutput\endcsname\relax
\else
@@ -210,12 +255,9 @@
\begingroup
\expandafter\ifx\csname pdfoutput\endcsname\relax
\else
- \escapechar=-1 %
+ \escapechar=92 %
\edef\m{\meaning\pdfoutput}%
- \edef\p{%
- \string p\string d\string f%
- \string o\string u\string t\string p\string u\string t%
- }%
+ \edef\p{\string\pdfoutput}%
\ifx\m\p
\else
\expandafter\ifx\csname PackageWarningNoLine\endcsname\relax
@@ -226,7 +268,7 @@
}%
\fi
\PackageWarningNoLine{ifpdf}{%
- Someone has redefined \string\\pdfoutput%
+ Someone has redefined \string\pdfoutput%
}%
\fi
\fi
@@ -239,9 +281,9 @@
\let\x\PackageInfo
\expandafter\let\csname on@line\endcsname\empty
\fi
- \x{ifpdf}{pdfTeX in pdf mode \ifpdf\else not \fi detected}%
+ \x{ifpdf}{pdfTeX in PDF mode is \ifpdf\else not \fi detected}%
\endgroup
-\ifpdf@AtEnd
+\ifpdf@AtEnd%
%%
%% End of file `ifpdf.sty'.
\def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
@@ -358,12 +400,10 @@
\fi
%% @texfile{
%% author = "Karl Berry and Oren Patashnik",
-%% version = "0.99k-09sep07",
-%% date = "19 August 2005",
+%% version = "0.99m",
+%% date = "7 February 2013",
%% filename = "btxmac.tex",
%% address = "tex-eplain@tug.org",
-%% checksum = "842 4571 33524",
-%% codetable = "ISO/ASCII",
%% supported = "yes",
%% docstring = "Defines macros that make BibTeX work with plain TeX",
%% }
@@ -585,7 +625,7 @@
\def\bblrm{\rm}%
\def\bblem{\it}%
\def\bblemph#1{{\bblem #1\/}}
-\def\textbf#1{{\bf #1}}
+\def\bbltextbf#1{{\bf #1}}
\def\bblmbox{\leavevmode\hbox}
\def\bblsc{\ifx\@scfont\@undefined
\font\@scfont = cmcsc10
@@ -604,16 +644,16 @@
\let\citation = \@gobble
\@innernewcount\@numparams
\ifx\newcommand\undefined
-\def\newcommand#1{%
+\long\def\newcommand#1{%
\def\@commandname{#1}%
\@getoptionalarg\@continuenewcommand
}%
\fi
\ifx\renewcommand\undefined
-\let\renewcommand = \newcommand
+ \let\renewcommand = \newcommand
\fi
\ifx\providecommand\undefined
-\def\providecommand#1{%
+\long\def\providecommand#1{%
\def\@commandname{#1}%
\expandafter\ifx\@commandname \@undefined
\let\cs=\@continuenewcommand % undefined, so we'll define it
@@ -628,7 +668,7 @@
\@newcommand
}%
\def\@newcommand#1{%
- \def\@startdef{\expandafter\edef\@commandname}%
+ \def\@startdef{\expandafter\def\@commandname}%
\ifnum\@numparams=0
\let\@paramdef = \empty
\else
@@ -995,20 +1035,25 @@
\ifx\SLiTeX\undefined \let\SLiTeX=\SLITEX \fi
\ifx\SliTeX\undefined \let\SliTeX=\SLITEX \fi
\ifx\SLITeX\undefined \let\SLITeX=\SLITEX \fi
-%%% @texfile{
+%%% @TeX-style-file
+%%% {
%%% author = "Philip Taylor",
-%%% version = "3.04",
-%%% date = "25 July 1992",
-%%% time = "17:07 EDT",
+%%% version = "3.05",
+%%% date = "7 April 2011",
+%%% time = "15:59:31 BST",
%%% filename = "path.sty",
-%%% address = "The Computer Centre
-%%% RHBNC, University of London
-%%% Egham Hill
-%%% Egham, Surrey TW20 0EX, ENGLAND",
-%%% telephone = "Tel: +44 784 443172",
-%%% FAX = "Fax: +44 784 434348",
-%%% checksum = "41143 321 1758 13526",
-%%% email = "P.Taylor@Vax.Rhbnc.Ac.Uk (Internet)",
+%%% license = "Unlimited copying and redistribution of this
+%%% file are permitted as long as this file is
+%%% not modified. Modifications are permitted,
+%%% but only if the resulting file is not named
+%%% path.sty regardless of case",
+%%% address = "c/o The Hellenic Institute
+%%% Royal Holloway, University of London
+%%% Egham Hull, Egham
+%%% Surrey TW20 0EX
+%%% United Kingdom",
+%%% telephone = "Tel: +44 1622 820 735",
+%%% email = "P.Taylor@Rhul.Ac.Uk",
%%% codetable = "ISO/ASCII",
%%% keywords = "file name, filename, path name, pathname,
%%% discretionary, discretionaries",
@@ -1017,9 +1062,7 @@
%%% addresses tend to be long strings that
%%% cause line breaking problems for TeX.
%%% Sometimes rather long strings are
-%%% encountered; here are two examples:
-%%%
-%%% Friesland%rz.informatik.uni-hamburg.dbp.de%germany.csnet@relay.cs.net
+%%% encountered, such as:
%%%
%%% mighty-mouse-gw.scrc.symbolics.com
%%%
@@ -1034,7 +1077,8 @@
%%%
%%% \discretionaries |~!@$%^&*()_+`-=#{"}[]:;'<>,.?\/|
%%%
-%%% However, you can change it as needed, for example:
+%%% However, you can change it as needed, for
+%%% example
%%%
%%% \discretionaries +@%!.+
%%%
@@ -1057,42 +1101,64 @@
%%% \specialpathdelimitersfalse is the normal
%%% setting.
%%%
-%%% This file may be used in Plain TeX or AmSTeX by
+%%% This file may be used in Plain TeX or AmSTeX
+%%% by
%%%
%%% \input path.sty
%%%
%%% and in LaTeX by
%%%
-%%% \documentstyle[...,path,...]{...}
+%%% \usepackage {path}
%%%
-%%% The checksum field above contains a CRC-16
-%%% checksum as the first value, followed by the
-%%% equivalent of the standard UNIX wc (word
+%%% The checksum field above, if present, contains
+%%% a CRC-16 checksum as the first value, followed
+%%% by the equivalent of the standard UNIX wc (word
%%% count) utility output of lines, words, and
%%% characters. This is produced by Robert
-%%% Solovay's checksum utility.}
+%%% Solovay's checksum utility.
+%%% }
%%% }
-\edef\path{\the\catcode`@}%
-\catcode`@ = 11
-\let\@oldatcatcode = \path
+%%% ====================================================================
+%%% The use of `\path' as a temporary control sequence is a kludge, but
+%%% it's a reasonably simple way to accomplish making @ a letter (to
+%%% provide ``concealed'' control sequences) without overwriting something
+%%% (without an `@' in its name) that might already be defined.
+\edef \path {\the \catcode `\@}%
+\catcode `\@ = 11
+\let \oldc@tcode = \path
+%%% Make commercial-at a letter to provide concealed control sequences
+\catcode `\@ = 11
+%%% and then declare two \count variables with concealed names
\newcount \c@tcode
\newcount \c@unter
+%%% and a boolean variable with an open name, to specify the nature of
+%%% the delimiters which will be associated with the \path command
\newif \ifspecialpathdelimiters
+%%% If desired, you can define \pathafterhook to take
+\let \pathafterhook = \relax
+%%% We need to define control sequences which expand to both
+%%% active and passive spaces ...
\begingroup
\catcode `\ = 10
-\gdef \passivesp@ce { }%
+\gdef \passivesp@ce { }
\catcode `\ = 13\relax%
\gdef\activesp@ce{ }%
\endgroup
-\def \discretionaries % <delim> <chars> <delim>
+%%% \discretionaries will define a macro \discr@ti@n@ri@s which will
+%%% make every character between the first and final <delim> a
+%%% discretionary breakpoint.
+\def \discretionaries %%% <delim> <chars> <delim>
{\begingroup
\c@tcodes = 13
\discr@tionaries
- }%
-\def \discr@tionaries #1% <delim>
- {\def \discr@ti@naries ##1#1% <chars> <delim>
+ }
+%%% \discr@tionaries will receive as parameter the initial <delim>
+%%% which will delimit the set of discretionaries; this <delim>
+%%% will be active.
+\def \discr@tionaries #1%%% <delim>
+ {\def \discr@ti@naries ##1#1%%% <chars> <delim>
{\endgroup
- \def \discr@ti@n@ries ####1% <char> or <delim>
+ \def \discr@ti@n@ries ####1%%% <char> or <delim>
{\if \noexpand ####1\noexpand #1%
\let \n@xt = \relax
\else
@@ -1106,8 +1172,15 @@
\def \discr@ti@n@ri@s {\discr@ti@n@ries ##1#1}%
}%
\discr@ti@naries
- }%
-\let\pathafterhook = \relax
+ }
+%%% \path, which is the user interface to \p@th, first checks
+%%% to see whether \specialpathdelimiters is <true> or <false>;
+%%% if <true>, it needs to take special action to ensure that
+%%% \stress {all} characters (apart from <space>) are acceptable
+%%% as delimiters; this is very time-consuming, and should be
+%%% avoided if at all possible. It also defines \endp@th, to
+%%% close the appropriate number of groups, and finally transfers
+%%% control to \p@th
\def \path
{\ifspecialpathdelimiters
\begingroup
@@ -1117,8 +1190,14 @@
\def \endp@th {\endgroup \pathafterhook}%
\fi
\p@th
- }%
-\def \p@th #1% <delim>
+ }
+%%% \p@th, which has essentially the same syntax as \discretionaries,
+%%% expects to be followed by a <delim>, a <path>, and a second instance
+%%% of <delim>; it will typeset <path> in the \tt font with hyphenation
+%%% inhibited --- breaks (but not true hyphenation) are allowed at any
+%%% or all of the special characters which have
+%%% previously been declared as \discretionaries.
+\def \p@th #1%%% <delim>
{\begingroup
\tt
\c@tcode = \catcode `#1
@@ -1131,8 +1210,17 @@
\endp@th
}%
\p@@th
- }%
-\def \c@tcodes {\afterassignment \c@tc@des \c@tcode}%
+ }
+%%% \c@tcodes expects to be followed by the r-h-s of a numeric
+%%% assignment optionally including the assignment operator; it saves
+%%% the value of the r-h-s in \c@tcode, and invokes \c@tc@des.
+\def \c@tcodes {\afterassignment \c@tc@des \c@tcode}
+%%% \c@tc@des uses the value saved in \c@tcode, and assigns it to the
+%%% \catcode of all characters with the single exception of <space>,
+%%% which retains its normal catcode of 10; on exit, every single
+%%% character apart from <space> will have the catcode which followed
+%%% \c@tcodes. The code is optimised to avoid unnecessary usage of
+%%% save-stack space.
\def \c@tc@des
{\c@unter = 0
\loop
@@ -1144,9 +1232,13 @@
\advance \c@unter by 1
\repeat
\catcode `\ = 10
- }%
-\catcode `\@ = \@oldatcatcode
-\discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/|%
+ }
+%%% We restore the original catcode of commercial-at
+\catcode `\@ = \oldc@tcode
+%%% Define a default set of discretionary break characters
+%%% to include all punctuation characters except vertical
+%%% bar
+\discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/|
\ifx\eTeX\undefined
\def\eTeX{\hbox{\mathsurround=0pt $\varepsilon$-\kern-.125em\TeX}}%
\fi
@@ -3163,11 +3255,12 @@
\newdimen\temp@dimen
\def\columnfill{%
\par
- \dimen@=\pagetotal % The height of the text set so far.
- \temp@dimen = \vsize % = \@numcolumns * columnheight
- \divide\temp@dimen by \@numcolumns % find out column height
+ \dimen@ = \pagetotal % The height of the text so far.
+ \temp@dimen = \vsize % = \@numcolumns * columnheight
+ \advance\temp@dimen by -\@col@extraheight
+ \divide\temp@dimen by \@numcolumns % Compute column height
\loop
- \ifdim \dimen@ > \temp@dimen
+ \ifdim \dimen@ > \temp@dimen % more material than a column?
\advance \dimen@ by -\temp@dimen
\advance \dimen@ by \topskip % fudge factor
\repeat
@@ -3175,11 +3268,11 @@
\advance \temp@dimen by -\prevdepth
\@saveclubpenalty
\clubpenalty=10000\relax
- \hrule height\temp@dimen width0pt depth0pt\relax
+ \hrule height\temp@dimen width0pt depth0pt\relax % fill space with rule
\nointerlineskip
\par
\nointerlineskip
- \penalty0\vfil % To allow a page break here.
+ \allowbreak \vfil % To allow a page break here.
\relax
}%
\def\@hldest{%
@@ -4006,6 +4099,7 @@
\global\let\usepackage\fake@usepackage
\let\packageinput=\input
\let\input=\eplaininput
+ \ifx\resetatcatcode\@undefined \else\resetatcatcode \fi
}%
\def\fake@usepackage{\errmessage{You should not use \string\usepackage\space outside of^^J
\@spaces\string\beginpackages...\string\endpackages\space environment}%
@@ -4247,5 +4341,5 @@
\def\fmtname{eplain}%
\def\eplain{t}%
{\edef\plainversion{\fmtversion}%
- \xdef\fmtversion{3.4: 21 February 2010 (and plain \plainversion)}%
+ \xdef\fmtversion{3.5: 8 February 2013 (and plain \plainversion)}%
}%