texlive[55001] Build/source/texk/web2c/xetexdir/xetex.web: Make XeTeX

commits+ascherer at tug.org commits+ascherer at tug.org
Mon May 4 15:18:16 CEST 2020


Revision: 55001
          http://tug.org/svn/texlive?view=revision&revision=55001
Author:   ascherer
Date:     2020-05-04 15:18:16 +0200 (Mon, 04 May 2020)
Log Message:
-----------
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.

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/xetexdir/xetex.web

Modified: trunk/Build/source/texk/web2c/xetexdir/xetex.web
===================================================================
--- trunk/Build/source/texk/web2c/xetexdir/xetex.web	2020-05-04 13:17:56 UTC (rev 55000)
+++ trunk/Build/source/texk/web2c/xetexdir/xetex.web	2020-05-04 13:18:16 UTC (rev 55001)
@@ -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 @@
     |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 @@
   end;
 goto restart;
 end
- at z
 
 @ @<Complain about an undefined macro@>=
 begin print_err("Undefined control sequence");
@@ -14745,7 +14746,7 @@
         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 @@
   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 @@
 $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 @@
       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 @@
         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 @@
 
           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 @@
 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.
 



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