diff options
author | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2024-04-14 05:29:13 +0000 |
---|---|---|
committer | Takuji Tanaka <ttk@t-lab.opal.ne.jp> | 2024-04-14 05:29:13 +0000 |
commit | 406b2b73ed325a7138057ee90cc5ea7f026a6e68 (patch) | |
tree | 46f8d7f372bb90b62be391387a9cedfb93bb8688 /Build/source/texk/web2c/euptexdir/tests | |
parent | d0f3e54f7deda0e587d231083c9bafd55e1b8ccc (diff) |
eptex: Remove web2c/eptexdir
git-svn-id: svn://tug.org/texlive/trunk@70943 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/euptexdir/tests')
12 files changed, 545 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/euptexdir/tests/fontchar.sh b/Build/source/texk/web2c/euptexdir/tests/fontchar.sh new file mode 100755 index 00000000000..6430e83ca83 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/fontchar.sh @@ -0,0 +1,2 @@ +#!/bin/sh +luatex zero_search.tex && ppltotf zero_search.pl && eptex fontchar diff --git a/Build/source/texk/web2c/euptexdir/tests/fontchar.tex b/Build/source/texk/web2c/euptexdir/tests/fontchar.tex new file mode 100644 index 00000000000..1df91d27cd1 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/fontchar.tex @@ -0,0 +1,61 @@ +%#!eptex + +\catcode`\_=12 \catcode`\@=11 +\def\typeout{\immediate\write17} +\begingroup + \catcode`\P=12 \catcode`\T=12 + \lowercase{ + \gdef\rem@pt#1.#2PT{#1\ifnum#2>\z@.#2\fi} + } +\endgroup +\def\strip@pt{\expandafter\rem@pt\the} + +\def\TFC#1{\typeout{code #1: \iffontchar\jfont#1 T\else F\fi}} +\def\TFT#1#2{\typeout{type \the\numexpr-#1-1\relax: + \iffontchar#2#1 + (\strip@pt\fontcharht#2#1+\strip@pt\fontchardp#2#1)*\strip@pt\fontcharwd#2#1 + \else F\fi +}} + +\TFC{"A1A1} +\TFC{"FEFE} +\TFC{"E0A1} +\TFC{"FCFC} +\TFC{"8140} +\TFC{"9FFC} + +\typeout{TEST: \string\jfont: \fontname\sevenmin} +\sevenmin +\count@=-1 +\loop \ifnum\count@>-15 + \TFT\count@\jfont\advance\count@\m@ne +\repeat + +\typeout{TEST: \string\tfont: \fontname\tfont} +\count@=-1 +\loop \ifnum\count@>-15 + \TFT\count@\tfont\advance\count@\m@ne +\repeat + +\protected\def\NEXT{\ten=1 + \loop\ifnum\ten<95 + \ifdim\fontcharwd\zs\kuten\numexpr\ku*256+\ten=10pt + \global\count@=\kuten\numexpr\ku*256+\ten + \global\count0\ku \global\count2\ten + \global\ku=95 \ten=95 + \fi + \advance\ten1 + \repeat} +\count@=0 +\jfont\zs=zero_search +\newcount\ku +\newcount\ten +\ku=1 +\loop\ifnum\ku<95 + {\ifnum11=\ifnum\ku>8 1\else0\fi\ifnum\ku<16 1\else 0\fi\else\NEXT\fi}% + \advance\ku1 +\repeat +\kansujichar1=\count@ +\typeout{\kansuji1(internal code: \the\count@, \the\count0-ku \the\count2-ten)} + +\bye diff --git a/Build/source/texk/web2c/euptexdir/tests/lastnodefont.tex b/Build/source/texk/web2c/euptexdir/tests/lastnodefont.tex new file mode 100644 index 00000000000..a9c8e91fe29 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/lastnodefont.tex @@ -0,0 +1,24 @@ +\newcount\res +\def\test#1{% + \setbox0\hbox{#1\global\res=\lastnodechar\global\xdef\rf{\the\lastnodefont}}% + \leavevmode\hbox to 5em{\hss \the\res}, \hbox to 10em{\tentt\meaning\rf\hss}% + \copy0\par} + +\global\res=\lastnodechar\xdef\rf{\the\lastnodefont}\the\res. {\tentt \meaning\rf} + +\ybaselineshift-10pt +\setbox0\vbox{\vskip10pt\global\res=\lastnodechar\global\xdef\rf{\the\lastnodefont}}% +\leavevmode\hbox to 5em{\hss \the\res}, \hbox to 10em{\tentt\meaning\rf\hss}% + +\test{} +\test{a} +\test{ffi} +\test{漢)} +\test{漢字} +\hbox{\tate \test{漢字}} +\test{あ\kern-1pt} +\test{あ\hskip10pt} +\test{あ\/} + + +\bye diff --git a/Build/source/texk/web2c/euptexdir/tests/lastnodesubtype_math.tex b/Build/source/texk/web2c/euptexdir/tests/lastnodesubtype_math.tex new file mode 100644 index 00000000000..fd1d0c2d4cd --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/lastnodesubtype_math.tex @@ -0,0 +1,29 @@ +\def\typeout{\immediate\write17} +\newcount\CNT\newcount\CNTs +\def\TEST#1#2#3{\par$#1{xyz}#2\CNT=\lastnodetype\CNTs=\lastnodesubtype\typeout{\string #1: (\the\CNT,\the\CNTs)}#3$} + +\TEST\displaystyle\displaystyle{} +\TEST\textstyle\textstyle{} +\TEST\mathchoice{{a}{a}{a}}{} +\TEST\mathord{}{} +\TEST\mathop\displaylimits{} +\TEST\mathop\limits{} +\TEST\mathop\nolimits{} +\TEST\mathbin{}{} +\TEST\mathrel{}{} +\TEST\mathopen{}{} +\TEST\mathclose{}{} +\TEST\mathpunct{}{} +\TEST\mathinner{}{} +\TEST\sqrt{}{}% radical +\TEST\underline{}{} +\TEST\overline{}{} +\TEST\vcenter{}{} +\TEST\dot{}{}% accent + +\TEST{left}{\left[}{\right]} +\TEST{middle}{\left(\middle|}{\right)} +\TEST{\left[\right]}{}{} +% TODO: right, fraction + +\bye diff --git a/Build/source/texk/web2c/euptexdir/tests/pdforigin.sh b/Build/source/texk/web2c/euptexdir/tests/pdforigin.sh new file mode 100755 index 00000000000..0889a39508b --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/pdforigin.sh @@ -0,0 +1,10 @@ +#!/bin/bash +etex pdforigin.tex && etex pdforigin.tex +dvips pdforigin +ps2pdf pdforigin.ps && mv pdforigin.pdf pdforigin_etex_dvips.pdf +dvipdfmx pdforigin && mv pdforigin.pdf pdforigin_etex_dvipdfmx.pdf +eptex pdforigin.tex && eptex pdforigin.tex +dvipdfmx pdforigin && mv pdforigin.pdf pdforigin_eptex_dvipdfmx.pdf +pdftex pdforigin.tex && pdftex pdforigin.tex && mv pdforigin.pdf pdforigin_pdftex.pdf +xetex pdforigin.tex && xetex pdforigin.tex && mv pdforigin.pdf pdforigin_xetex.pdf + diff --git a/Build/source/texk/web2c/euptexdir/tests/pdforigin.tex b/Build/source/texk/web2c/euptexdir/tests/pdforigin.tex new file mode 100644 index 00000000000..ab64ac932b9 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/pdforigin.tex @@ -0,0 +1,40 @@ +\mag=3000 + +\newdimen\XPOS\newdimen\YPOS\newread\TMP +\openin\TMP=\jobname.tmp +\ifeof\TMP\else\closein\TMP\input \jobname.tmp\fi +\immediate\openout\TMP=\jobname.tmp +\topskip0pt +\ifdefined\pagewidth + \pagewidth=10truein\pageheight=10truein +\else\ifdefined\pdfpagewidth + \pdfpagewidth=10truein\pdfpageheight=10truein +\fi\fi + +\shipout\hbox{% + \special{papersize=10truein,10truein}% + \pdfsavepos% + \write\TMP{\noexpand\XPOS=\the\pdflastxpos sp\noexpand\YPOS=\the\pdflastypos sp}% + \smash{% + \llap{\hss\vrule height 1pt depth 0pt width \XPOS}% + \llap{\hss\vrule height 2.4pt depth -2pt width 1in}% + \llap{\hss\vrule height 4pt depth -3.2pt width 1truein}% + \llap{\vrule height 1in depth 0pt width 0.4pt\kern.8pt% + \vrule height 1truein depth 0pt width 0.8pt}% + \rlap{% + \vrule height 0pt depth \dimexpr\YPOS+5truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS+4truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS+3truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS+2truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS+1truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS width .8pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS-1truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS-2truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS-3truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS-4truept width .4pt\kern.8pt + \vrule height 0pt depth \dimexpr\YPOS-5truept width .4pt\kern.8pt% + }% + }% +} +\end + diff --git a/Build/source/texk/web2c/euptexdir/tests/pdfpagewidth.tex b/Build/source/texk/web2c/euptexdir/tests/pdfpagewidth.tex new file mode 100644 index 00000000000..c285d7601db --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/pdfpagewidth.tex @@ -0,0 +1,24 @@ +%#!eptex + +\def\TEST#1{% + \pdfpagewidth0pt\pdfpageheight0pt + \shipout\hbox{\special{#1}}% + \message{<\the\pdfpagewidth, \the\pdfpageheight>}% +} +\count0=0 +\readpapersizespecial=1 +\TEST{papersize=10pt,20pt} % OK +\TEST{papersize=10pt,20zw} % `zw' is not supported +\TEST{papersize=10pt,20ex} % `ex' is neither +\TEST{papersize=1pt,2} % no unit +\TEST{papersize 10pc,20pc} % there is no `=' +\TEST{papersize=10pcA,20pc}% +\TEST{papersize=10pc,20pcs}% +\TEST{papersize=10pt,-20pt}% negative value +\TEST{papersize=0pt,20000.6sp}% OK +\TEST{papersize=30.2pt,665pt}% OK + +\readpapersizespecial=0 +\TEST{papersize=10pt,20pt} + +\end diff --git a/Build/source/texk/web2c/euptexdir/tests/pdfsavepos.tex b/Build/source/texk/web2c/euptexdir/tests/pdfsavepos.tex new file mode 100644 index 00000000000..7bde48aa574 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/pdfsavepos.tex @@ -0,0 +1,12 @@ +\documentclass[dvipdfmx]{tarticle} +\setlength{\pdfpagewidth}{\paperwidth} +\setlength{\pdfpageheight}{\paperheight} +% 以下二行をコメントアウトしたりしなかったりして試してみる. +\special{papersize=\the\paperwidth,\the\paperheight}% (a) +\AtBeginDvi{\special{papersize=\the\paperwidth, \the\paperheight}}% (b) +\begin{document} +A\pdfsavepos +\newpage +\message{pdflatexpos = \the\dimexpr\pdflastxpos sp, pdflastypos = \the\dimexpr\pdflastypos sp, + pdfpagewidth = \the\pdfpagewidth, pdfpageheight = \the\pdfpageheight} +\end{document}
\ No newline at end of file diff --git a/Build/source/texk/web2c/euptexdir/tests/printkanji-eptex.tex b/Build/source/texk/web2c/euptexdir/tests/printkanji-eptex.tex new file mode 100644 index 00000000000..67c795e7d80 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/printkanji-eptex.tex @@ -0,0 +1,68 @@ +%あaª +\tracingstats=1000 +\noautoxspacing\scrollmode +\tracingscantokens=1 +\everyeof{\noexpand} +\font\x=ec-lmtt10 \x +\immediate\openout1=\jobname.out +\def\MSG#1{% + \message{\string{MSG #1\string}}% + \immediate\write17{\string{TOT #1\string}}% + \immediate\write1{#1}% +} +\def\head#1{\message{■#1.}\par\noindent\hbox{■\null}#1.\par} +\message{^^J} +\count255="80 +\loop\ifnum\count255<"100 + \catcode\count255=11\relax + \advance\count255 1\relax +\repeat + +%======== +\head{detokenize} +\def\A{^^c5^^bf ſ 顛 } + +\detokenize\expandafter{\meaning\A} +\MSG{\detokenize\expandafter{\meaning\A}} + +%======== +\head{scantokens} +\def\c{捉^^c2^^aaª} + +\scantokens{\noexpand\^^a4^^a2あ^^e3^^81^^82.^^a4^^a2あ^^e3^^81^^82.\c} +\def\a{\scantokens{\noexpand\^^a4^^a2あ^^e3^^81^^82.^^a4^^a2あ^^e3^^81^^82.\c}} + +\edef\b{\scantokens{\noexpand\^^a4^^a2あ^^e3^^81^^82.^^a4^^a2あ^^e3^^81^^82.\c}} +\MSG{\a:\b:\meaning\b} + +\def\あ{a} +\MSG{ + \ifcsname あ\endcsname Y\csname あ\endcsname\else n\fi, + \ifcsname ^^e3^^81^^82\endcsname Y\csname ^^e3^^81^^82\endcsname\else n\fi, + \ifcsname ^^a4^^a2\endcsname Y\csname ^^a4^^a2\endcsname\else n\fi} + +%======== +\head{pdfstrcmp} + +\MSG{あ \pdfstrcmp{あ}{^^e3^^81^^82} ^^e3^^81^^82} +\MSG{あ \pdfstrcmp{あ}{^^a4^^a2} ^^a4^^a2} +\MSG{捉 \pdfstrcmp{捉}{^^c2^^aa} ^^c2^^aa} +\MSG{捉 \pdfstrcmp{捉}{ª} ^^c2^^aa} +\MSG{ª \pdfstrcmp{ª}{^^c2^^aa} ^^c2^^aa} + +%======== +\head{other pdf* util.} + +\MSG{\detokenize\expandafter{\pdffiledump length 20{\jobname.tex}}} + +\MSG{\pdfmdfivesum{}} +\MSG{\pdfmdfivesum{あ}} +\MSG{\pdfmdfivesum{^^e3^^81^^82}} +\MSG{\pdfcreationdate} +\MSG{\pdffilemoddate{\jobname.tex}} +\MSG{\pdffilesize{\jobname.tex}} +\MSG{\the\pdfelapsedtime} +\MSG{\expanded{^^c2^^aaª捉.^^e3^^81^^82あ^^a4^^a2}} + +\immediate\closeout1 +\bye diff --git a/Build/source/texk/web2c/euptexdir/tests/suppress_errors.tex b/Build/source/texk/web2c/euptexdir/tests/suppress_errors.tex new file mode 100644 index 00000000000..6b116350fdf --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/suppress_errors.tex @@ -0,0 +1,76 @@ +\batchmode +\long\def\typeout#1{\immediate\write-1{#1}} +\def\ { }% +\output{\deadcycles0\setbox0\box255} +\def\E#1{} +\typeout{*** \string\par\ in non-\string\long\ cmd.} +\E{a + +b} +\E{c\par d} + +\outer\def\F{hoge} +\typeout{*** \string\outer\ cmd in \string\message\ and \string\write.} +\immediate\write-1{\F} +\message{\F} + +\typeout{*** \string\outer\ cmd in conditionals.} +\iftrue a\F +\else b\F +\fi + +\typeout{*** \string\outer\ cmd in alignment preambles.} +\halign{#\F&#\cr a&d\cr} + +\typeout{*** \string\par\ in math mode.} +$ x+1 = + +a\par b$ + +$$\eqno{a}\par$$ + +$$ aaa\par$$ + +\typeout{*** \string\pdfprimitive\ and non-primitive.} +\ifdefined\primitive + \primitive\batchmode + \primitive\hoge +\else + \pdfprimitive\batchmode + \pdfprimitive\hoge +\fi + +\typeout{===============} +\suppresslongerror=1 +\suppressoutererror=1 +\suppressmathparerror=1 + +\typeout{*** \string\par\ in non-\string\long\ cmd.} +\E{a + +b} +\E{c\par d} + +\typeout{*** \string\outer\ cmd in \string\message\ and \string\write.} +\immediate\write-1{\F} +\message{\F} + +\typeout{*** \string\outer\ cmd in conditionals.} +\iftrue a\F +\else b\F +\fi + +\typeout{*** \string\outer\ cmd in alignment preambles.} +\halign{#\F&#\cr a&d\cr} + +\typeout{*** \string\par\ in math mode.} +$ x+1 = + +a\par b$ + +$$\eqno{a}\par$$ + +$$ aaa\par$$ + +\bye + diff --git a/Build/source/texk/web2c/euptexdir/tests/uchar.tex b/Build/source/texk/web2c/euptexdir/tests/uchar.tex new file mode 100644 index 00000000000..0c5bb56c4a0 --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/uchar.tex @@ -0,0 +1,127 @@ +% eptex + +% \Uchar <chr_code> +% 0--255:常に欧文文字トークン +% 256以上の,内部コードで許される値:常に和文文字トークン +% \Ucharcat <chr_code> <catcode> +% <chr_code> in [0,128): 欧文文字トークンを生成.<catcode> in {1..4, 6..8, 10..13} +% <chr_code> in [128,256) +% e-pTeX の場合:欧文文字トークンを生成.<catcode> in {1..4, 6..8, 10..13} +% e-upTeX の場合:欧文/和文文字トークンを生成.<catcode> in {1..4, 6..8, 10..13, 16..19} +% <chr_code> >=256: 和文文字トークンを生成. +% e-pTeX の場合: <catcode> in {16..18} +% e-upTeX の場合:<catcode> in {16..19} + + +% e-upTeX: + + +\let\bg={ \let\eg=} +{\catcode`\ =9\relax +\gdef\KCAT{% + \immediate\write17{% + [\expandafter\string\x\space + \expandafter\ifcat\x$ math\space shift\fi + \expandafter\ifcat\x& alignment\fi + \expandafter\ifcat\x^ superscript\fi + \expandafter\ifcat\x_ subscript\fi + \expandafter\ifcat\x\space space\fi + \expandafter\ifcat\x a letter\fi + \expandafter\ifcat\x 1 other\space char\fi + \expandafter\ifcat\x ~ active\fi + \expandafter\ifcat\x 空 kanji\fi + \expandafter\ifcat\x ア kana\fi + \expandafter\ifcat\x { other\space kchar\fi + \ifdefined\ucs + \expandafter\ifcat\x 한 hangul\fi + \fi]}% +}} +\let\sharp=# +\font\x=ec-lmtt10 \x +\scrollmode + +\edef\x{\Uchar`\{}\KCAT +\edef\x{\Uchar`\}}\KCAT +\edef\x{\Uchar`\$}\KCAT +\edef\x{\Uchar`\&}\KCAT +\edef\x{\Uchar`\#}\KCAT +\edef\x{\Uchar`\^}\KCAT +\edef\x{\Uchar`\_}\KCAT +\edef\x{\Uchar`\ }\KCAT +\edef\x{\Uchar`\a}\KCAT +\edef\x{\Uchar`\1}\KCAT +\edef\x{\Uchar`~}\KCAT +\edef\x{\Uchar`漢}\KCAT +\edef\x{\Uchar`あ}\KCAT +\edef\x{\Uchar`)}\KCAT + +\ifdefined\ucs %====== +\immediate\write0{■\string\Uchar\space and \string\kcatcode} +{\kcatcode"03B1=15 \kcatcode"FF=15 +\edef\x{\Uchar"FF}\KCAT%" +\edef\x{\Uchar"03B1}\KCAT%" +} + +{\kcatcode"03B1=17 \kcatcode"FF=17 +\edef\x{\Uchar"FF}\KCAT%" +\edef\x{\Uchar"03B1}\KCAT%" +} +\fi %====== + +\immediate\write0{■\string\Ucharcat.} + +\edef\x{\Ucharcat`\# 0}\KCAT % error "! Invalid code" +\edef\x{\Ucharcat`\# 3}\KCAT +\edef\x{\Ucharcat`\# 4}\KCAT +\edef\x{\Ucharcat`\# 5}\KCAT % error "! Invalid code" +\edef\x{\Ucharcat`\# 7}\KCAT +\edef\x{\Ucharcat`\# 8}\KCAT +\edef\x{\Ucharcat`\# 9}\KCAT % error "! Invalid code" +\edef\x{\Ucharcat`\# 10}\KCAT +\edef\x{\Ucharcat`\# 11}\KCAT +\edef\x{\Ucharcat`\# 12}\KCAT +\edef\x{\unexpanded\expandafter{\Ucharcat`\# 13}} +\message{\expandafter\meaning\unexpanded\expandafter{\x}} % undefined +\edef\x{\Ucharcat`\# 14}\KCAT % error "! Invalid code" +\edef\x{\Ucharcat`\# 15}\KCAT % error "! Invalid code" + +\edef\x{\Ucharcat`\# 16} % error "! Invalid code (16)" +\KCAT + +\ifdefined\enablecjktoken %====== +\edef\x{\Ucharcat`漢 3} % error "! Invalid code (3)" +\KCAT + +\edef\x{\Ucharcat`$ 16}\KCAT +\edef\x{\Ucharcat`: 17}\KCAT +\edef\x{\Ucharcat`あ 18}\KCAT +\edef\x{\Ucharcat`漢 19}\KCAT + +{\kcatcode"03B1=15 %" +\edef\x{\Ucharcat"03B1 12}\KCAT%" error "! Invalid code (12)" +\edef\x{\Ucharcat"03B1 17}\KCAT%" +} + +{\kcatcode"03B1=16 %" +\edef\x{\Ucharcat"03B1 12}\KCAT%" error "! Invalid code (12)" +\edef\x{\Ucharcat"03B1 17}\KCAT%" +} + +{\kcatcode"FF=15 %" +\edef\x{\Ucharcat"FF 12}\KCAT%" +\edef\x{\Ucharcat"FF 17}\KCAT%" +} + +{\kcatcode"FF=16 %" +\edef\x{\Ucharcat"FF 12}\KCAT%" +\edef\x{\Ucharcat"FF 17}\KCAT%" +} +\else + +\edef\x{\Ucharcat`漢 3} % error "! Bad character code" in eptex + +\fi % ====== + + +\end + diff --git a/Build/source/texk/web2c/euptexdir/tests/zero_search.tex b/Build/source/texk/web2c/euptexdir/tests/zero_search.tex new file mode 100644 index 00000000000..02b0df3929c --- /dev/null +++ b/Build/source/texk/web2c/euptexdir/tests/zero_search.tex @@ -0,0 +1,72 @@ +%#!luatex +\input luatexja.sty + +\catcode\endlinechar=12 +\catcode`\ =12 +\catcode`\%=12 +\catcode`\#=12 +\directlua{ +local f = io.open("zero_search.pl", "w") +if f then + function OUT(s) f:write(s .. string.char(10)) end +else + function OUT(s) end +end +local jisx0208 = luatexja.base.load_cache('ltj-jisx0208', + function() return false end) +local utf = unicode.utf8 +OUT([[ +(COMMENT THIS IS A KANJI FORMAT FILE) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(CHECKSUM O 0) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.0) + (STRETCH R 0.0) + (SHRINK R 0.0) + (XHEIGHT R 1.0) + (QUAD R 1.0) + (EXTRASPACE R 0.0) + (EXTRASTRETCH R 0.0) + (EXTRASHRINK R 0.0) + )]]) +local CNT=96 +local r = {} +for i=1,94 do + for j=1,94 do + if not ((i>0x08 and i<0x10) or i>0x54) then + local t = math.random( ((i>0x40) and 0 or 1), CNT-1) + r[t] = r[t] or {} + table.insert(r[t],0x2020+i*256+j) + end + end +end +local floor = math.floor +for i=1,CNT-1 do + if #(r[i])>0 then + table.sort(r[i]) + OUT("(CHARSINTYPE D " .. tostring(i)) + local s, k = " ", 0 + for j=1,#(r[i]) do + local f = r[i][j] + k, s = k+1, s .. 'J ' .. string.format("%04X",f) + if k%10==0 then OUT(s); s = " " else s = s .. " " end + end + if k%10>0 then OUT(s) end + OUT(" )") + end +end +for i=0,CNT-1 do + if #(r[i])>0 then + OUT("(TYPE D " .. tostring(i)) + OUT(" (CHARWD R " .. tostring(1+i/100) .. ")") + OUT(" (CHARHT R 0.88)") + OUT(" (CHARDP R 0.12)") + OUT(" )") + end +end +f:close() +} +\bye |