Skip to content

Commit

Permalink
synchronized texlive 69055.
Browse files Browse the repository at this point in the history
  • Loading branch information
clerkma committed Dec 7, 2023
1 parent 52e14d5 commit 4434ef4
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 46 deletions.
14 changes: 10 additions & 4 deletions texlive/texk/texlive/linked_scripts/texlive/fmtutil.pl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env perl
# $Id: fmtutil.pl 68715 2023-11-01 17:28:01Z karl $
# $Id: fmtutil.pl 68962 2023-11-24 23:01:43Z karl $
# fmtutil - utility to maintain format files.
# (Maintained in TeX Live:Master/texmf-dist/scripts/texlive.)
#
Expand All @@ -24,11 +24,11 @@ BEGIN
TeX::Update->import();
}

my $svnid = '$Id: fmtutil.pl 68715 2023-11-01 17:28:01Z karl $';
my $lastchdate = '$Date: 2023-11-01 18:28:01 +0100 (Wed, 01 Nov 2023) $';
my $svnid = '$Id: fmtutil.pl 68962 2023-11-24 23:01:43Z karl $';
my $lastchdate = '$Date: 2023-11-25 00:01:43 +0100 (Sat, 25 Nov 2023) $';
$lastchdate =~ s/^\$Date:\s*//;
$lastchdate =~ s/ \(.*$//;
my $svnrev = '$Revision: 68715 $';
my $svnrev = '$Revision: 68962 $';
$svnrev =~ s/^\$Revision:\s*//;
$svnrev =~ s/\s*\$$//;
my $version = "r$svnrev ($lastchdate)";
Expand Down Expand Up @@ -1611,6 +1611,12 @@ sub help {
easily running development binaries in parallel with the released
binaries.
Environment:
This script runs TeX and Metafont to generate the fmt/base file, and
thus all normal environment variables and search path rules for TeX/MF
apply.
Report bugs to: tex-live\@tug.org
TeX Live home page: <https://tug.org/texlive/>
EOF
Expand Down
Binary file modified texlive/texk/web2c/hitexdir/doc/hiformat.hnt
Binary file not shown.
Binary file modified texlive/texk/web2c/hitexdir/doc/hiformat.pdf
Binary file not shown.
Binary file modified texlive/texk/web2c/hitexdir/doc/hitexman.hnt
Binary file not shown.
Binary file modified texlive/texk/web2c/hitexdir/doc/hitexman.pdf
Binary file not shown.
119 changes: 79 additions & 40 deletions texlive/texk/web2c/hitexdir/doc/hitexman.tex
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
\medskip
{\tt ruckert\:@cs.hm.edu}
\medskip
\def\lastrevision{Date: Mon Nov 13 10:27:05 2023}
\def\lastrevision{Date: Mon Dec 4 15:00:09 2023}
\lastrevision\par
}
\eject
Expand All @@ -117,7 +117,40 @@
\def\opt#1{\rs$[{}$#1${}]$\rs}
\def\ctl#1{{\tt\BS #1}}

\section{Hi\TeX\ primitives}
\section{Introduction}
When I started the \HINT\ project in 2017,
I tried to keep the project as small as possible to increase the
chances that I would be able to complete it. So one design decision
was to keep things simple---or to quote Albert Einstein: ``Make things
as simple as possible, but not simpler''. The other imperative was:
keep things out of the viewer if possible because I do not know
how much processing power or battery power is available.

As a consequence, I focused on Donald Knuth' original \TeX,
disregarding all later extensions like \eTeX\ or \LaTeX, and I
decided that the \TeX\ interpreter would not need to run in the
viewer.
Of course \TeX's line breaking routine will run in the viewer
and modifications of \TeX's page breaking routine.
But the decision to keep the TeX interpreter
out of the HINT viewer implies that \HINT\ files do
not contain token lists and that there are
neither output routines nor marks.
To replace them, the \HINT\ file format includes
page templates. I have described the technical
means to specify page templates below and try to explain
the rationale behind it, but \HINT's page templates
are at the time of this writing a largely untested area.

By now, the state of the \HINT\ project is far beyond of what
I had expected then, and the processing power of even low-cost
mobile devices is far better than expected especially when programming the
graphics card directly using OpenEGL.

The following sections will describe all the primitive control sequences
that are special for Hi\TeX. I tried to be as close to similar primitives
that have proven to be useful in other engines, notably pdftex, to make
it easy for package writers to support the Hi\TeX\ engine.

While currently Hi\TeX\ is the only \TeX\ engine that supports output in the \HINT\ file
format, this might not be so forever. To avoid unnecessary complications for
Expand All @@ -126,7 +159,28 @@ \section{Hi\TeX\ primitives}
draft of this specification. All the primitives use {\tt HINT} as a prefix to
avoid name conflicts. The prefix {\tt HINT}, as opposed to e.g. {\tt HiTeX},
was chosen to stress the idea that these primitives are specific for the
output format---not for the \TeX\ engine.
output format---not for the \TeX\ engine.

It is common practice in other \TeX\ engines to support the \ctl{special}
primitive to insert raw code snippets in the output. Using this primitive,
it is possible to insert PostScript code into a PS file, or PDF code in a
PDF output file. It is currently not planed to support this mechanism for
\HINT\ output files for two reasons:
First, the development of Hi\TeX\ is closely related to the development of
the \HINT\ file format and therefore features that are part of the \HINT\
file format will enjoy support in Hi\TeX\ by corresponding primitives.
Everything that is not available through primitives in Hi\TeX\ should
be considered ``internal'' and might change in the future.
Second, Hi\TeX\ is not considered a replacement but
a supplement to other engines. If your aim is the production of a printed
book, your will probably target one of the engines that produce PDF output.
But if, on occassion, you want to read what you wrote on a computer screen,
you might just use Hi\TeX\ to process your source file. At this point you
do not want to write \ctl{special} commands for the new target; you want
Hi\TeX\ as a plug-in replacement for your main target engine, even if it
is not completely faithful to your final printed book.

\section{Hi\TeX\ primitives}

Because this is the first specification that will reach a wider user base,
it is reasonable to expect changes to occur in the future. Therefore it is
Expand Down Expand Up @@ -176,7 +230,7 @@ \subsection{Syntax Description}
\subsection{Version and Revision}
The control sequences \ctl{HINTversion}\index{HINTversion+\ctl{HINTversion}}
and \ctl{HINTminorversion}\index{HINTminorversion+\ctl{HINTminorversion}} are
used to determine the major and minor version numbers of the HINT output format
used to determine the major and minor version numbers of the \HINT\ output format
that is generated by Hi\TeX. It can be used as part of the output as
in \verbatim|\the\HINTversion|.
The most important use, however, is testing whether the current \TeX\ engine
Expand All @@ -187,7 +241,8 @@ \subsection{Version and Revision}

\verbatim/
\newif\ifhint
\expandafter\ifx\csname HINTversion\endcsname\relax
\expandafter
\ifx\csname HINTversion\endcsname\relax
\hintfalse\else\hinttrue\fi/


Expand Down Expand Up @@ -228,6 +283,8 @@ \subsection{Images}
It is considered an error if valid settings for the image's width and height
can not be obtained.



\subsection{Links, Labels, and Outlines}
A link\index{link} in a \HINT\ document refers to another location in the same document.
It can be used to navigate to that location.
Expand Down Expand Up @@ -440,45 +497,13 @@ \subsection{Page Templates and Streams}\index{page template}\index{stream}
be given in this section, you should read section~\secref{build}.

\section{Other Primitives}
When I started the \HINT\ project in 2017,
I tried to keep the project as small as possible to increase the
chances that I would be able to complete it. So one design decision
was to keep things simple---or to quote Albert Einstein: ``Make things
as simple as possible, but not simpler''. The other imperative was:
keep things out of the viewer if possible because I do not know
how much processing power or battery power is available.
As a consequence, I focused on Donald Knuth' original \TeX,
disregarding all later extensions like \eTeX\ or \LaTeX, and I
decided that the \TeX\ interpreter would not need to run in the
viewer.

By now, the state of the \HINT\ project is far beyond of what
I had expected then, and the processing power of even low-cost
mobile devices is far better than expected especially when programming the
graphics card directly using OpenEGL.

But the line breaking routine, which is running in the viewer, and the
HINT file format, which specifies all the parameters for the
line breaking algorithm, covers just the line breaking of
Donald Knuth's original \TeX. Therefore the viewer will
also do just that, and Hi\TeX\ can not produce files
doing more than that. Of course that might not be so
for ever.
Similarly, the decision to keep the TeX interpreter
out of the HINT viewer implies that \HINT\ files do
not contain token lists. This means that there are
no output routines and no marks.
To replace them, the \HINT\ file format includes
page templates. I have described the technical
means to specify page templates above and try to explain
the rationale behind it below, but \HINT's page templates
are at the time of this writing a largely untested area.

Since I consider the support for \LaTeX\ to be crucial for
the success of the \HINT\ project, quite a few primitives
have been added to Hi\TeX\ that go beyond \TeX's original
specification.

\subsection{\eTeX}
First, the primitives of \eTeX\ have been
added with the exception of those primitives that deal with
line breaking, with right to left reading, and with marks.
Expand All @@ -495,6 +520,7 @@ \section{Other Primitives}
\item\ctl{topmarks} (multiple marks)
\enditemize

\subsection{\LaTeX\ and \Prote}
Second, the primitives required to support
\LaTeX\ were added using Thierry Larondes implementation of \Prote.

Expand All @@ -515,6 +541,17 @@ \section{Other Primitives}
\enditemize


\subsection{{\tt kpathsearch} and \ctl{input}}
In Don Knuths implementation of \TeX, the \ctl{input} primitive
will add the extension {\tt .tex} to any filename that does not have an
extension. This implies that a file without extension can not be opened
as an input file. The usual engines do not add such an extension but
pass the filename as given to \verbatim/kpse_find_file/ function.
Hi\TeX\ does the same. The {\tt kpathsearch} library will find files
in a variety of directories and yes, it will also find files without
extension. Using this library is just mandatory for any engine that
wants to process \LaTeX\ input.


\section{Replacing \TeX's Page Builder}\label{build}

Expand Down Expand Up @@ -555,7 +592,8 @@ \subsection{\TeX's page building mechanism}
\TeX's page builder ignores leading glue\index{glue}, kern\index{kern},
and penalty\index{penalty} nodes until the first
box\index{box node} or rule\index{rule node} node is encountered;
whatsit\index{whatsit node} nodes do not really contribute anything to
whatsit\index{whatsit node} nodes do not really contribute
anything\footnote*{This changes when images are implemented as whatsit nodes.} to
a page; mark\index{mark node} nodes are recorded for later use. Once
the first box, rule, or insert\index{insert node} arrives, \TeX\ makes
copies of all parameters that influence the page building process and
Expand All @@ -577,7 +615,8 @@ \subsection{\TeX's page building mechanism}
extra space needed on a page if there are any insertions of class $i$.

For example plain \TeX\ allocates $n=254$ for footnotes\index{footnote} and sets
{\tt count254} to~$1000$, {\tt dimen254} to 8in, and {\tt skip254} to {\tt \BS big\-skip\-amount}.
{\tt count254} to~$1000$, {\tt dimen254} to 8in, and {\tt skip254} to
{\tt \BS big\-skip\-amount}.

An insertion node will specify the insertion class $i$, some vertical material,
its natural height plus depth $x$, a {\tt split\-\_top\-\_skip}, a {\tt split\-\_max\_depth},
Expand Down
4 changes: 2 additions & 2 deletions texlive/texk/web2c/hitexdir/hiformat.w
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,8 @@ ISBN-13: 979-854992684-4\par
First printing: August 2019\par
Second edition: August 2021\par
\medskip
\def\lastrevision{Date: Mon Nov 27 12:09:01 2023}
\lastrevision\par
Last commit: Mon Dec 4 15:00:09 2023
\par
}
}
\endgroup
Expand Down

0 comments on commit 4434ef4

Please sign in to comment.