summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/xetexdir
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2020-05-04 13:18:16 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2020-05-04 13:18:16 +0000
commit1460531c2d64c686f544746ecbabf81a08dee43b (patch)
tree69cd7c1f41f3670ea47260d936a48490e6122c1b /Build/source/texk/web2c/xetexdir
parent5db712e13acf7b4c8b472ee19929c83f63d007c7 (diff)
Make XeTeX self-TeXable.
Apart from the problem with the \TeXeT macro (left-right switching) 'xetex xetex' produces a nice PDF complete with clickable links -- both from the stand-alone xetex.web and from the fully modified TL variant. git-svn-id: svn://tug.org/texlive/trunk@55001 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/xetexdir')
-rw-r--r--Build/source/texk/web2c/xetexdir/xetex.web25
1 files changed, 13 insertions, 12 deletions
diff --git a/Build/source/texk/web2c/xetexdir/xetex.web b/Build/source/texk/web2c/xetexdir/xetex.web
index d9431aa843c..f374f775f5f 100644
--- a/Build/source/texk/web2c/xetexdir/xetex.web
+++ b/Build/source/texk/web2c/xetexdir/xetex.web
@@ -172,6 +172,8 @@
% "reflectedabout((.5[l,r],0),(.5[l,r],1));";
% input cmbx10
%+++++++++++++++++++++++++++++++++++++++++++++++++
+\def\XeT{X\kern-.125em\lower.424ex\hbox{E}\kern-.1667emT}
+\def\TeXXeT{\TeX-{}-\XeT} % for TeX--XeT
\def\TeXeT{\TeX-{\revrm\beginR\TeX\endR}} % for TeX-XeT
\def\PASCAL{Pascal}
\def\ph{\hbox{Pascal-H}}
@@ -8638,7 +8640,7 @@ else begin start_cs: k:=loc; cur_chr:=buffer[k]; cat:=cat_code(cur_chr);
|goto found|@>
else @<If an expanded code is present, reduce it and |goto start_cs|@>;
{At this point, we have a single-character cs name in the buffer.
- But if the character code is > @"FFFF, we treat it like a multiletter name
+ But if the character code is > |@"FFFF|, we treat it like a multiletter name
for string purposes, because we use UTF-16 in the string pool.}
if buffer[loc]>@"FFFF then begin
cur_cs:=id_lookup(loc,1); incr(loc); goto found;
@@ -9054,7 +9056,6 @@ else begin
end;
goto restart;
end
-@z
@ @<Complain about an undefined macro@>=
begin print_err("Undefined control sequence");
@@ -14745,7 +14746,7 @@ end_node_run: {now |r| points to first |native_word_node| of the run, and |p| to
link(p):=null;
{ Extract any "invisible" nodes from the old list and insert them after the new node,
so we don't lose them altogether. Note that the first node cannot be one of these,
- as we always start merging at a native_word node. }
+ as we always start merging at a |native_word| node. }
prev_p := r;
p := link(r);
while p <> null do begin
@@ -15268,7 +15269,7 @@ while font_ptr>font_base do
decr(font_ptr);
end
-@* \[32b] \pdfTeX\ output low-level subroutines (equivalents)
+@* \[32b] \pdfTeX\ output low-level subroutines (equivalents).
@<Glob...@>=
@!epochseconds: integer;
@@ -21298,8 +21299,8 @@ terminating node $p_m$. All characters that do not have the same font as
$c_1$ will be treated as nonletters. The |hyphen_char| for that font
must be between 0 and 255, otherwise hyphenation will not be attempted.
\TeX\ looks ahead for as many consecutive letters $c_1\ldots c_n$ as
-possible; however, |n| must be less than max_hyphenatable_length+1, so a character that would
-otherwise be $c_{max_hyphenatable_length+1}$ is effectively not a letter. Furthermore $c_n$ must
+possible; however, |n| must be less than |max_hyphenatable_length+1|, so a character that would
+otherwise be $c_{|max_hyphenatable_length|+1}$ is effectively not a letter. Furthermore $c_n$ must
not be in the middle of a ligature. In this way we obtain a string of
letters $c_1\ldots c_n$ that are generated by nodes $p_a\ldots p_b$, where
|1<=a<=b+1<=m|. If |n>=l_hyf+r_hyf|, this string qualifies for hyphenation;
@@ -24427,7 +24428,7 @@ collected:
measure that space in context and replace it with an adjusted glue value
if it differs from the font's normal space. }
- { First we look for the most recent native_word in the list and set |main_pp| to it.
+ { First we look for the most recent |native_word| in the list and set |main_pp| to it.
This is potentially expensive, in the case of very long paragraphs,
but in practice it's negligible compared to the cost of shaping and measurement. }
main_p := head;
@@ -24443,9 +24444,9 @@ collected:
main_p := link(main_pp);
{ Skip nodes that should be invisible to inter-word spacing,
- so that e.g. |\nobreak\ | doesn't prevent contextual measurement.
+ so that e.g. \.{\\nobreak\\ } doesn't prevent contextual measurement.
This loop is guaranteed to end safely because it'll eventually hit
- |tail|, which is a native_word node, if nothing else intervenes. }
+ |tail|, which is a |native_word| node, if nothing else intervenes. }
while node_is_invisible_to_interword_space(main_p) do
main_p := link(main_p);
@@ -24459,7 +24460,7 @@ collected:
if main_ppp = tail then begin
{ We found a candidate inter-word space! Collect the characters of both words,
- separated by a single space, into a native_word node and measure its overall width. }
+ separated by a single space, into a |native_word| node and measure its overall width. }
temp_ptr := new_native_word_node(main_f, native_length(main_pp) + 1 + native_length(tail));
main_k := 0;
for t := 0 to native_length(main_pp)-1 do begin
@@ -33335,8 +33336,8 @@ sparse array of the up to 32512 additional registers of each kind,
one for inter-character token lists at specified class transitions, and
one for the sparse array of the up to 32767 additional mark classes.
The root of each such tree, if it exists, is an index node containing 64
-pointers to subtrees for 64^4 consecutive array elements. Similar index
-nodes are the starting points for all nonempty subtrees for 64^3, 64^2,
+pointers to subtrees for $64^4$ consecutive array elements. Similar index
+nodes are the starting points for all nonempty subtrees for $64^3$, $64^2$,
and 64 consecutive array elements. These four levels of index nodes are
followed by a fifth level with nodes for the individual array elements.