[latex3-commits] [git/LaTeX3-latex3-latex3] master: Use (x)dvipdfmx matrix op when available (0c20b83)

Joseph Wright joseph.wright at morningstar2.co.uk
Sun Mar 4 23:12:16 CET 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/0c20b83bcfefdcffbd34038ed74001c2d9a8b821

>---------------------------------------------------------------

commit 0c20b83bcfefdcffbd34038ed74001c2d9a8b821
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sun Mar 4 22:12:16 2018 +0000

    Use (x)dvipdfmx matrix op when available
    
    This one is tricky: there are a pair of specials,
    so we can't use it for setting the CTM directly.
    Thus this can only be used where we know exactly
    when a transformation ends.


>---------------------------------------------------------------

0c20b83bcfefdcffbd34038ed74001c2d9a8b821
 l3experimental/l3draw/testfiles/m3draw005.ptex.tlg |    5 +--
 .../l3draw/testfiles/m3draw005.uptex.tlg           |    5 +--
 .../l3draw/testfiles/m3draw005.xetex.tlg           |    5 +--
 l3experimental/l3draw/testfiles/m3draw006.ptex.tlg |   45 ++++++++------------
 .../l3draw/testfiles/m3draw006.uptex.tlg           |   45 ++++++++------------
 .../l3draw/testfiles/m3draw006.xetex.tlg           |   45 ++++++++------------
 l3kernel/l3drivers.dtx                             |   16 +++++--
 7 files changed, 73 insertions(+), 93 deletions(-)

diff --git a/l3experimental/l3draw/testfiles/m3draw005.ptex.tlg b/l3experimental/l3draw/testfiles/m3draw005.ptex.tlg
index fec2697..ce388b6 100644
--- a/l3experimental/l3draw/testfiles/m3draw005.ptex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw005.ptex.tlg
@@ -43,9 +43,7 @@ TEST 2: \draw_suspend_begin:
 ....\kern 0.0
 ....\hbox(285.52756+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(285.52756+0.0)x0.0, glue set - 57.90552fil
 ......\hbox(285.52756+0.0)x57.90552
 .......\hbox(285.52756+0.0)x57.90552
@@ -63,6 +61,7 @@ TEST 2: \draw_suspend_begin:
 .........\special{color pop}
 .......\special{pdf:literal Q}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal 0 0 m}
 ...\special{pdf:literal 28.34647 283.46457 l}
diff --git a/l3experimental/l3draw/testfiles/m3draw005.uptex.tlg b/l3experimental/l3draw/testfiles/m3draw005.uptex.tlg
index fec2697..ce388b6 100644
--- a/l3experimental/l3draw/testfiles/m3draw005.uptex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw005.uptex.tlg
@@ -43,9 +43,7 @@ TEST 2: \draw_suspend_begin:
 ....\kern 0.0
 ....\hbox(285.52756+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(285.52756+0.0)x0.0, glue set - 57.90552fil
 ......\hbox(285.52756+0.0)x57.90552
 .......\hbox(285.52756+0.0)x57.90552
@@ -63,6 +61,7 @@ TEST 2: \draw_suspend_begin:
 .........\special{color pop}
 .......\special{pdf:literal Q}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal 0 0 m}
 ...\special{pdf:literal 28.34647 283.46457 l}
diff --git a/l3experimental/l3draw/testfiles/m3draw005.xetex.tlg b/l3experimental/l3draw/testfiles/m3draw005.xetex.tlg
index fec2697..ce388b6 100644
--- a/l3experimental/l3draw/testfiles/m3draw005.xetex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw005.xetex.tlg
@@ -43,9 +43,7 @@ TEST 2: \draw_suspend_begin:
 ....\kern 0.0
 ....\hbox(285.52756+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(285.52756+0.0)x0.0, glue set - 57.90552fil
 ......\hbox(285.52756+0.0)x57.90552
 .......\hbox(285.52756+0.0)x57.90552
@@ -63,6 +61,7 @@ TEST 2: \draw_suspend_begin:
 .........\special{color pop}
 .......\special{pdf:literal Q}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal 0 0 m}
 ...\special{pdf:literal 28.34647 283.46457 l}
diff --git a/l3experimental/l3draw/testfiles/m3draw006.ptex.tlg b/l3experimental/l3draw/testfiles/m3draw006.ptex.tlg
index 1049fc8..876527b 100644
--- a/l3experimental/l3draw/testfiles/m3draw006.ptex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw006.ptex.tlg
@@ -20,9 +20,7 @@ TEST 1: \draw_box_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -31,6 +29,7 @@ TEST 1: \draw_box_use:N
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -54,9 +53,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -65,6 +62,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -88,9 +86,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -99,6 +95,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -122,9 +119,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -133,6 +128,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -160,9 +156,7 @@ TEST 2: \draw_coffin_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -178,6 +172,7 @@ TEST 2: \draw_coffin_use:N
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -201,9 +196,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(3.47221+3.47223)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(3.47221+3.47223)x0.0, glue set - 11.25003fil
 ......\hbox(3.47221+3.47223)x11.25003
 .......\hbox(3.47221+3.47223)x11.25003
