From 89919853af98366b60aa89e21803ba5e54278957 Mon Sep 17 00:00:00 2001 From: Takuji Tanaka Date: Sun, 27 Feb 2022 10:34:32 +0000 Subject: dvips: Interpret FONTDIR RT in OFM as pTeX vertical writing git-svn-id: svn://tug.org/texlive/trunk@62223 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvipsk/ChangeLog | 10 +++++++ Build/source/texk/dvipsk/Makefile.am | 4 ++- Build/source/texk/dvipsk/Makefile.in | 8 +++--- Build/source/texk/dvipsk/testdata/Makefile_upjf | 6 +++++ Build/source/texk/dvipsk/testdata/upjf-g00.ofm | Bin 0 -> 292 bytes Build/source/texk/dvipsk/testdata/upjf-g00.opl | 33 ++++++++++++++++++++++++ Build/source/texk/dvipsk/testdata/upjv-g00.ofm | Bin 0 -> 276 bytes Build/source/texk/dvipsk/testdata/upjv-g00.opl | 28 ++++++++++++++++++++ Build/source/texk/dvipsk/tfmload.c | 5 ++++ Build/source/texk/dvipsk/uptex-vf.test | 4 +++ 10 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 Build/source/texk/dvipsk/testdata/upjf-g00.ofm create mode 100644 Build/source/texk/dvipsk/testdata/upjf-g00.opl create mode 100644 Build/source/texk/dvipsk/testdata/upjv-g00.ofm create mode 100644 Build/source/texk/dvipsk/testdata/upjv-g00.opl (limited to 'Build/source/texk') diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog index 564f1cb9103..4d8ef6bc155 100644 --- a/Build/source/texk/dvipsk/ChangeLog +++ b/Build/source/texk/dvipsk/ChangeLog @@ -1,3 +1,13 @@ +2022-02-27 TANAKA Takuji + + * tfmload.c: + Interpret FONTDIR RT in OFM as pTeX vertical writing. + https://github.com/texjporg/tex-jp-build/issues/135 + * Makefile.{am,in}, uptex-vf.test, + testdata/Makefile_upjf, testdata/upjf-g00.{opl,ofm}, + testdata/upjf-g00.{opl,ofm}: + Add a new test for pTeX & OFM FONTDIR. + 2022-02-24 TANAKA Takuji * Makefile.{am,in}, uptex-vf.test, diff --git a/Build/source/texk/dvipsk/Makefile.am b/Build/source/texk/dvipsk/Makefile.am index 8d5b677f007..80d0e370d32 100644 --- a/Build/source/texk/dvipsk/Makefile.am +++ b/Build/source/texk/dvipsk/Makefile.am @@ -191,8 +191,10 @@ EXTRA_DIST += testdata/Makefile_upjf testdata/upjf.tex testdata/upjf.dvi testdat testdata/upjf_full.vf testdata/upjf_omit.vf \ testdata/upjv.tfm testdata/upjv-g.tfm testdata/upjv-r.tfm \ testdata/upjv_full.vf testdata/upjv_omit.vf \ + testdata/upjf-g00.opl testdata/upjf-g00.ofm \ + testdata/upjv-g00.opl testdata/upjv-g00.ofm \ testdata/upjf_full.cnf testdata/upjf_omit.cnf -DISTCLEANFILES += upjf.vf upjv.vf upjf_full.ps upjf_omit.ps +DISTCLEANFILES += upjf.vf upjv.vf upjf-g.ofm upjv-g.ofm upjf_full.ps upjf_omit.ps EXTRA_DIST += \ NEWS \ diff --git a/Build/source/texk/dvipsk/Makefile.in b/Build/source/texk/dvipsk/Makefile.in index c518d11e55f..f4795061df3 100644 --- a/Build/source/texk/dvipsk/Makefile.in +++ b/Build/source/texk/dvipsk/Makefile.in @@ -722,8 +722,8 @@ dvips_TEXINFOS = contrib/config.proto dvips.help DISTCLEANFILES = $(DVIS) $(PSS) beginfontk1.ps eepic-nan.ps pfbincl.ps \ *badnews* same-name.out afmtest.tfm dvipstst.ps missfont.log \ mtest.ps missing-image.ps overflow-color-push.ps \ - overflow-epsfile.ps overflow-psbox.ps upjf.vf upjf_full.ps \ - upjf_omit.ps + overflow-epsfile.ps overflow-psbox.ps upjf.vf upjf-g.ofm \ + upjv-g.ofm upjf_full.ps upjf_omit.ps enc_DATA = dvips-all.enc prolog_DATA = $(prologues) dist_prologues = \ @@ -763,7 +763,9 @@ EXTRA_DIST = $(dist_prologues) texc.script $(TESTS) testdata/8r.enc \ testdata/upjf_omit.vf testdata/upjf_full.cnf \ testdata/upjf_omit.cnf testdata/upjv.tfm testdata/upjv-g.tfm \ testdata/upjv-r.tfm testdata/upjv_full.vf \ - testdata/upjv_omit.vf testdata/upjf_full.cnf \ + testdata/upjv_omit.vf testdata/upjf-g00.opl \ + testdata/upjf-g00.ofm testdata/upjv-g00.opl \ + testdata/upjv-g00.ofm testdata/upjf_full.cnf \ testdata/upjf_omit.cnf NEWS TODO testdata/intoverflow.dvi \ testdata/vfnameoverflow.dvi atari cmfonts.map config.ps \ contrib/afm-extra contrib/colorsep.lpro contrib/configs \ diff --git a/Build/source/texk/dvipsk/testdata/Makefile_upjf b/Build/source/texk/dvipsk/testdata/Makefile_upjf index 413ec221240..bfea81918d9 100644 --- a/Build/source/texk/dvipsk/testdata/Makefile_upjf +++ b/Build/source/texk/dvipsk/testdata/Makefile_upjf @@ -26,6 +26,12 @@ upjv_omit.vf: upjv.tfm upjf_omit.cnf makejvf -i -u custom -e -t upjf_omit.cnf upjv.tfm -K upjv-g upjv-r mv upjv.vf upjv_omit.vf +upjf-g00.ofm: + opl2ofm upjf-g00.opl + +upjv-g00.ofm: + opl2ofm upjv-g00.opl + upjf.dvi: upjf.tex uplatex upjf.tex dvispc -a upjf.dvi upjf.dvitxt diff --git a/Build/source/texk/dvipsk/testdata/upjf-g00.ofm b/Build/source/texk/dvipsk/testdata/upjf-g00.ofm new file mode 100644 index 00000000000..507aa833b4e Binary files /dev/null and b/Build/source/texk/dvipsk/testdata/upjf-g00.ofm differ diff --git a/Build/source/texk/dvipsk/testdata/upjf-g00.opl b/Build/source/texk/dvipsk/testdata/upjf-g00.opl new file mode 100644 index 00000000000..9b3a71d34c6 --- /dev/null +++ b/Build/source/texk/dvipsk/testdata/upjf-g00.opl @@ -0,0 +1,33 @@ +(OFMLEVEL H 1) +(FONTDIR TL) +(FAMILY UPJF) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 0) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.0) + (STRETCH R 0.1) + (SHRINK R 0.0) + (XHEIGHT R 1.0) + (QUAD R 1.0) + ) +(CHARREPEAT H 2600 H B00 + (CHARWD R 1.0) + (CHARHT R 0.9) + (CHARDP R 0.1) + ) +(CHARREPEAT H 6000 H 9EFF + (CHARWD R 1.0) + (CHARHT R 0.9) + (CHARDP R 0.1) + ) +(CHARREPEAT H FF00 H FF + (CHARWD R 0.5) + (CHARHT R 0.9) + (CHARDP R 0.1) + ) diff --git a/Build/source/texk/dvipsk/testdata/upjv-g00.ofm b/Build/source/texk/dvipsk/testdata/upjv-g00.ofm new file mode 100644 index 00000000000..e5a9f6c7992 Binary files /dev/null and b/Build/source/texk/dvipsk/testdata/upjv-g00.ofm differ diff --git a/Build/source/texk/dvipsk/testdata/upjv-g00.opl b/Build/source/texk/dvipsk/testdata/upjv-g00.opl new file mode 100644 index 00000000000..a5d83d7f53a --- /dev/null +++ b/Build/source/texk/dvipsk/testdata/upjv-g00.opl @@ -0,0 +1,28 @@ +(OFMLEVEL H 1) +(FONTDIR RT) +(FAMILY UPJF) +(FACE F MRR) +(CODINGSCHEME UNSPECIFIED) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM H 0) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.0) + (STRETCH R 0.1) + (SHRINK R 0.0) + (XHEIGHT R 1.0) + (QUAD R 1.0) + ) +(CHARREPEAT H 2600 H B00 + (CHARWD R 1.0) + (CHARHT R 0.5) + (CHARDP R 0.5) + ) +(CHARREPEAT H 6000 H 9FFF + (CHARWD R 1.0) + (CHARHT R 0.5) + (CHARDP R 0.5) + ) diff --git a/Build/source/texk/dvipsk/tfmload.c b/Build/source/texk/dvipsk/tfmload.c index cd507d0c2bd..0c721bbebc2 100644 --- a/Build/source/texk/dvipsk/tfmload.c +++ b/Build/source/texk/dvipsk/tfmload.c @@ -175,6 +175,11 @@ tfmload(register fontdesctype *curfnt) bc = tfm32(); ec = tfm32(); nw = tfm32(); for (i=0; i<8; i++) li=tfm32(); + if (!noptex && font_level==1 && ec>=0x2E00) { + curfnt->iswide = 1; + if (li==5) /* interpret FONTDIR RT as pTeX vertical writing */ + curfnt->dir = 9; + } if (font_level>1 || hd<2 || bc<0 || ec<0 || nw<0 || bc>ec+1 || ec>65535 || nw>65536) badtfm("header"); diff --git a/Build/source/texk/dvipsk/uptex-vf.test b/Build/source/texk/dvipsk/uptex-vf.test index 27ac6e29c89..4d0f05c3de5 100755 --- a/Build/source/texk/dvipsk/uptex-vf.test +++ b/Build/source/texk/dvipsk/uptex-vf.test @@ -7,6 +7,8 @@ TEXFONTS="$srcdir/testdata;." SOURCE_DATE_EPOCH=1588474800 export TEXFONTS SOURCE_DATE_EPOCH +rm -f upjf.vf upjv.vf upjf-g.ofm upjv-g.ofm + cp $srcdir/testdata/upjf_full.vf ./upjf.vf && \ cp $srcdir/testdata/upjv_full.vf ./upjv.vf && \ ./dvips -d 4 $srcdir/testdata/upjf.dvi -o upjf.ps -u $srcdir/testdata/upjf.map && \ @@ -14,6 +16,8 @@ mv upjf.ps upjf_full.ps || exit 1 cp $srcdir/testdata/upjf_omit.vf ./upjf.vf && \ cp $srcdir/testdata/upjv_omit.vf ./upjv.vf && \ +cp $srcdir/testdata/upjf-g00.ofm ./upjf-g.ofm && \ +cp $srcdir/testdata/upjv-g00.ofm ./upjv-g.ofm && \ ./dvips -d 4 $srcdir/testdata/upjf.dvi -o upjf.ps -u $srcdir/testdata/upjf.map && \ mv upjf.ps upjf_omit.ps || exit 2 -- cgit v1.2.3