texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Gavin D. Smith
Date: Mon, 26 Sep 2022 12:59:41 -0400 (EDT)

branch: master
commit ac454cb9217ba88206844f36773db5b012df1259
Author: Werner Lemberg <wl@gnu.org>
AuthorDate: Mon Sep 26 17:57:21 2022 +0100

    * doc/texinfo.tex: Fix character protrusion in `@microtype`.
    
    First of all, character protrusion wasn't activated at all.
    Additionally, the code from the original `protcode.tex` was added
    incompletely, causing far too large protrusion values.
    
    * doc/texinfo.tex (\countB): New counter.
    (\mtadjustprotcode, \mtadjustcp): New macros.
    (\mtsetprotcode): Call `\mtadjustprotcode` to scale protrusion
    values correctly.
    (\microtypeON, \microtypeOFF): Switch on or off character
    protrusion.
---
 ChangeLog       | 15 +++++++++++++
 doc/texinfo.tex | 65 ++++++++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 63 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4419495c07..cfe416c115 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2022-09-26  Werner Lemberg  <wl@gnu.org>
+
+       * doc/texinfo.tex: Fix character protrusion in `@microtype`.
+
+       First of all, character protrusion wasn't activated at all. 
+       Additionally, the code from the original `protcode.tex` was added
+       incompletely, causing far too large protrusion values.
+
+       * doc/texinfo.tex (\countB): New counter.
+       (\mtadjustprotcode, \mtadjustcp): New macros.
+       (\mtsetprotcode): Call `\mtadjustprotcode` to scale protrusion
+       values correctly.
+       (\microtypeON, \microtypeOFF): Switch on or off character
+       protrusion.
+
 2022-09-26  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Common.pm (%blockitem_commands),
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index de59db7951..3b8e7acb8d 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,10 +1,9 @@
-
 % texinfo.tex -- TeX macros to handle Texinfo files.
 % 
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2022-09-25.13}
+\def\texinfoversion{2022-09-26.16}
 %
 % Copyright 1985, 1986, 1988, 1990-2022 Free Software Foundation, Inc.
 %
@@ -11419,21 +11418,49 @@ directory should work if nowhere else does.}
 
 % protrusion, from Thanh's protcode.tex.
 \def\mtsetprotcode#1{%
-    \rpcode#1`\!=200  \rpcode#1`\,=700  \rpcode#1`\-=700  \rpcode#1`\.=700
-    \rpcode#1`\;=500  \rpcode#1`\:=500  \rpcode#1`\?=200  \lpcode#1`\`=700
-    \rpcode#1`\'=700
-    \lpcode#1 92=500  % ``
-    \rpcode#1 34=500  % ''
-    \rpcode#1 123=300 % --
-    \rpcode#1 124=200 % ---
-    \rpcode#1`\)=50   \rpcode#1`\A=50   \rpcode#1`\F=50   \rpcode#1`\K=50
-    \rpcode#1`\L=50   \rpcode#1`\T=50   \rpcode#1`\V=50   \rpcode#1`\W=50
-    \rpcode#1`\X=50   \rpcode#1`\Y=50   \rpcode#1`\k=50   \rpcode#1`\r=50
-    \rpcode#1`\t=50   \rpcode#1`\v=50   \rpcode#1`\w=50   \rpcode#1`\x=50
-    \rpcode#1`\y=50   \lpcode#1`\(=50   \lpcode#1`\A=50   \lpcode#1`\J=50
-    \lpcode#1`\T=50   \lpcode#1`\V=50   \lpcode#1`\W=50   \lpcode#1`\X=50
-    \lpcode#1`\Y=50   \lpcode#1`\v=50   \lpcode#1`\w=50   \lpcode#1`\x=50
-    \lpcode#1`\y=0
+  \rpcode#1`\!=200  \rpcode#1`\,=700  \rpcode#1`\-=700  \rpcode#1`\.=700
+  \rpcode#1`\;=500  \rpcode#1`\:=500  \rpcode#1`\?=200
+  \rpcode#1`\'=700
+  \rpcode#1 34=500  % ''
+  \rpcode#1 123=300 % --
+  \rpcode#1 124=200 % ---
+  \rpcode#1`\)=50   \rpcode#1`\A=50   \rpcode#1`\F=50   \rpcode#1`\K=50
+  \rpcode#1`\L=50   \rpcode#1`\T=50   \rpcode#1`\V=50   \rpcode#1`\W=50
+  \rpcode#1`\X=50   \rpcode#1`\Y=50   \rpcode#1`\k=50   \rpcode#1`\r=50
+  \rpcode#1`\t=50   \rpcode#1`\v=50   \rpcode#1`\w=50   \rpcode#1`\x=50
+  \rpcode#1`\y=50
+  %
+  \lpcode#1`\`=700
+  \lpcode#1 92=500  % ``
+  \lpcode#1`\(=50   \lpcode#1`\A=50   \lpcode#1`\J=50   \lpcode#1`\T=50
+  \lpcode#1`\V=50   \lpcode#1`\W=50   \lpcode#1`\X=50   \lpcode#1`\Y=50
+  \lpcode#1`\v=50   \lpcode#1`\w=50   \lpcode#1`\x=50   \lpcode#1`\y=0
+  %
+  \mtadjustprotcode#1\relax
+}
+
+\def\mtadjustprotcode#1{%
+  \countA=0
+  \loop
+    \ifcase\lpcode#1\countA\else
+      \mtadjustcp\lpcode#1\countA
+    \fi
+    \ifcase\rpcode#1\countA\else
+      \mtadjustcp\rpcode#1\countA
+    \fi
+    \advance\countA 1
+  \ifnum\countA < 256 \repeat
+}
+
+\newcount\countB
+\def\mtadjustcp#1#2#3{%
+  \setbox\boxA=\hbox{%
+    \ifx#2\font\else#2\fi
+    \char#3}%
+  \countB=\wd\boxA
+  \multiply\countB #1#2#3\relax
+  \divide\countB \fontdimen6 #2\relax
+  #1#2#3=\countB\relax
 }
 
 \ifx\luatexversion\thisisundefined
@@ -11457,9 +11484,11 @@ directory should work if nowhere else does.}
   \ifx\luatexversion\thisisundefined
     \ifpdf % pdfTeX
       \pdfadjustspacing=2
+      \pdfprotrudechars=2
     \fi
   \else % LuaTeX
     \adjustspacing=2
+    \protrudechars=2
   \fi
   \mtfontexpand\textrm
   \mtfontexpand\textsl
@@ -11473,9 +11502,11 @@ directory should work if nowhere else does.}
   \ifx\luatexversion\thisisundefined
     \ifpdf % pdfTeX
       \pdfadjustspacing=0
+      \pdfprotrudechars=0
     \fi
   \else % LuaTeX
     \adjustspacing=0
+    \protrudechars=0
   \fi
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]