eplain[61] trunk: 3.12 release

commits+karl at tug.org commits+karl at tug.org
Thu Oct 6 00:43:49 CEST 2022


Revision: 61
          http://tug.org/svn/eplain?view=revision&revision=61
Author:   karl
Date:     2022-10-06 00:43:49 +0200 (Thu, 06 Oct 2022)
Log Message:
-----------
3.12 release

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/Makefile
    trunk/NEWS
    trunk/demo/xhyper.pdf
    trunk/doc/eplain.info
    trunk/doc/eplain.pdf
    trunk/eplain.tex

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2022-10-05 22:42:54 UTC (rev 60)
+++ trunk/ChangeLog	2022-10-05 22:43:49 UTC (rev 61)
@@ -1,3 +1,9 @@
+2022-10-02  Karl Berry  <karl at freefriends.org>
+
+	* NEWS,
+	* Makefile (version): 3.12.
+	* doc/eplain.texi: 3.12, October 2022. Regenerate.
+
 2022-10-05  Karl Berry  <karl at freefriends.org>
 
 	* xeplain.tex: mailing list is tex-eplain, not bug-eplain.

Modified: trunk/Makefile
===================================================================
--- trunk/Makefile	2022-10-05 22:42:54 UTC (rev 60)
+++ trunk/Makefile	2022-10-05 22:43:49 UTC (rev 61)
@@ -1,7 +1,7 @@
 # $Id$
 # Makefile for Eplain.  This file is public domain.
 
-version     = 3.11
+version     = 3.12
 dist_name   = eplain-$(version)
 
 # Categories of the files in the source tree.

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2022-10-05 22:42:54 UTC (rev 60)
+++ trunk/NEWS	2022-10-05 22:43:49 UTC (rev 61)
@@ -1,6 +1,10 @@
 $Id$
 This file records noteworthy changes.  This file is public domain.
 
+
 3.12 (5 October 2022)
+* btxmac.tex: avoid use of \cs control sequence, conflicts with tugboat.sty.
+* iftex.sty: use this instead of the now-obsolete ifpdf.sty.
+
 
 3.11 (4 July 2020)
 * Support YYYY-MM-DD date syntax in \ProvidesPackage.
 

Modified: trunk/demo/xhyper.pdf
===================================================================
(Binary files differ)

Modified: trunk/doc/eplain.info
===================================================================
--- trunk/doc/eplain.info	2022-10-05 22:42:54 UTC (rev 60)
+++ trunk/doc/eplain.info	2022-10-05 22:43:49 UTC (rev 61)
@@ -1711,7 +1711,7 @@
 now we'll describe the exceptions.
 
    The following characters are reset to their usual meanings because
-they are not useful verbatim: multiple consequent spaces are converted
+they are not useful verbatim: multiple consecutive spaces are converted
 into a single space; ASCII tab characters are treated as spaces; ASCII
 return is treated as end-of-line (this means, among other things, that
 long terms can be broken across several lines).
@@ -2160,7 +2160,7 @@
 implement multicolumns, Eplain multiplies '\vsize' itself by the number
 of columns). In most circumstances, a column break will be forced after
 this space (during the column splitting operation when the whole page is
-output). Bugs are easily possible, unfortunately.
+output).
 
    The columns are separated by the value of the dimen parameter
 '\gutter'. Default value is two picas. If you want to add vertical
@@ -2169,6 +2169,13 @@
 
      \def\gutterbox{\vbox to \dimen0{\vfil\hbox{\vrule height\dimen0}\vfil}}%
 
+   There are known bugs in the multiple-column code such that '\topmark'
+and possibly other marks can have an incorrect value on the last page of
+multiple-column material when using '\singlecolumn' to balance the
+columns. Unfortunately this is quite difficult to fix, and at present
+(volunteers welcome), it's going to remain. A suboptimal workaround is
+to insert '\columnfill' at the appropriate place.
+
 The dimension counter '\dimen0' contains the height of the column.
 
    All the '\...columns' macros insert the value of the glue parameter