@@ -219,6 +212,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -242,9 +236,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -260,6 +252,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -283,9 +276,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -301,6 +292,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -324,9 +316,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -342,6 +332,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
diff --git a/l3experimental/l3draw/testfiles/m3draw006.uptex.tlg b/l3experimental/l3draw/testfiles/m3draw006.uptex.tlg
index 1049fc8..876527b 100644
--- a/l3experimental/l3draw/testfiles/m3draw006.uptex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw006.uptex.tlg
@@ -20,9 +20,7 @@ TEST 1: \draw_box_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -31,6 +29,7 @@ TEST 1: \draw_box_use:N
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -54,9 +53,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -65,6 +62,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -88,9 +86,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -99,6 +95,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -122,9 +119,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -133,6 +128,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -160,9 +156,7 @@ TEST 2: \draw_coffin_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -178,6 +172,7 @@ TEST 2: \draw_coffin_use:N
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -201,9 +196,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(3.47221+3.47223)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(3.47221+3.47223)x0.0, glue set - 11.25003fil
 ......\hbox(3.47221+3.47223)x11.25003
 .......\hbox(3.47221+3.47223)x11.25003
@@ -219,6 +212,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -242,9 +236,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -260,6 +252,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -283,9 +276,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -301,6 +292,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -324,9 +316,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -342,6 +332,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
diff --git a/l3experimental/l3draw/testfiles/m3draw006.xetex.tlg b/l3experimental/l3draw/testfiles/m3draw006.xetex.tlg
index 1049fc8..876527b 100644
--- a/l3experimental/l3draw/testfiles/m3draw006.xetex.tlg
+++ b/l3experimental/l3draw/testfiles/m3draw006.xetex.tlg
@@ -20,9 +20,7 @@ TEST 1: \draw_box_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -31,6 +29,7 @@ TEST 1: \draw_box_use:N
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -54,9 +53,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -65,6 +62,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -88,9 +86,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -99,6 +95,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -122,9 +119,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\OT1/cmr/m/n/10 H
@@ -133,6 +128,7 @@ l. ...  }
 .......\OT1/cmr/m/n/10 l
 .......\OT1/cmr/m/n/10 o
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -160,9 +156,7 @@ TEST 2: \draw_coffin_use:N
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -178,6 +172,7 @@ TEST 2: \draw_coffin_use:N
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -201,9 +196,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(3.47221+3.47223)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(3.47221+3.47223)x0.0, glue set - 11.25003fil
 ......\hbox(3.47221+3.47223)x11.25003
 .......\hbox(3.47221+3.47223)x11.25003
@@ -219,6 +212,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -242,9 +236,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 2 2}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 2 0 0 2 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -260,6 +252,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -283,9 +276,7 @@ l. ...  }
 ....\kern 0.0
 ....\hbox(6.94444+0.0)x0.0
 .....\special{x:gsave}
-.....\special{x:rotate 31.71747}
-.....\special{x:scale 1.61803 0.61803}
-.....\special{x:rotate -58.28253}
+.....\special{pdf:btrans matrix 1 0 1 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -301,6 +292,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
@@ -324,9 +316,7 @@ l. ...  }
 ....\kern 56.90552
 ....\hbox(6.94444+0.0)x0.0, shifted -56.90552
 .....\special{x:gsave}
-.....\special{x:rotate 22.5}
-.....\special{x:scale 1 1}
-.....\special{x:rotate -22.5}
+.....\special{pdf:btrans matrix 1 0 0 1 0 0}
 .....\hbox(6.94444+0.0)x0.0, glue set - 22.50005fil
 ......\hbox(6.94444+0.0)x22.50005
 .......\hbox(6.94444+0.0)x22.50005
@@ -342,6 +332,7 @@ l. ...  }
 .........\OT1/cmr/m/n/10 o
 .........\special{color pop}
 ......\glue 0.0 plus 1.0fil minus 1.0fil
+.....\special{pdf:etrans}
 .....\special{x:grestore}
 ...\special{pdf:literal Q}
 ...\special{color pop}
diff --git a/l3kernel/l3drivers.dtx b/l3kernel/l3drivers.dtx
index 9a6d7a5..0b0303f 100644
--- a/l3kernel/l3drivers.dtx
+++ b/l3kernel/l3drivers.dtx
@@ -2040,13 +2040,15 @@
 % \end{macro}
 % \end{macro}
 %
-% \begin{macro}{\driver_draw_cc:nnnn}
+% \begin{macro}{\driver_draw_cm:nnnn}
 % \begin{macro}{\@@_draw_cm:nnnn}
 %   Another split here between \texttt{pdfmode} and \texttt{(x)dvipdfmx}.
 %   In the former, we have a direct method to maintain alignment: the driver
-%   can use a matrix itself. For \texttt{(x)dvipdfmx} we can to decompose the
+%   can use a matrix itself. For \texttt{(x)dvipdfmx}, we can to decompose the
 %   matrix into rotations and a scaling, then use those operations as they
-%   are handled by the driver..
+%   are handled by the driver. (There is driver support for matrix operations in
+%   \texttt{(x)dvipdfmx}, but as a matched pair so not suitable for the
+%   \enquote{stand alone} transformation set up here.)
 %    \begin{macrocode}
 \cs_new_protected:Npn \driver_draw_cm:nnnn #1#2#3#4
   {
@@ -2201,8 +2203,16 @@
 \cs_new_protected:Npn \driver_draw_box_use:Nnnnn #1#2#3#4#5
   {
     \@@_scope_begin:
+%<*pdfmode>
     \driver_draw_cm:nnnn {#2} {#3} {#4} {#5}
+%</pdfmode>
+%<*dvipdfmx|xdvipdfmx>
+    \tex_special:D { pdf:btrans~matrix~ #2 ~ #3 ~ #4 ~ #5 ~ 0 ~ 0 }
+%</dvipdfmx|xdvipdfmx>
     \hbox_overlap_right:n { \box_use:N #1 }
+%<*dvipdfmx|xdvipdfmx>
+    \tex_special:D { pdf:etrans }
+%</dvipdfmx|xdvipdfmx>
     \@@_scope_end:
   }
 %    \end{macrocode}





More information about the latex3-commits mailing list