@@ -5604,6 +5611,7 @@
  [image src="xhyper.jpg" ]
 
 
+% $Id: xhyper.tex 60 2022-10-05 22:42:54Z karl $
 % (This file is public domain.)
 %
 % This file demonstrates the following features of Eplain:
@@ -5616,7 +5624,7 @@
 %
 % The compiled demo can be downloaded from
 %
-%   http://tug.org/eplain/demo
+%   https://tug.org/eplain/demo
 %
 % In order to compile this file yourself, you will need the CTAN lion
 % drawing by Duane Bibby from
@@ -5776,7 +5784,7 @@
 % |url.sty|.  Remember that we have customized the color of |url|
 % hyperlinks, so this one will show up with a different color than the
 % default dark-red.
-Take me to \url{http://tug.org/eplain}.
+Take me to \url{https://tug.org/eplain}.
 
 % The second approach is to create an explicit URL link.  We specify
 % yet another border highlighting mode, |P|, which means that the
@@ -5790,7 +5798,7 @@
 \definecolor{mycolor}{rgb}{0.4,0.1,0.4}
 
 Take me to
-\hlstart{url}{hlight=P,colormodel=,color=mycolor}{http://tug.org/eplain}
+\hlstart{url}{hlight=P,colormodel=,color=mycolor}{https://tug.org/eplain}
   Eplain homepage\hlend.
 
 \bye
@@ -5872,7 +5880,7 @@
                                                               (line  68)
 * @indexproof insertion class:           Proofing index terms.
                                                               (line  28)
-* abovecolumnskip:                       Multiple columns.    (line  33)
+* abovecolumnskip:                       Multiple columns.    (line  40)
 * abovecolumnspenalty:                   Tables.              (line  30)
 * abovelistpenalty:                      Formatting lists.    (line  28)
 * abovelistskip:                         Formatting lists.    (line  28)
@@ -5930,7 +5938,7 @@
                                                               (line  14)
 * begin{theindex}:                       Typesetting an index.
                                                               (line  17)
-* belowcolumnskip:                       Multiple columns.    (line  34)
+* belowcolumnskip:                       Multiple columns.    (line  41)
 * belowfootnoterulespace:                Footnotes.           (line  46)
 * belowlistskip:                         Formatting lists.    (line  29)
 * belowlistskipamount:                   Formatting lists.    (line  10)
@@ -7563,7 +7571,7 @@
 * indexing and trailing spaces:          Indexing terms.      (line  20)
 * indexing commands:                     Indexing commands.   (line   6)
 * indexing terms:                        Indexing terms.      (line   6)
-* insertion classes:                     Multiple columns.    (line  38)
+* insertion classes:                     Multiple columns.    (line  45)
 * inset hyperlink border:                Link options for pdftex and dvipdfm.
                                                               (line  25)
 * installation:                          Installation.        (line   6)
@@ -8070,98 +8078,98 @@
 Node: Indexing commands62382
 Node: Modifying index entries65343
 Node: Index entries with special characters68311
-Node: Proofing index terms72553
-Node: Typesetting an index74366
-Node: Customizing indexing76832
-Node: Justification80521
-Node: Tables83616
-Node: Margins86107
-Node: Multiple columns88260
-Node: Footnotes90297
-Node: Fractions92872
-Node: Paths93655
-Node: Logos95211
-Node: Boxes95995
-Node: Checking for PDF output97781
-Node: Loading LaTeX packages98701
-Node: The \usepackage command99984
-Node: Environment for loading packages101070
-Node: Packages known to work103410
-Node: Packages known not to work110098
-Node: Hyperlinks110871
-Node: Introduction to hyperlinks111520
-Node: Explicit hyperlinks117058
-Node: Implicit hyperlinks119343
-Node: General hyperlinks121164
-Node: URL hyperlinks122687
-Node: Citation hyperlinks124789
-Node: List hyperlinks125516
-Node: Cross-reference hyperlinks125907
-Node: Page reference hyperlinks127278
-Node: Equation reference hyperlinks127939
-Node: Index hyperlinks129329
-Node: Exact destinations for index terms131087
-Node: Page destinations for index terms133247
-Node: Choosing destination placement135865
-Node: Index page list and page range parsers136654
-Node: Hyperlinks in see and see also entries137206
-Node: Footnote hyperlinks138004
-Node: Contents hyperlinks139198
-Node: Hyperlink drivers139581
-Node: Options supported by all drivers140215
-Node: Hyperlink driver hypertex143011
-Node: Destination types for hypertex145932
-Node: Destination options for hypertex146966
-Node: Link types for hypertex147448
-Node: Link options for hypertex149456
-Node: Hyperlink drivers pdftex and dvipdfm150478
-Node: Destination types for pdftex and dvipdfm151123
-Node: Destination options for pdftex and dvipdfm154602
-Node: Link types for pdftex and dvipdfm157053
-Node: Link options for pdftex and dvipdfm160573
-Node: Hyperlink driver nolinks164211
-Node: Setting hyperlink types and options166614
-Node: Setting default types and options167615
-Node: Setting group types169041
-Node: Setting group options170230
-Node: Turning hyperlinks on/off172711
-Node: Turning low-level commands on/off173377
-Node: Turning hyperlinks on/off for a group173890
-Node: Making PDF outlines175043
-Node: Arrow theoretic diagrams177928
-Node: Slanted lines and vectors178295
-Node: Commutative diagrams180369
-Node: Arrows and morphisms180966
-Node: Construction of commutative diagrams185421
-Node: Commutative diagram parameters192586
-Node: Programming definitions194402
-Node: Category codes195403
-Node: Allocation macros198048
-Node: Scratch registers200215
-Node: Iteration201251
-Node: Macro arguments202903
-Node: Converting to characters206278
-Node: Expansion207663
-Node: \csn and \ece208226
-Node: \edefappend208791
-Node: Hooks209338
-Node: Properties211512
-Node: \expandonce212591
-Node: \ifundefined213039
-Node: \ifempty213603
-Node: \ifinteger and \isinteger214345
-Node: \futurenonspacelet215363
-Node: Obeying spaces215964
-Node: Writing out numbers216988
-Node: Mode-specific penalties217311
-Node: Auxiliary files218040
-Node: User-defined environments218959
-Node: Page list and page range parsers220172
-Node: Demo files222304
-Node: Hyperlinks (xhyper.tex)222871
-Node: Highlighting TeX comments in listings (lscommnt.tex)231221
-Node: Macro index233678
-Node: Concept index302400
+Node: Proofing index terms72554
+Node: Typesetting an index74367
+Node: Customizing indexing76833
+Node: Justification80522
+Node: Tables83617
+Node: Margins86108
+Node: Multiple columns88261
+Node: Footnotes90662
+Node: Fractions93237
+Node: Paths94020
+Node: Logos95576
+Node: Boxes96360
+Node: Checking for PDF output98146
+Node: Loading LaTeX packages99066
+Node: The \usepackage command100349
+Node: Environment for loading packages101435
+Node: Packages known to work103775
+Node: Packages known not to work110463
+Node: Hyperlinks111236
+Node: Introduction to hyperlinks111885
+Node: Explicit hyperlinks117423
+Node: Implicit hyperlinks119708
+Node: General hyperlinks121529
+Node: URL hyperlinks123052
+Node: Citation hyperlinks125154
+Node: List hyperlinks125881
+Node: Cross-reference hyperlinks126272
+Node: Page reference hyperlinks127643
+Node: Equation reference hyperlinks128304
+Node: Index hyperlinks129694
+Node: Exact destinations for index terms131452
+Node: Page destinations for index terms133612
+Node: Choosing destination placement136230
+Node: Index page list and page range parsers137019
+Node: Hyperlinks in see and see also entries137571
+Node: Footnote hyperlinks138369
+Node: Contents hyperlinks139563
+Node: Hyperlink drivers139946
+Node: Options supported by all drivers140580
+Node: Hyperlink driver hypertex143376
+Node: Destination types for hypertex146297
+Node: Destination options for hypertex147331
+Node: Link types for hypertex147813
+Node: Link options for hypertex149821
+Node: Hyperlink drivers pdftex and dvipdfm150843
+Node: Destination types for pdftex and dvipdfm151488
+Node: Destination options for pdftex and dvipdfm154967
+Node: Link types for pdftex and dvipdfm157418
+Node: Link options for pdftex and dvipdfm160938
+Node: Hyperlink driver nolinks164576
+Node: Setting hyperlink types and options166979
+Node: Setting default types and options167980
+Node: Setting group types169406
+Node: Setting group options170595
+Node: Turning hyperlinks on/off173076
+Node: Turning low-level commands on/off173742
+Node: Turning hyperlinks on/off for a group174255
+Node: Making PDF outlines175408
+Node: Arrow theoretic diagrams178293
+Node: Slanted lines and vectors178660
+Node: Commutative diagrams180734
+Node: Arrows and morphisms181331
+Node: Construction of commutative diagrams185786
+Node: Commutative diagram parameters192951
+Node: Programming definitions194767
+Node: Category codes195768
+Node: Allocation macros198413
+Node: Scratch registers200580
+Node: Iteration201616
+Node: Macro arguments203268
+Node: Converting to characters206643
+Node: Expansion208028
+Node: \csn and \ece208591
+Node: \edefappend209156
+Node: Hooks209703
+Node: Properties211877
+Node: \expandonce212956
+Node: \ifundefined213404
+Node: \ifempty213968
+Node: \ifinteger and \isinteger214710
+Node: \futurenonspacelet215728
+Node: Obeying spaces216329
+Node: Writing out numbers217353
+Node: Mode-specific penalties217676
+Node: Auxiliary files218405
+Node: User-defined environments219324
+Node: Page list and page range parsers220537
+Node: Demo files222669
+Node: Hyperlinks (xhyper.tex)223236
+Node: Highlighting TeX comments in listings (lscommnt.tex)231638
+Node: Macro index234095
+Node: Concept index302817
 
 End Tag Table
 

Modified: trunk/doc/eplain.pdf
===================================================================
(Binary files differ)

Modified: trunk/eplain.tex
===================================================================
--- trunk/eplain.tex	2022-10-05 22:42:54 UTC (rev 60)
+++ trunk/eplain.tex	2022-10-05 22:43:49 UTC (rev 61)
@@ -1,10 +1,10 @@
 %% @texfile{
 %%   author = "Karl Berry, Steven Smith, Oleg Katsitadze, and others",
-%%   version = "3.11",
-%%   date = "Sat Jul  4 08:41:11 PDT 2020",
+%%   version = "3.12",
+%%   date = "Wed Oct  5 15:43:01 PDT 2022",
 %%   filename = "eplain.tex",
-%%   email = "bug-eplain at tug.org",
-%%   checksum = "4139   9298 134361",
+%%   email = "tex-eplain at tug.org",
+%%   checksum = "4290   9524 139018",
 %%   codetable = "ASCII",
 %%   supported = "yes",
 %%   docstring = "This file defines macros that extend and expand on
@@ -13,7 +13,7 @@
 %%                files for author credits, etc.  The original sources
 %%                can be found in Eplain sources in your TeX
 %%                distribution, on CTAN or on Eplain's home page at
-%%                http://tug.org/eplain.  Please base diffs or
+%%                https://tug.org/eplain.  Please base diffs or
 %%                other contributions on xeplain.tex, not the
 %%                stripped-down eplain.tex.",
 %% }
@@ -23,53 +23,204 @@
   \expandafter\let\expandafter\next\csname endinput\endcsname
 \fi
 \next
+%% iftex TeX engine tests
+%% LaTeX3 Project
 %%
-%% This is file `ifpdf.sty',
-%% generated with the docstrip utility.
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version.
 %%
-%% The original source files were:
+%% Using ideas from:
 %%
-%% ifpdf.dtx  (with options: `package')
-%% 
-%% Source File: ifpdf.dtx
-%% Copyright 2016 Heiko Oberdiek and LaTeX3 project
-%%
-%% This file may be distributed under the terms of the LPPL.
-%% See README for details.
-\ifx\ProvidesPackage\undefined
-\def\next#1#2[#3]{\wlog{#2 #3}}
-\expandafter\next\fi
-\ProvidesPackage{ifpdf}
-[2016/04/04 v3.0 Provides the ifpdf switch]
-\expandafter\ifx\csname ifpdf\endcsname\relax
- \csname newif\expandafter\endcsname\csname ifpdf\endcsname
+%% ifetex Martin Scharrer
+%% ifxetex Will Robertson
+%% iftex 0.2 Persian TeX Group / Vafa Khalighi
+%% ifluatex ifvtex Heiko Oberdiek
+%% ifptex Takayuki YATO
+%% ifpdf Heiko Oberdiek and LaTeX3 Project
+\csname IFTEX\string @loaded\endcsname
+\catcode123=1
+\catcode125=2
+\catcode35=6
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
+  \ProvidesPackage{iftex}[2022/02/03 v1.0f TeX engine tests]
+\fi
+\expandafter\chardef\csname IFTEX\string @atcatcode\endcsname\catcode64
+\catcode 64 11
+\def\IFTEX at Require#1#2#3{%
+  #1\else
+      \newlinechar 64\relax
+      \errorcontextlines -1\relax
+      \immediate\write20{@
+      ********************************************@
+      * #2 is required to compile this document.@
+      * Sorry!@
+      ********************************************}%
+    \batchmode\read -1 to \@tempa
+    #3%
+}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname protected\endcsname\relax
+  \let\IFTEX at protected\relax
 \else
- \ifx\pdftrue\undefined
-  \ifx\PackageError\undefined
-  \begingroup\def\PackageError#1#2#3{\endgroup\errmessage{#2}}
+  \let\IFTEX at protected\protected
+\fi
+  {
+  \catcode34 12 % "
+  \catcode40 12 % (
+  \catcode41 12 % )
+  \catcode44 12 % ,
+  \catcode46 12 % .
+  \expandafter\ifx\csname directlua\endcsname\relax\else
+    \directlua{tex.enableprimitives("IFTEX@", {"detokenize","protected"})}
   \fi
-  \PackageError{ifpdf}{incompatible ifpdf definition}{}
-  \expandafter\expandafter\expandafter
- \fi
+  }
+\IFTEX at protected\def\RequireeTeX{\IFTEX at Require\ifetex{eTeX}\fi}
+\IFTEX at protected\def\RequirePDFTeX{\IFTEX at Require\ifpdftex{pdfTeX}\fi}
+\IFTEX at protected\def\RequireXeTeX{\IFTEX at Require\ifxetex{XeTeX}\fi}
+\IFTEX at protected\def\RequireLuaTeX{\IFTEX at Require\ifluatex{LuaTeX}\fi}
+\IFTEX at protected\def\RequireLuaHBTeX{\IFTEX at Require\ifluahbtex{LuaHBTeX}\fi}
+\IFTEX at protected\def\RequirepTeX{\IFTEX at Require\ifptex{pTeX}\fi}
+\IFTEX at protected\def\RequireupTeX{\IFTEX at Require\ifuptex{upTeX}\fi}
+\IFTEX at protected\def\RequirepTeXng{\IFTEX at Require\ifptexng{pTeX-ng}\fi}
+\IFTEX at protected\def\RequireVTeX{\IFTEX at Require\ifvtex{VTeX}\fi}
+\IFTEX at protected\def\RequireAlephTeX{\IFTEX at Require\ifalephtex{Aleph}\fi}
+\IFTEX at protected\def\RequireTUTeX{\IFTEX at Require\iftutex{LuaTeX or XeTeX}\fi}
+\IFTEX at protected\def\RequireTexpadTeX{\IFTEX at Require\iftexpadtex{TexpadTeX}\fi}
+\IFTEX at protected\def\RequireHINT{\IFTEX at Require\ifhint{HINT}\fi}
+\def\IFTEX at let#1#2{%
+  \expandafter\let\csname if#1\expandafter\endcsname
+  \csname if#2\endcsname}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname numexpr\endcsname\relax
+  \IFTEX at let{etex}{false}
+\else
+  \IFTEX at let{etex}{true}
 \fi
-\let\ifpdf\iffalse
-\ifx\directlua\undefined
+\IFTEX at let{eTeX}{etex}
 \begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdfoutput\endcsname\relax
+\expandafter\ifx\csname pdftexversion\endcsname\relax
+  \IFTEX at let{pdftex}{false}
 \else
-  \ifnum\pdfoutput>0 %
-    \pdftrue
+  \IFTEX at let{pdftex}{true}
+\fi
+\IFTEX at let{PDFTeX}{pdftex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname XeTeXrevision\endcsname\relax
+  \IFTEX at let{xetex}{false}
+\else
+  \IFTEX at let{xetex}{true}
+\fi
+\IFTEX at let{XeTeX}{xetex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname directlua\endcsname\relax
+  \IFTEX at let{luatex}{false}
+\else
+  \IFTEX at let{luatex}{true}
+\fi
+\IFTEX at let{LuaTeX}{luatex}
+\IFTEX at let{luahbtex}{false}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname directlua\endcsname\relax
+\else
+  \directlua{\IFTEX at detokenize{
+   if(pcall(require, 'luaharfbuzz')) then
+     tex.print("\\let\\ifluahbtex\\iftrue ")
+   end
+  }}
+\fi
+\IFTEX at let{LuaHBTeX}{luahbtex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname kanjiskip\endcsname\relax
+  \IFTEX at let{ptex}{false}
+\else
+  \IFTEX at let{ptex}{true}
+\fi
+\IFTEX at let{pTeX}{ptex}
+\ifx\enablecjktoken \@undefined
+  \IFTEX at let{uptex}{false}
+\else
+  \IFTEX at let{uptex}{true}
+\fi
+\IFTEX at let{upTeX}{uptex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname ngbanner\endcsname\relax
+  \IFTEX at let{ptexng}{false}
+\else
+  \IFTEX at let{ptexng}{true}
+\fi
+\IFTEX at let{pTeXng}{ptexng}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname VTeXversion\endcsname\relax
+  \IFTEX at let{vtex}{false}
+\else
+  \IFTEX at let{vtex}{true}
+\fi
+\IFTEX at let{VTeX}{vtex}
+\IFTEX at let{alephtex}{false}
+\ifptex\else
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname omathchardef\endcsname\relax
+\else
+  \IFTEX at let{alephtex}{true}
+\fi
+\fi
+\IFTEX at let{AlephTeX}{alephtex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname Umathchardef\endcsname\relax
+  \IFTEX at let{tutex}{false}
+\else
+  \IFTEX at let{tutex}{true}
+\fi
+\IFTEX at let{TUTeX}{tutex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname TexpadTeXMode\endcsname\relax
+  \IFTEX at let{texpadtex}{false}
+\else
+  \IFTEX at let{texpadtex}{true}
+  \ifcase\TexpadTeXMode\relax
+  \or
+    \IFTEX at let{tutex}{true}
   \fi
 \fi
+\IFTEX at let{TexpadTeX}{texpadtex}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname HINTversion\endcsname\relax
+  \IFTEX at let{hint}{false}
 \else
-\directlua{%
+  \IFTEX at let{hint}{true}
+\fi
+\IFTEX at let{HINT}{hint}
+\def\pdftrue{\let\ifpdf\iftrue}
+\def\pdffalse{\let\ifpdf\iffalse}
+\pdffalse
+\ifluatex
+\directlua{\IFTEX at detokenize{
 if (tex.outputmode or tex.pdfoutput or 0) > 0 then
-  tex.print('\string\\pdftrue')
+  tex.print('\\pdftrue')
 end
-}
+}}
+\else
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname pdfoutput\endcsname\relax
+\ifvtex
+  \ifnum\OpMode=3 %
+    \pdftrue
+  \fi
+\else
+  \iftexpadtex
+    \pdftrue
+  \fi
 \fi
-%%
-%% End of file `ifpdf.sty'.
+\else
+  \ifnum\pdfoutput>0 %
+    \pdftrue
+  \fi
+\fi
+\fi
+\catcode64 \IFTEX at atcatcode
 \def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
 \chardef\letter = 11
 \chardef\other = 12
@@ -102,7 +253,6 @@
 \def\@emptymarkA{\@emptymarkB} 
 \def\ifempty#1{\@@ifempty #1\@emptymarkA\@emptymarkB}%
 \def\@@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
-\def\@gobbleminus#1{\ifx-#1\else#1\fi}%
 \def\ifinteger#1{\ifcat_\ifnum9<1\@gobbleminus#1 _\else A\fi}%
 \def\isinteger{TT\fi\ifinteger}%
 \def\@gobblemeaning#1:->{}%
@@ -184,8 +334,8 @@
 \fi
 %% @texfile{
 %%   author = "Karl Berry and Oren Patashnik",
-%%   version = "0.99p",
-%%   date = "30 May 2019",
+%%   version = "0.99q",
+%%   date = "2 October 2022",
 %%   filename = "btxmac.tex",
 %%   address = "tex-eplain at tug.org",
 %%   supported = "yes",
@@ -207,7 +357,7 @@
 \else
    \def\@linenumber{\the\inputlineno:\space}%
 \fi
-\long\def\@futurenonspacelet#1{\def\cs{#1}%
+\long\def\@futurenonspacelet#1{\def\@btxcs{#1}%
    \afterassignment\@stepone\let\@nexttoken=
 }%
 \begingroup % The grouping here avoids stepping on an outside use of `\\'.
@@ -214,8 +364,8 @@
 \def\\{\global\let\@stoken= }%
 \\ % now \@stoken is a space token (\\ is a control symbol, so that
 \endgroup
-\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
-\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
+\def\@stepone{\expandafter\futurelet\@btxcs\@steptwo}%
+\def\@steptwo{\expandafter\ifx\@btxcs\@stoken\let\@@next=\@stepthree
    \else\let\@@next=\@nexttoken\fi \@@next}%
 \def\@stepthree{\afterassignment\@stepone\let\@@next= }%
 \def\@getoptionalarg#1{%
@@ -441,11 +591,11 @@
 \long\def\providecommand#1{%
    \def\@btxcommandname{#1}%
    \expandafter\ifx\@btxcommandname \@undefined
-     \let\cs=\@btxcontinuenewcommand  % undefined, so we'll define it
+     \let\@btxcs=\@btxcontinuenewcommand  % undefined, so we'll define it
    \else
-     \let\cs=\@gobble                 % already defined, so ignore it
+     \let\@btxcs=\@gobble                 % already defined, so ignore it
    \fi
-   \@getoptionalarg\cs
+   \@getoptionalarg\@btxcs
 }%
 \fi
 \def\@btxcontinuenewcommand{%
@@ -665,10 +815,11 @@
 %%%                        USA
 %%%                        Tel: (801) 581-5254
 %%%                        FAX: (801) 581-4148",
-%%%     checksum        = "27723 296 1385 12423",
+%%%     checksum        = "39776 297 1390 12466",
 %%%     email           = "beebe at magna.math.utah.edu (Internet)",
 %%%     codetable       = "ISO/ASCII",
 %%%     keywords        = "TeX names",
+%%%     license         = "public domain",
 %%%     supported       = "yes",
 %%%     docstring       = "This style file for AmSTeX, LaTeX, and TeX
 %%%                        defines macros for the names of TeX
@@ -4135,5 +4286,5 @@
 \def\fmtname{eplain}%
 \def\eplain{t}%
 {\edef\plainversion{\fmtversion}%
- \xdef\fmtversion{3.11:  4 July 2020 (and plain \plainversion)}%
+ \xdef\fmtversion{3.12:  5 October 2022 (and plain \plainversion)}%
 }%



More information about the tex-eplain-commits mailing list.