diff options
author | Karl Berry <karl@freefriends.org> | 2018-03-09 22:47:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-03-09 22:47:18 +0000 |
commit | ede48fa402ed1c37b836d56fc860a137fd0d2e11 (patch) | |
tree | abaeee82bcd19128a983e237d8d1010c29b41210 /Master/texmf-dist | |
parent | 3a66104a35750e51768c735cc4b634e4ecc7dfa3 (diff) |
ascmac (9mar18)
git-svn-id: svn://tug.org/texlive/trunk@46904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
18 files changed, 1895 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/ascmac/LICENSE b/Master/texmf-dist/doc/latex/ascmac/LICENSE new file mode 100644 index 00000000000..c052ebeb9c0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/ascmac/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2018 Japanese TeX Development Community +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of platex nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Master/texmf-dist/doc/latex/ascmac/README.md b/Master/texmf-dist/doc/latex/ascmac/README.md new file mode 100644 index 00000000000..0f9f11c6330 --- /dev/null +++ b/Master/texmf-dist/doc/latex/ascmac/README.md @@ -0,0 +1,31 @@ +# ascmac + +The bundle provides boxes and picture macros, derived from +Japanese pLaTeX distribution. These macros and fonts were +originally developed by ASCII MEDIA WORKS, and now +maintained by Japanese TeX Development Community. + +## Changes from the original ASCII edition + +See the documents (ascmac.pdf) for more information. + +- Support pdfLaTeX, XeLaTeX and LuaLaTeX. +- Fix several bugs in `\oval` drawings, which are used in + `screen` environment and `\keytop`. +- Made compatible with the package "pict2e". + +## Repository + +The bundle is maintained on GitHub: +https://github.com/texjporg/ascmac + +## License + +The bundle may be distributed and/or modified under the terms of +the 3-clause BSD license (see [LICENSE](./LICENSE)). + +## Release Date + +2018-03-09 + +Japanese TeX Development Community diff --git a/Master/texmf-dist/doc/latex/ascmac/ascmac.pdf b/Master/texmf-dist/doc/latex/ascmac/ascmac.pdf Binary files differnew file mode 100644 index 00000000000..353dbb2e304 --- /dev/null +++ b/Master/texmf-dist/doc/latex/ascmac/ascmac.pdf diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf new file mode 100644 index 00000000000..77afb96441a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/ascmac/ascgrp.mf @@ -0,0 +1,372 @@ +%mode=ascii; + +designsize:=10; +mode_setup; +%openit; + +font_family "ASCII SPECIAL"; +coding_scheme "SPECIAL GRAPHIC FONT"; + +def clear = + clearx; + currentpicture:=nullpicture; +enddef; +def clearx = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[],pw; +enddef; + +def drawpix expr p = + addto pix doublepath p.t_ withpen currentpen enddef; +def curve(suffix $,$$,$$$) = + fill z$l + if known dz$: {dz$} fi + .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi} + .. z$$$l + if known dz$$$: {dz$$$} fi + & z$$$l..z$$$r + & z$$$r + if known dz$$$: {-dz$$$} fi + .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi} + .. z$r + if known dz$: {-dz$} fi + & z$r..z$l & cycle; +enddef; + +vardef setpos@#(expr a,b) = + z@#=.5[z@#l,z@#r] enddef; + +def setwidth (expr x) = + chardx:=x; + numeric w; w=chardx; + if proofing>1: + for n:=0 step 2bs until chardx-1: + proofrule((n,-ydepth),(n,hheight)); endfor + proofrule((chardx,-ydepth),(chardx,hheight)); + proofrule((0,-ydepth),(chardx,-ydepth)); + proofrule((0,0),(chardx,0)); + proofrule((0,xheight),(chardx,xheight)); + proofrule((0,capheight),(chardx,capheight)); + proofrule((0,hheight),(chardx,hheight)); + fi +enddef; + +%def labelpos(text t) = +% if proofing>1: +% forsuffixes $$=l,,r: forsuffixes $=t: +% makelabel(str $.$$, z$.$$); endfor endfor fi enddef; + +def mask(expr mx,my) = + cullit; + pix:=nullpicture; + unfill (0,0)..(round(mx+1)*pt,round(my+1)*pt)..cycle; + for r=1 step 1 until mx*pt/2: addto pix also PIX shifted (2*r*sqsize,0); + endfor + cull pix including (1,9); + for i:=0 step pxsize until my*pt: + addto currentpicture also pix shifted(0,i); + endfor + picture pix; +enddef; + + show designsize; + numeric s,pw,char_w,hheight,ydepth,bss,bs,f,us,uus,usx,uusx,dd; + 180f = designsize; + hheight=140f ; ydepth=40f; + bss = 140f/17.3; + bs = bss*pt; + 10us = designsize; + uus = us*pt; + 10usx = .7227designsize; + uusx = usx*pt; + dd:=pixels_per_inch/120; + s = .5uusx; + +% +% special +% + +lw:=3.6*designsize/10*.3pt; +vardef char.b(expr char_w, hheight) = + pickup pencircle scaled(lw + blacker); + y1=y2=-lw/2; + x1=0bs; x2:=5bs*3.6; + draw z1--z2; + penlabels(1,2); +enddef; + +vardef char.a(expr char_w, hheight) = + pickup pencircle scaled(lw + blacker); + y1=y2=y5=y6=-lw/2; + y7:=-10bs*3.6; + x1:=0bs; x2:=3bs*3.6; x3:=4bs*3.6; x6:=10bs*3.6; + y3=y4; + (y1+y7)*2/5=y3; + (x1+x6)/2=(x2+x5)/2=(x3+x4)/2=x7; + draw z1--z2--z3..z7..z4--z5--z6; + penlabels(1,2,3,4,5,6,7); +enddef; + +def drawsq(expr dx, dy)= + draw z1 shifted (dx, dy)--z2 shifted (dx, dy); + draw z3 shifted (dx, dy)--z4 shifted (dx, dy); + draw z5 shifted (dx, dy)--z6 shifted (dx, dy); + draw z7 shifted (dx, dy)--z8 shifted (dx, dy); +enddef; +vardef char.A(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/8; uuy:=hheight/8; + x1:=.5uux; x2:=1.5uux; x8:=2.5uux; x7:=3.5uux; + y1:=3.5uuy; y2:=2.5uuy; y4:=1.5uuy; y3:=.5uuy; + x1=x3; x2=x4; x8=x6; x7=x5; + y1=y7; y2=y8; y4=y6; y3=y5; + drawsq(0, 0); + drawsq(0,4uuy); + drawsq(4uux,0); + drawsq(4uux,4uuy); +enddef; + +vardef char.B(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/4; uuy:=hheight/4; + x1:=.5uux; x2:=1.5uux; x8:=2.5uux; x7:=3.5uux; + y1:=3.5uuy; y2:=2.5uuy; y4:=1.5uuy; y3:=.5uuy; + x1=x3; x2=x4; x8=x6; x7=x5; + y1=y7; y2=y8; y4=y6; y3=y5; + drawsq(0, 0); +enddef; + +vardef char.C(expr char_w, hheight) = + numeric d,s; + d:=3; s:=1; if pixels_per_inch>=300:d:=d*dd; s:=s*dd; fi; + for y=0 step 2d until hheight-d: + for x=0 step 2d until char_w-d: + fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle; + endfor; + endfor; + for y=d step 2d until hheight-d: + for x=d step 2d until char_w-d: + fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle; + endfor; + endfor; +enddef; + +vardef char.D(expr char_w, hheight) = + char.C(char_w, hheight); +enddef; + +vardef char.E(expr char_w, hheight) = + numeric d; + d:=2; s:=1; if pixels_per_inch>300:d:=d*dd; s:=s*dd; fi; + for y=0 step 2d until hheight-d: + for x=0 step 2d until char_w-d: + fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle; + endfor; + endfor; + for y=d step 2d until hheight-d: + for x=d step 2d until char_w-d: + fill (x,y)--(x,y+s)--(x+s,y+s)--(x+s,y)--cycle; + endfor; + endfor; +enddef; + +vardef char.F(expr char_w, hheight) = + char.E(char_w, hheight); +enddef; + +def drawweb(expr dx, dy) = + draw z1 shifted (dx, dy)--z11 shifted (dx, dy); + draw z2 shifted (dx, dy)--z12 shifted (dx, dy); + draw z3 shifted (dx, dy)--z4 shifted (dx, dy); + draw z7 shifted (dx, dy)--z8 shifted (dx, dy); + draw z5 shifted (dx, dy)--z6 shifted (dx, dy); + draw z9 shifted (dx, dy)--z10 shifted (dx, dy); +enddef; +def drawwebx(expr dx, dy) = + draw z1 shifted (dx, dy)--z4 shifted (dx, dy); + draw z2 shifted (dx, dy)--z5 shifted (dx, dy); + draw z8 shifted (dx, dy)--z11 shifted (dx, dy); + draw z9 shifted (dx, dy)--z12 shifted (dx, dy); + draw z3 shifted (dx, dy)--z6 shifted (dx, dy); + draw z7 shifted (dx, dy)--z10 shifted (dx, dy); +enddef; + +vardef char.G(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/16; uuy:=hheight/16; + x1=x4=x8=x11=1uux; + x2=x5=x9=x12=3uux; + x3=x7=0uux; x6=x10=4uux; + y1=y2=4uuy; y11=y12=0uuy; + y3=y4=y5=y6=3uuy; + y7=y8=y9=y10=1uuy; + drawweb (0uux,12uuy); drawweb (8uux,12uuy); + drawweb (0uux,4uuy); drawweb (8uux,4uuy); + drawweb (4uux,8uuy); drawweb (12uux,8uuy); + drawweb (4uux,0uuy); drawweb (12uux,0uuy); + drawwebx(4uux,12uuy); drawwebx(12uux,12uuy); + drawwebx(4uux,4uuy); drawwebx(12uux,4uuy); + drawwebx(0uux,8uuy); drawwebx(8uux,8uuy); + drawwebx(0uux,0uuy); drawwebx(8uux,0uuy); +enddef; + +vardef char.H(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/8; uuy:=hheight/8; + x1=x4=x8=x11=1uux; + x2=x5=x9=x12=3uux; + x3=x7=0uux; x6=x10=4uux; + y1=y2=4uuy; y11=y12=0uuy; + y3=y4=y5=y6=3uuy; + y7=y8=y9=y10=1uuy; + drawweb(0uux,4uuy); + drawweb(4uux,0uuy); + drawwebx(4uux,4uuy); + drawwebx(0uux,0uuy); +enddef; + +def drawwebs(expr dx, dy) = + draw z1 shifted (dx, dy)--z2 shifted (dx, dy); + draw z3 shifted (dx, dy)--z4 shifted (dx, dy); + draw z5 shifted (dx, dy)--z6 shifted (dx, dy); + draw z7 shifted (dx, dy)--z8 shifted (dx, dy); + draw z1 shifted (dx, dy)--z9 shifted (dx, dy); + draw z7 shifted (dx, dy)--z12 shifted (dx, dy); + draw z3 shifted (dx, dy)--z10 shifted (dx, dy); + draw z5 shifted (dx, dy)--z11 shifted (dx, dy); +enddef; + +vardef char.I(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/8; uuy:=hheight/8; + x2:=3uux; x4:=2uux; x6:=1uux; x8:=x4; + y2:=2uuy; y4:=3uuy; y6:=y2; y8:=1uuy; + y1:=4uuy; x3:=0uux; y5:=0uuy; x7:=4uux; + (y2-y1)=-(x2-x1); (y5-y6)=-(x5-x6); + (y7-y8)=(x7-x8); (y4-y3)=(x4-x3); + x9=x3; y10=y5; x11=x7; y12=y1; + (y7-y12)=-(x7-x12); (y10-y3)=-(x10-x3); + (y1-y9)=(x1-x9); (y11-y5)=(x11-x5); + drawwebs(0uux, 0uuy); + drawwebs(4uux,0uuy); + drawwebs(0uux,4uuy); + drawwebs(4uux,4uuy); + labels(1,2,3,4,5,6,7,8,9,10,11,12); +enddef; + +vardef char.J(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/4; uuy:=hheight/4; + x2:=3uux; x4:=2uux; x6:=1uux; x8:=x4; + y2:=2uuy; y4:=3uuy; y6:=y2; y8:=1uuy; + y1:=4uuy; x3:=0uux; y5:=0uuy; x7:=4uux; + (y2-y1)=-(x2-x1); (y5-y6)=-(x5-x6); + (y7-y8)=(x7-x8); (y4-y3)=(x4-x3); + x9=x3; y10=y5; x11=x7; y12=y1; + (y7-y12)=-(x7-x12); (y10-y3)=-(x10-x3); + (y1-y9)=(x1-x9); (y11-y5)=(x11-x5); + drawwebs(0uux, 0uuy); +enddef; + +vardef char.K(expr char_w, hheight) = + pickup pencircle scaled(.15uus + blacker); + uux:=char_w/8; uuy:=hheight/8; + x1=x4=x8=x11=1uux; + x2=x5=x9=x12=3uux; + x3=x7=0uux; x6=x10=4uux; + y1=y2=4uuy; y11=y12=0uuy; + y3=y4=y5=y6=3uuy; + y7=y8=y9=y10=1uuy; + drawweb(0uux,4uuy); + drawweb(4uux,0uuy); + drawwebx(4uux,4uuy); + drawwebx(0uux,0uuy); +enddef; + +vardef char.rtriangle(expr char_w, hheight) = + x1 = x2 = char_w - x3 = s; + y3 = .5hheight; + z1 - z2 = (z3 - z2) rotated 60; + fill z1--z2--z3--cycle; + labels(1,2,3); +enddef; + +vardef char.ltriangle(expr char_w, hheight) = + char_w - x1 = char_w - x2 = x3 = s; + y3 = .5hheight; + z1 - z2 = (z3 - z2) rotated -60; + fill z1--z2--z3--cycle; + labels(1,2,3); +enddef; + +vardef char.ttriangle(expr char_w, hheight) = + y1 = y2 = hheight - y3 = s; + x3 = .5char_w; + z1 - z2 = (z3 - z2) rotated 60; + fill z1--z2--z3--cycle; + labels(1,2,3); +enddef; + +vardef char.btriangle(expr char_w, hheight) = + hheight - y1 = hheight - y2 = y3 = s; + x3 = .5char_w; + z1 - z2 = (z3 - z2) rotated -60; + fill z1--z2--z3--cycle; + labels(1,2,3); +enddef; + +vardef char.cr(expr char_w, hheight) = + x1 = s; x2 = x3 = .4char_w; + y2 = -.2(y3-y2); + z1 - z2 = (z1 - z3) rotated -90; + fill z1--z2--z3--cycle; + pw := .4(y3-y2); + y4 = hheight - s; x4 = x5 = char_w - .5pw - s; + y5 = y6 = y1; x6 = x3; + z7 = (x4, y5+.7pw); z8 = (x5-.7pw, y6); + penpos4(pw, 0); penpos6(pw, -90); + penpos7(pw, 0); penpos8(pw, -90); + %penstroke z4--z7..z8--z6; + fill z4l--z7l{z5-z7}..{z8-z5}z8l--z6l--z6r--z8r{z5-z8}..{z7-z5}z7r--z4r--cycle; + labels(1,2,3,4,5,6,7,8,4l,4r,7l,7r,8l,8r,6l,6r); +enddef; + +vardef char.CR(expr char_w, hheight) = + char.cr(char_w, hheight); +enddef; + +vardef make@#(expr char_w,hheight,ydepth)= + begingroup beginchar(str@#,char_w,hheight,ydepth); + "the character "&str @#; char@#(char_w*pt,hheight*pt); +% if (fontsize#*mag>30) and (proofing=0): mask(char_w,hheight); fi + endchar; +endgroup enddef; + +vardef Make@#(expr code, char_w,hheight,ydepth)= + begingroup beginchar(code,char_w,hheight,ydepth); + "the character "&code ; char@#(char_w*pt,hheight*pt); + endchar; +endgroup enddef; + + +smoothing:=10; +Make.rtriangle("0", 9usx, 10usx, 0us); +Make.ltriangle("1", 9usx, 10usx, 0us); +Make.ttriangle("2", 10usx, 9usx, 0us); +Make.btriangle("3", 10usx, 9usx, 0us); +Make.cr(" ", 12usx, 9usx, 2usx); +Make.CR("@", 24usx, 18usx, 4usx); +make.A(10usx,10usx,0us); +make.B(5usx,5usx,0us); +make.C(10usx,10usx,0us); +make.D(5usx,5usx,0us); +make.E(10usx,10usx,0us); +make.F(5usx,5usx,0us); +make.G(10us,10us,0us); +make.H(5us,5us,0us); +make.I(10us,10us,0us); +make.J(5us,5us,0us); +make.K(10us,10us,0us); +make.a(36bss,0bss,36bss); +make.b(18bss,0bss,36bss); + +end; diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf new file mode 100644 index 00000000000..20526cde8d2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii.mf @@ -0,0 +1,291 @@ +%mode=ascii; + +if unknown fontsize#: + fontsize#=10; +fi +designsize:=fontsize#; +mode_setup; +openit; + +if known Xerox_world: + font_family "ASCII LOGO"; + coding_scheme "ASCII LETTERS ONLY"; +fi + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + currentpicture:=nullpicture; +enddef; + +def curve(suffix $,$$,$$$) = + fill z$l + if known dz$: {dz$} fi + .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi} + .. z$$$l + if known dz$$$: {dz$$$} fi + & z$$$l..z$$$r + & z$$$r + if known dz$$$: {-dz$$$} fi + .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi} + .. z$r + if known dz$: {-dz$} fi + & z$r..z$l & cycle; +enddef; + +vardef setpos@#(expr a,b) = + z@#=.5[z@#l,z@#r] enddef; + +def setwidth (expr x) = + chardx:=x; + numeric w; w=chardx; + if proofing>1: + for n:=0 step 2bs until chardx-1: + proofrule((n,-ydepth),(n,hheight)); endfor + proofrule((chardx,-ydepth),(chardx,hheight)); + proofrule((0,-ydepth),(chardx,-ydepth)); + proofrule((0,0),(chardx,0)); + proofrule((0,xheight),(chardx,xheight)); + proofrule((0,capheight),(chardx,capheight)); + proofrule((0,hheight),(chardx,hheight)); + fi +enddef; + +%def labelpos(text t) = +% if proofing>1: +% forsuffixes $$=l,,r: forsuffixes $=t: +% makelabel(str $.$$, z$.$$); endfor endfor fi enddef; + +def mask(expr mx,my) = + cullit; + pix:=nullpicture; + unfill (0,0)..(round(mx+1)*pt,round(my+1)*pt)..cycle; + for r=1 step 1 until mx*pt/2: addto pix also PIX shifted (2*r*sqsize,0); + endfor + cull pix including (1,9); + for i:=0 step pxsize until my*pt: + addto currentpicture also pix shifted(0,i); + endfor + picture pix; +enddef; + + show designsize; + numeric hheight,ydepth,bss,bs,f; + 180f = designsize; + hheight=140f ; ydepth=40f; + bss = 140f/17.3; + bs = bss*pt; +maxx=16bs; +maxy=17.3bs; + +% make mask paturn +%if designsize*mag > 30: +% pxsize=4; +% rep=round(maxx/2+1); +% sqsize=1; +% picture pix,px,PIX; +% px=pix=nullpicture; +% addto px contour unitsquare scaled sqsize; +% addto pix also px shifted (0,0); +% addto pix also px shifted (sqsize,sqsize); +% addto pix also px shifted (0,2sqsize); +% addto pix also px shifted (sqsize,3sqsize); +% cull pix excluding (0,0); +% PIX=pix; +% picture px,pix; +%fi; + +vardef char.A = +% setwidth (15bs); + x1r:=16bs; + y1:=0; + x2r:=16bs; + y2:=17.3bs; + x3r:=6bs; + y3:=0; + x4:=12bs; + y4:=3.5bs; + x5:=7bs; + y5:=3.5bs; + penpos1(4.2bs,0); + penpos2(4.2bs,0); + penpos3(4.9bs,0); + penpos4(2.4bs,90); + penpos5(2.4bs,90); + penstroke z1e..z2e; + penstroke z2e..z3e; + penstroke z4e..z5e; + penlabels(1,2,3,4,5); +enddef; + +vardef char.S = +% setwidth (13bs); + x1l:=1bs; + y1l:=5.5bs; + x2l:=1bs; + y2l:=3bs; + x3l:=1.6bs; + y3l:=1bs; + x4l:=3.7bs; + y4l:=0; + x5l:=11bs; + y5l:=0; + x6l:=13.4bs; + y6l:=1bs; + x7l:=14bs; + y7l:=3bs; + x8l:=14bs; + y8l:=5.6bs; + x9l:=13.6bs; + y9l:=6.6bs; + x10l:=13bs; + y10l:=7.2bs; + x11r:=2.2bs; + y11r:=10.1bs; +% x11l:=5.4bs; +% y11l:=13bs; + penpos1(4.25bs,0); + penpos2(4.3bs,7); + penpos3(4.4bs,28); + penpos4(3.7bs,48); + penpos5(3.4bs,126); + penpos6(4.4bs,152); + penpos7(4.25bs,174); + penpos8(4.5bs,200); + penpos9(4.55bs,208); + penpos10(4.4bs,215); + penpos11(4.2bs,215); +% penpos11(4.4bs,215); + x12r:=14bs; + y12r:=11.8bs; + x13r:=14bs; + y13r:=14.3bs; + x14r:=13.4bs; + y14r:=16.3bs; + x15r:=11.3bs; + y15r:=17.3bs; + x16r:=4bs; + y16r:=17.3bs; + x17r:=1.6bs; + y17r:=16.3bs; + x18r:=1bs; + y18r:=14.3bs; + x19r:=1bs; + y19r:=11.7bs; + x20r:=1.4bs; + y20r:=10.7bs; + x21r:=2.2bs; + y21r:=10.1bs; + x22l:=13bs; + y22l:=7.2bs; + penpos12(4.25bs,0); + penpos13(4.3bs,7); + penpos14(4.4bs,28); + penpos15(3.7bs,48); + penpos16(3.4bs,126); + penpos17(4.4bs,152); + penpos18(4.25bs,174); + penpos19(4.5bs,200); + penpos20(4.5bs,208); + penpos21(4.2bs,215); + penpos22(4.4bs,215); + % penstroke z1e--z2e{z2-z1}..{z5-z4}z4e--z5e{z5-z4}..{z8-z7}z7e--z8e{z8-z7}..{z11-z10}z10e--z11e; + penstroke z1e--z2e{z2-z1}..{z5-z4}z4e--z5e{z5-z4}..{z8-z7}z7e--z8e{z8-z7}..{z11-z10}z10e--z11e; + penstroke z12e--z13e{z13-z12}..{z16-z15}z15e--z16e{z16-z15}..{z19-z18}z18e--z19e{z19-z18}..{z22-z21}z21e--z22e; + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21); +enddef; + + +vardef char.C = +% setwidth (13bs); + x1l:=1bs; + y1l:=5.5bs; + x2l:=1bs; + y2l:=3bs; + x3l:=1.6bs; + y3l:=1bs; + x4l:=3.7bs; + y4l:=0; + x5l:=11bs; + y5l:=0; + x6l:=13.4bs; + y6l:=1bs; + x7l:=14bs; + y7l:=3bs; + x8l:=14bs; + y8l:=5.5bs; + + penpos1(4.3bs,0); + penpos2(4.3bs,7); + penpos3(4.4bs,28); + penpos4(3.7bs,48); + penpos5(3.4bs,126); + penpos6(4.4bs,152); + penpos7(4.3bs,174); + penpos8(4.3bs,180); + + penstroke z1e---z2e{z2-z1}..{z5-z4}z4e---z5e{z5-z4}..{z8-z7}z7e---z8e; + + x12r:=14bs; + y12r:=11.8bs; + x13r:=14bs; + y13r:=14.3bs; + x14r:=13.4bs; + y14r:=16.3bs; + x15r:=11.3bs; + y15r:=17.3bs; + x16r:=4bs; + y16r:=17.3bs; + x17r:=1.6bs; + y17r:=16.3bs; + x18r:=1bs; + y18r:=14.3bs; + x19r:=1bs; + y19r:=5.5bs; + penpos12(4.25bs,0); + penpos13(4.3bs,7); + penpos14(4.4bs,28); + penpos15(3.7bs,48); + penpos16(3.4bs,126); + penpos17(4.4bs,152); + penpos18(4.3bs,174); + penpos19(4.25bs,180); + + penstroke z12e---z13e{z13-z12}..{z16-z15}z15e---z16e{z16-z15}..{z19-z18}z18e---z19e; + penlabels(1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,19); +enddef; + +vardef char.I = +% setwidth (6bs); + x1l:=1bs; + y1l:=0; + x2l:=1bs; + y2l:=17.3bs; + penpos1(4.2bs,0); + penpos2(4.2bs,0); + penstroke z1e..z2e; + penlabels(1,2); +enddef; + +%vardef char.a = char.A enddef; +%vardef char.s = char.S enddef; +%vardef char.c = char.C enddef; +%vardef char.i = char.I enddef; + +vardef make@#(expr char_w)= + begingroup beginchar(str@#,char_w,hheight,ydepth); + "the character "&str @#; char@#; +% if (fontsize#*mag>30) and (proofing=0): mask(char_w,hheight); fi + endchar; +endgroup enddef; + +%vardef make@#(expr char_w)= +% begingroup beginchar(str@#,char_w,hheight,ydepth); +% "the character "&str @#; char@#; endchar; +%endgroup enddef; + +smoothing:=10; + +make.S(14bss); +make.C(14bss); +make.A(16bss); +make.I(5.5bss); diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf new file mode 100644 index 00000000000..0ec5a453348 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii10.mf @@ -0,0 +1,3 @@ +fontsize#=10; +input ascii; +end; diff --git a/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf b/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf new file mode 100644 index 00000000000..06a19cb0122 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/ascmac/ascii36.mf @@ -0,0 +1,3 @@ +fontsize#=36; +input ascii; +end; diff --git a/Master/texmf-dist/fonts/tfm/public/ascmac/ascgrp.tfm b/Master/texmf-dist/fonts/tfm/public/ascmac/ascgrp.tfm Binary files differnew file mode 100644 index 00000000000..0132f977368 --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/ascmac/ascgrp.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/ascmac/ascii10.tfm b/Master/texmf-dist/fonts/tfm/public/ascmac/ascii10.tfm Binary files differnew file mode 100644 index 00000000000..f3ab6ebcaae --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/ascmac/ascii10.tfm diff --git a/Master/texmf-dist/fonts/tfm/public/ascmac/ascii36.tfm b/Master/texmf-dist/fonts/tfm/public/ascmac/ascii36.tfm Binary files differnew file mode 100644 index 00000000000..8e8709457de --- /dev/null +++ b/Master/texmf-dist/fonts/tfm/public/ascmac/ascii36.tfm diff --git a/Master/texmf-dist/fonts/type1/public/ascmac/ascgrp.pfb b/Master/texmf-dist/fonts/type1/public/ascmac/ascgrp.pfb Binary files differnew file mode 100644 index 00000000000..e40ceafc7be --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/ascmac/ascgrp.pfb diff --git a/Master/texmf-dist/fonts/type1/public/ascmac/ascii10.pfb b/Master/texmf-dist/fonts/type1/public/ascmac/ascii10.pfb Binary files differnew file mode 100644 index 00000000000..ea647b5d49a --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/ascmac/ascii10.pfb diff --git a/Master/texmf-dist/fonts/type1/public/ascmac/ascii36.pfb b/Master/texmf-dist/fonts/type1/public/ascmac/ascii36.pfb Binary files differnew file mode 100644 index 00000000000..5e9e8c73947 --- /dev/null +++ b/Master/texmf-dist/fonts/type1/public/ascmac/ascii36.pfb diff --git a/Master/texmf-dist/source/latex/ascmac/Makefile b/Master/texmf-dist/source/latex/ascmac/Makefile new file mode 100644 index 00000000000..06c631d4d3c --- /dev/null +++ b/Master/texmf-dist/source/latex/ascmac/Makefile @@ -0,0 +1,58 @@ +STRIPTARGET = tascmac.sty +DOCTARGET = ascmac +PDFTARGET = $(addsuffix .pdf,$(DOCTARGET)) +DVITARGET = $(addsuffix .dvi,$(DOCTARGET)) +KANJI = -kanji=utf8 +FONTMAP = -f ipaex.map -f ptex-ipaex.map +TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) + +default: $(STRIPTARGET) $(DVITARGET) +strip: $(STRIPTARGET) +all: $(STRIPTARGET) $(PDFTARGET) + +ASCMAC = tascmac.sty ascmac.sty + +ASCMAC_SRC = ascmac.dtx + +# for generating files, we use pdflatex incidentally. +# current packages contain ASCII characters only, safe enough +tascmac.sty: $(ASCMAC_SRC) + rm -f $(ASCMAC) + pdflatex ascmac.ins + rm ascmac.log + +ascmac.dvi: $(ASCMAC_SRC) + rm -f platex.cfg + platex $(KANJI) ascmac.dtx + platex $(KANJI) ascmac.dtx + rm ascmac.aux ascmac.log ascmac.toc + +ascmac.pdf: ascmac.dvi + dvipdfmx $(FONTMAP) $< + +.PHONY: install clean cleanstrip cleanall cleandoc +install: + mkdir -p ${TEXMF}/doc/latex/ascmac + cp ./LICENSE ${TEXMF}/doc/latex/ascmac/ + cp ./README.md ${TEXMF}/doc/latex/ascmac/ + cp ./*.pdf ${TEXMF}/doc/latex/ascmac/ + mkdir -p ${TEXMF}/fonts/source/public/ascmac + cp ./*.mf ${TEXMF}/fonts/source/public/ascmac/ + mkdir -p ${TEXMF}/fonts/type1/public/ascmac + cp ./*.pfb ${TEXMF}/fonts/type1/public/ascmac/ + mkdir -p ${TEXMF}/fonts/tfm/public/ascmac + cp ./*.tfm ${TEXMF}/fonts/tfm/public/ascmac/ + mkdir -p ${TEXMF}/source/latex/ascmac + cp ./Makefile ${TEXMF}/source/latex/ascmac/ + cp ./*.dtx ${TEXMF}/source/latex/ascmac/ + cp ./*.ins ${TEXMF}/source/latex/ascmac/ + mkdir -p ${TEXMF}/tex/latex/ascmac + cp ./*.sty ${TEXMF}/tex/latex/ascmac/ +clean: + rm -f $(ASCMAC) $(DVITARGET) +cleanstrip: + rm -f $(ASCMAC) +cleanall: + rm -f $(ASCMAC) $(DVITARGET) $(PDFTARGET) +cleandoc: + rm -f $(DVITARGET) $(PDFTARGET) diff --git a/Master/texmf-dist/source/latex/ascmac/ascmac.dtx b/Master/texmf-dist/source/latex/ascmac/ascmac.dtx new file mode 100644 index 00000000000..66badfe8669 --- /dev/null +++ b/Master/texmf-dist/source/latex/ascmac/ascmac.dtx @@ -0,0 +1,757 @@ +% \iffalse meta-comment +% +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2018 Japanese TeX Development Community +% +% This file is part of ascmac community edition. +% ------------------------------------------------------------- +% +% \fi +% +% +% \iffalse +% +% 2018/03/09 v2.0h +% - Moved to new GitHub repository: +% https://github.com/texjporg/ascmac +% 2017/12/22 v2.0g +% - Made compatible with pict2e also for tate-gumi. +% 2017/12/17 v2.0f +% - Fix a bug. +% 2017/12/06 v2.0e +% - Again works with non-e-TeX engines. +% 2017/07/22 v2.0d +% - Check existing \Return definition and throw an error +% if it is not compatible with ascmac. +% 2016/08/21 v2.0c +% - Support pdfLaTeX, XeLaTeX and LuaLaTeX. +% 2016/04/15 v2.0b +% - Simplify \@keytop. +% 2016/03/13 v2.0a +% - Avoid arithmetic overflow in \mask/\maskbox. +% 2016/03/12 v2.0 +% - Converted to DTX file. +% - Remove extra spaces before/after \keytop[c]{...}. +% - Adjust parameters for \keytop. +% 2016/03/06 +% - Set \tbaselineshift in itembox str and shadebox env. +% - Delete \tbaselineshift\z@ in \mask and \Maskbox. +% - Save \ybaselineshift. +% 2016/03/04 +% - boxnote, shadebox begin with \par\vspace{.3\baselineskip}. +% - Adjust the width of shadebox environment. +% 2016/02/21 (many thanks to ZR for suggestions in bxascmac) +% - Made compatible with pict2e (tate-gumi not supported yet). +% - Adjust parameters for drawing rounded rectangles. +% - Fix bugs in \maskbox and \Maskbox. +% 2006/07/14 (ST): itembox, screen environment bug fix. +% 2002/04/01 (KN): ASCII logo macros +% 1998/11/27 (KN and FTEXers): itembox +% 1998/02/27 (KN): set \tbaselineshift in minipage environment. +% +% \fi +% +% \iffalse +%<*ascmac> +%% wrapper for tascmac.sty +%% +%</ascmac> +%<*tascmac> +%% "tascmac" document style option for tate gumi. +%% +%% Original version: +%% Copyright (C) by 1993, ASCII Corporation & Impress Corporation. +%% (Last update: 2006/07/14) +%% Modified by Japanese TeX Development Community, since 2016. +%% +%% (ChangeLog has moved to the source file ``ascmac.dtx'') +%% +%</tascmac> +%<ascmac|tascmac>\NeedsTeXFormat{LaTeX2e} +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +\ProvidesFile{ascmac.dtx} +%</driver> +%<tascmac>\ProvidesPackage{tascmac} +%<ascmac>\ProvidesPackage{ascmac} + [2018/03/09 v2.0h +%<driver|tascmac> ascmac package (community edition) +%<ascmac> ascmac wrapper (community edition) + ] +%<*driver> +\documentclass{jltxdoc} +\usepackage{ascmac} +\GetFileInfo{ascmac.dtx} +\title{The \textsf{ascmac} package \fileversion} +\author{Japanese \TeX\ Development Community} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \tableofcontents +% +% \section{はじめに} +% +% \textsf{ascmac}パッケージは、\LaTeXe{}の標準機能の範囲で、図や罫線で +% 囲んだボックスを出力する命令などを提供します。\textsf{ascmac}パッケージ +% の実体は\textsf{tascmac}パッケージですが、これはもともと古いp\LaTeX{}で +% 配布されていた横組専用\textsf{ascmac}パッケージと、それを縦組に対応させ +% た\textsf{tascmac}パッケージを統合した名残です。 +% +% このドキュメントは、アスキーによって配布されている 2006/07/14 バージョン +% から派生して、日本語\TeX{}開発コミュニティによって開発されているバージョン +% のために新たに書かれました。コミュニティ版では、オリジナルのアスキー版の +% コードを元に、いくつかのバグ修正と他のパッケージとの互換性を改善しました。 +% また、v2.0c以降ではpdf\LaTeX{}などのエンジンもサポートしました。 +% +%\iffalse +% The package \textsf{ascmac} provides fancy boxes etc., within the scope +% of native \LaTeXe\ picture commands (thus driver-independent). +% This package was originally part of Japanese \pLaTeX, but now it +% supports pdf\LaTeX, Xe\LaTeX\ and Lua\LaTeX. +%\fi +% +% \section{使いかた} +% +% \subsection{環境型の命令} +% +% \textsf{ascmac}パッケージが提供する環境型の命令は4種類あります。それぞれ +% テキストなどを罫線枠で囲んで出力します。 +% +% これらの環境は、すべて横幅がその時点での |\linewidth| の値になりますの +% で、ボックスの幅を変更したい場合は |minipage| 環境などで囲んでください。 +% 縦の長さは、自動的に内容に合わせて調整されます。 \medskip +% +% \DescribeEnv{boxnote} +% |boxnote| 環境は、破ったメモ用紙のような雰囲気のボックスを作ります。 +% 破ったような形の罫線は、ascgrpフォントを使って実現されています。 +% +% \begin{boxnote} +% ボックスノート環境です。 +% \end{boxnote} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \begin{boxnote} +% ボックスノート環境です。 +% \end{boxnote} +%\end{verbatim} +% +% \DescribeEnv{screen} +% |screen| 環境は、四隅が丸い囲み枠の中にテキストを入れます。 +% オプション引数として |0| から |8| の整数値を指定すれば、四隅の丸みの +% 具合を変更することができます。整数値を大きくするにつれて丸みは小さく +% なっていきます。省略した場合は |0| とみなされます。 +% +% \begin{screen} +% 四隅が丸い囲み枠です。 +% \end{screen} +% \begin{screen}[4] +% 四隅が丸い囲み枠です。 +% \end{screen} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \begin{screen} +% 四隅が丸い囲み枠です。 +% \end{screen} +% \begin{screen}[4] +% 四隅が丸い囲み枠です。 +% \end{screen} +%\end{verbatim} +% +% \DescribeEnv{itembox} +% |itembox| 環境は |screen| 環境に似ていますが、上端の罫線のところにタイトル +% を出力することができます。また、オプション引数 |l|, |c|, |r| でタイトル +% の出力位置を左、中央、右と指定できます。省略した場合は中央になります。 +% +% \begin{itembox}[l]{タイトル} +% 項目ボックスです。 +% \end{itembox} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \begin{itembox}[l]{タイトル} +% 項目ボックスです。 +% \end{itembox} +%\end{verbatim} +% +% \DescribeEnv{shadebox} +% |shadebox| 環境は、影付きボックスの中にテキストを入れます。 +% 影の幅は |\shaderule| パラメータで規定され、デフォルトは5ptです。 +% +% \begin{shadebox} +% 影付きのボックスです。 +% \end{shadebox} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \begin{shadebox} +% 影付きのボックスです。 +% \end{shadebox} +%\end{verbatim} +% +% \subsection{網掛け命令} +% +% 網掛けをする命令が3種類用意されています。|\mask| 命令は、引数の内容の部分 +% に網を掛けます。|\maskbox| 命令と |\Maskbox| 命令は、幅と高さを指定して +% 網掛けすることができます。そして、|\maskbox| 命令と |\Maskbox| 命令の違い +% は、後者のみボックスの周りに罫線を引くという点です。 +% +% これらの命令は、いずれもascgrpフォントに収録されている網掛けパターンの +% 文字を並べることで網掛けを実現しています。 +% +% \makeatletter +% \begin{table}[htbp] +% \centering +% \begin{tabular}{llll} +% A = {\@ascgrp A} & B = {\@ascgrp B} & C = {\@ascgrp C} & D = {\@ascgrp D} \\ +% E = {\@ascgrp E} & F = {\@ascgrp F} & G = {\@ascgrp G} & H = {\@ascgrp H} \\ +% I = {\@ascgrp I} & J = {\@ascgrp J} & K = {\@ascgrp K} & +% \end{tabular} +% \end{table} +% \makeatother +% +% \DescribeMacro{\mask} +% |\mask| 命令は、第1引数が網掛けをする内容で、第2引数が網掛けパターンを +% 示す記号(AからK)です。 +% +% \begin{center} +% \mask{網掛け例1}{A} \hfil \mask{網掛け例2}{C} +% \end{center} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \mask{網掛け例1}{A} \hfil \mask{網掛け例2}{C} +%\end{verbatim} +% +% \DescribeMacro{\maskbox} +% |\maskbox| 命令は5つの引数を持ち、それぞれボックスの幅、高さ、 +% 網掛けパターン、出力位置、網掛けをする内容です。出力位置は |l|, |c|, |r| の +% いずれかで、それぞれ左、中央、右に出力します。 +% +% \begin{center} +% \maskbox{25em}{4em}{E}{c}{幅を指定した網掛けボックス} +% \end{center} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \maskbox{25em}{4em}{E}{c}{幅を指定した網掛けボックス} +%\end{verbatim} +% +% \DescribeMacro{\Maskbox} +% |\Maskbox| 命令は |\maskbox| 命令と同様の引数を持ちますが、網掛けをする内容の +% 指定の前、すなわち5番目の引数として、ボックスを囲む罫線の太さも指定します。 +% したがって、全部で6つの引数を持ちます。 +% +% \begin{center} +% \Maskbox{30em}{4em}{A}{c}{1pt}{幅を指定した罫線付き網掛けボックス} +% \end{center} +% は、以下の入力から得られます。 +%\begin{verbatim} +% \Maskbox{30em}{4em}{A}{c}{1pt}{幅を指定した罫線付き網掛けボックス} +%\end{verbatim} +% +% \subsection{その他の命令} +% +% \DescribeMacro{\keytop} +% |\keytop| コマンドは、キーボード上の文字を示すときなどに便利です。 +% +% \begin{table}[htbp] +% \centering +% \begin{tabular}{cc} +% 入力 & 出力 \\ +% |\keytop{A}| & \keytop{A} \\ +% |\keytop{あ}| & \keytop{あ} +% \end{tabular} +% \end{table} +% +% \DescribeMacro{\yen} +% \DescribeMacro{\return} +% \DescribeMacro{\Return} +% 円記号を出力する |\yen| 命令は、Yと=を重ね合わせて出力しています。 +% 改行記号は |\return| と |\Return| です。改行記号はascgrpフォント +% を用いています。 +% +% \begin{table}[htbp] +% \centering +% \begin{tabular}{cc} +% 入力 & 出力 \\ +% |\yen| & \yen \\ +% |\return| & \return \\ +% |\Return| & \Return +% \end{tabular} +% \end{table} +% +% \DescribeMacro{\ascii} +% \DescribeMacro{\Ascii} +% \DescribeMacro{\ASCII} +% アスキーコーポレーションのロゴを出力する命令です。 +% サイズは3種類用意されています。 +% +% \ascii \hfil \Ascii \hfil \ASCII +% +% +% \StopEventually{} +% +% \section{コード} +% +% \textsf{ascmac}パッケージは\textsf{tascmac}パッケージのラッパーです。 +% \begin{macrocode} +%<*ascmac> +\RequirePackage{tascmac} +%</ascmac> +% \end{macrocode} +% +% 従来、\textsf{tascmac}パッケージの動作条件は、p\LaTeXe{}でした。 +% しかし、community editionでは、バージョンv2.0c以降でほかのエンジンも +% サポートすることにしました。 +% \begin{macrocode} +%<*tascmac> +%% +%% Originally `ascmac' and `tascmac' can be used only in +%% pLaTeX, upLaTeX or LuaLaTeX with LuaTeX-ja support. +%% We (texjporg) started to support other engines, such as +%% pdfLaTeX, XeLaTeX and LuaLaTeX (even without LuaTeX-ja). +%% +\newif\ifascmac@ptex \ascmac@ptextrue +\ifx\kanjiskip\@undefined + \@ifpackageloaded{luatexja}{% + \PackageInfo{tascmac}{% + Patch from LuaTeX-ja will be applied}% + }{% + \PackageInfo{tascmac}{% + Assuming pdfLaTeX, XeLaTeX or LuaLaTeX}% + \ascmac@ptexfalse + }% +\fi +% \end{macrocode} +% +% (u)p\LaTeXe{}とLua\TeX-ja以外をサポートするためのトリックです。 +% 「Q」という文字のカテゴリーコードをこのパッケージを読んでいる間だけ +% 変更し、(u)p\LaTeXe{}またはLua\TeX-jaでは無視する文字に、それ以外では +% コメント文字(|%|と同じ)にします。 +% \changes{2016/08/21}{v2.0c}{pdf\LaTeX{}などをサポート} +% \begin{macrocode} +\chardef\ascmac@q@catcode=\catcode`\Q\relax +\ifascmac@ptex + \catcode`\Q=9\relax +\else + \catcode`\Q=14\relax +\fi +% \end{macrocode} +% +% pdf\LaTeX{}やLua\LaTeX{}のプリミティブを使って、ascgrpのType1フォントを +% 使用できるように設定します。 +% \changes{2016/08/21}{v2.0c}{pdf\LaTeX{}でascgrpのType1フォントを使用} +% \changes{2017/12/06}{v2.0e}{念のためe-拡張なしのエンジンでのエラーを防止} +% \changes{2017/12/17}{v2.0f}{判定が逆になっていたのを修正} +% \begin{macrocode} +%% +%% Use Type1 font for ascgrp (pdfLaTeX, LuaLaTeX) +\ifascmac@ptex\else + \ifx\pdfextension\@undefined + \ifx\pdfmapline\@undefined\else + % pdfTeX, LuaTeX (<=0.81) + \pdfmapline{+ascgrp <ascgrp.pfb} + \pdfmapline{+ascii10 <ascii10.pfb} + \pdfmapline{+ascii36 <ascii36.pfb} + \fi + \else + % LuaTeX (>=0.85) + \pdfextension mapline{+ascgrp <ascgrp.pfb} + \pdfextension mapline{+ascii10 <ascii10.pfb} + \pdfextension mapline{+ascii36 <ascii36.pfb} + \fi +\fi +% \end{macrocode} +% +% \begin{macro}{\@savetbaselineshift} +% \begin{macro}{\@saveybaselineshift} +% |\tbaselineshift| と |\ybaselineshift| を一時退避するための準備です。 +% \changes{2016/08/21}{v2.0c}{定義済みの場合はあえて定義しないようにした} +% \begin{macrocode} +%% +%% ascmac.sty 10/28 '88 +%% ASCII special macros +Q \ifx\@savetbaselineshift\@undefined \newdimen\@savetbaselineshift \fi +Q \ifx\@saveybaselineshift\@undefined \newdimen\@saveybaselineshift \fi +%% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@ASCII} +% \begin{macro}{\ascii} +% \begin{macro}{\Ascii} +% \begin{macro}{\ASCII} +% アスキーコーポレーションのロゴです。 +% \begin{macrocode} +%% ASCII logo +\def\@@ASCII#1#2#3{\shortstack{#1 ASCII \\[#3] + \fontsize{#2}{\z@}\usefont{OT1}{cmss}{m}{n}ASCII CORPORATION}} +\def\ascii{\@ifundefined{@ascii}{\font\@ascii=ascii10 scaled \magstep4}{}% + \@@ASCII\@ascii{5pt}{-6pt}} +\def\Ascii{\@ifundefined{@Ascii}{\font\@Ascii=ascii10 scaled \magstep5}{}% + \@@ASCII\@Ascii{6pt}{-7pt}} +\def\ASCII{\@ifundefined{@ASCII}{\font\@ASCII=ascii36}{}% + \@@ASCII\@ASCII{9pt}{-9pt}} +%% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% |boxnote| 環境などで使う命令の準備です。 +% \begin{macrocode} +%% boxnote environment +\font\@ascgrp=ascgrp +\newbox\scb@x \newbox\scscb@x +\newdimen\@bw\newbox\@nbox\newbox\@nbody +% \end{macrocode} +% +% \begin{environment}{boxnote} +% |boxnote| 環境を定義します。 +% \begin{macrocode} +\def\boxnote{\par\vspace{.3\baselineskip}% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \setbox\@nbox=\hbox{\@ascgrp\vrule width1.08pt depth35pt b\hss a\hss b} + \@whiledim \wd\@nbox<\hsize \do{ + \setbox\@nbox=\hbox{\@ascgrp\unhbox\@nbox \hss a\hss b}} + \setbox\@nbox=\hbox to\hsize{\@ascgrp\unhbox\@nbox \hss a\hss b% + \vrule width1.08pt depth35pt} + \@bw=\wd\@nbox\advance\@bw -40pt + \begin{lrbox}{\@nbody}\begin{minipage}{\@bw}% (KN:1998/02/27) +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +}% +% \end{macrocode} +% +% \begin{macrocode} +\def\endboxnote{\end{minipage}\end{lrbox}% + \vbox{\parindent=0pt\offinterlineskip\copy\@nbox + \hbox to\wd\@nbox{\vrule width1.08pt\hfil\box\@nbody\hfil\vrule width1.08pt} + \hbox to\wd\@nbox{\vrule width1.08pt height15pt\hfil + \vrule width1.08pt height15pt}\hrule height1.08pt}} +%% +% \end{macrocode} +% \end{environment} +% +% |screen| 環境などで使う命令の準備です。 +% コミュニティ版では、縦組でpict2eパッケージと共存しても壊れないように、 +% |\oval| を常に横組ボックスの中で呼び出すようにしました。 +% このときに |\oval| の引数を正しく渡す処理も追加しています。 +% \changes{2017/12/22}{v2.0g}{縦組でpict2eと共存しても壊れないように、 +% \cs{oval}を常に横組ボックスの中で呼び出すようにした} +% \begin{macrocode} +%% screen environment +\newdimen\@scw +\newbox\ascmac@hoboxa +\newbox\ascmac@hoboxb +\def\ascmac@parse@ovarg#1{% +Q \iftdir +Q \def\ascmac@ovarg{}% +Q \@tfor\reserved@a:=#1\do{% +Q \if l\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg t}% +Q \else\if t\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg r}% +Q \else\if r\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg b}% +Q \else\if b\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg l}% +Q \fi\fi\fi\fi}% +Q \else + \def\ascmac@ovarg{#1}% +Q \fi +} +\def\ascmac@pass@oval#1#2{\oval(#2,#2)[#1]} +\def\@hobox#1#2#3{% + \ascmac@parse@ovarg{#1}\setbox\ascmac@hoboxa=\hbox{% +Q \yoko + \expandafter\ascmac@pass@oval\expandafter{\ascmac@ovarg}{#3}\hss}% + \ascmac@parse@ovarg{#2}\setbox\ascmac@hoboxb=\hbox{% +Q \yoko + \expandafter\ascmac@pass@oval\expandafter{\ascmac@ovarg}{#3}\hss}% + \wd\ascmac@hoboxa=\z@ \wd\ascmac@hoboxb=\z@ + % the following two lines are unnecessary for (u)pLaTeX, but + % added intentionally for LuaTeX-ja (\wd <-> \ltjsetwd incompatible) + \ht\ascmac@hoboxa=\z@ \ht\ascmac@hoboxb=\z@ + \dp\ascmac@hoboxa=\z@ \dp\ascmac@hoboxb=\z@ + \hbox to\@scw{\box\ascmac@hoboxa\hfil\box\ascmac@hoboxb\relax + \dimen\z@=#3\unitlength\advance\dimen\z@\@wholewidth + \vrule\@width\z@\@height\z@\@depth.5\dimen\z@}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@vrf@#1#2{\vskip#1\leaders\vrule width#2\vfil\vskip#1} +% \end{macrocode} +% +% \begin{environment}{screen} +% |screen| 環境を定義します。 +% \begin{macrocode} +\def\screen{% +Q \@saveybaselineshift\ybaselineshift \ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift \tbaselineshift\z@ + \@ifnextchar[{\@screen}{\@screen[0]}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@screen[#1]{\ifcase#1\def\@r{20}\def\@s{9.8pt}\def\@sx{10pt}\or + \def\@r{18}\def\@s{8.8pt}\def\@sx{9pt}\or + \def\@r{16}\def\@s{7.8pt}\def\@sx{8pt}\or + \def\@r{14}\def\@s{6.8pt}\def\@sx{7pt}\or + \def\@r{12}\def\@s{5.8pt}\def\@sx{6pt}\or + \def\@r{10}\def\@s{4.8pt}\def\@sx{5pt}\or + \def\@r{8}\def\@s{3.8pt}\def\@sx{4pt}\or + \def\@r{6}\def\@s{2.8pt}\def\@sx{3pt}\else + \def\@r{4}\def\@s{1.8pt}\def\@sx{2pt}\fi + \par\vspace{.3\baselineskip}\@scw\linewidth \advance\@scw -\@r pt + \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% (KN:1998/02/27) +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +}% +% \end{macrocode} +% +% \begin{macrocode} +\def\endscreen{\end{minipage}\egroup% + \setbox\scscb@x=\hbox to\linewidth{\hfil\vbox{\offinterlineskip% + \thinlines\setlength{\unitlength}{1pt}\hrule\kern\@s% + \@hobox{tl}{tr}{\@r}\kern-\@sx\box\scb@x\@hobox{bl}{br}{\@r}% + \kern-.4pt\hrule}\hfil}\dimen0=\ht\scscb@x% + \dimen2=\@sx\advance\dimen2 .2pt + \noindent\hbox to\linewidth{\hbox to.2pt{\vbox to\dimen0{\@vrf@{\dimen2}{.4pt}}% + \hss}\box\scscb@x\hbox to.2pt{\hss\vbox to\dimen0{\@vrf@{\dimen2}{.4pt}}}\hss}}% +%% +% \end{macrocode} +% \end{environment} +% +% |itembox| 環境などで使う命令の準備です。 +% \begin{macrocode} +%% itembox environment +%% replace \box0 with \@iboxstr; thanks FTEXers (1998/11/27) +\newdimen\@itemh\newtoks\@iboxpos\newbox\@iboxstr +% \end{macrocode} +% +% \begin{macrocode} +\def\@hleader{\leaders\hrule height .8pt\hfil} +% \end{macrocode} +% +% \begin{environment}{itembox} +% |itembox| 環境を定義します。 +% \begin{macrocode} +\def\itembox{\@ifnextchar[{\@itembox}{\@itembox[c]}} +\def\@itembox[#1]#2{% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \par\vspace{.3\baselineskip}% + \setbox\@iboxstr=\hbox{% +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift + #2}% + \@itemh\ht\@iboxstr\advance\@itemh\dp\@iboxstr + \vspace{.5\@itemh}\bgroup\@scw\linewidth + \advance\@scw-20pt\@iboxpos={#1}% + \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% +Q \ybaselineshift\@saveybaselineshift +Q \tbaselineshift\@savetbaselineshift% (KN:1998/02/27) + \vspace*{.5\@itemh}}% +% \end{macrocode} +% +% \begin{macrocode} +\def\enditembox{\end{minipage}\egroup% + \setbox\scscb@x=\hbox to\linewidth{\hfil\vbox{\offinterlineskip% + \thicklines\setlength{\unitlength}{1pt}% + \hbox to\@scw{\if l\the\@iboxpos\else\@hleader\fi + \space\vbox to.8pt{\vss\hbox{\box\@iboxstr}\vss}% + \space\if r\the\@iboxpos\else \@hleader\fi}\kern9.6pt + \@hobox{tl}{tr}{20}\kern-10pt\box\scb@x\@hobox{bl}{br}{20}% + \kern-.8pt\hrule height.8pt}\hfil}\dimen0=\ht\scscb@x% + \noindent\hbox to\linewidth{\hbox to.4pt{\vbox to\dimen0{\@vrf@{10.4pt}{.8pt}}% + \hss}\box\scscb@x\hbox to.4pt{\hss\vbox to\dimen0{\@vrf@{10.4pt}{.8pt}}}% + \hss}\egroup} +%% +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\keytop} +% \begin{macro}{\@keytop} +% |\keytop| 命令です。 +% \begin{macrocode} +%% \keytop +\def\keytop{\@ifnextchar[{\@keytop}{\@keytop[d]}} +\def\@keytop[#1]#2{% + {\setbox0=\hbox{\shortstack{#2}}% +Q \ybaselineshift\z@ \tbaselineshift\z@ + \dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt% + \setbox\scscb@x=\hbox to\dimen0{% +Q \iftdir\tate\else\yoko\fi + \@scw\wd0\hfil\vtop{\offinterlineskip + \thinlines\setlength{\unitlength}{1pt}\hrule\kern2.3pt\@hobox{tl}{tr}5% + \kern-2.4pt\box0\@hobox{bl}{br}5\kern-.4pt\hrule}\hfil}% + \dimen0=\dp\scscb@x\advance\dimen0 -.4pt + \setbox0=\vbox{\hbox{\hbox to.2pt{\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}\hss}% + \box\scscb@x\hbox to.2pt{\hss\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}}}}% + \if #1c\mbox{}$\vcenter{\box0}$\mbox{}\else + \if #1t\else\if #1b\boxmaxdepth=0pt\else + \boxmaxdepth=\dimen1\fi\fi \mbox{}\vbox{\box0}\fi}} +%% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\yen} +% \changes{1996/03/13}{v1.1}{Append \cs{leavevmode} in +% \cs{yen}, \cs{return}, \cs{Return} command.} +% 円記号です。 +% \begin{macrocode} +%% \yen +\def\yen{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{\hrule height.1ex width.98\wd0 + \kern.33ex\hrule height.1ex width.98\wd0\kern.45ex}}} +% \end{macrocode} +%% +% \end{macro} +% +% \begin{macro}{\return} +% \begin{macro}{\Return} +% 改行記号です。|\return|や|\Return|という名称はありふれているので、 +% ascmacパッケージの定義が別のパッケージと衝突する場合があります +% (例:algorithm2eパッケージ)。 +% そこで、|\Return|という命令が既に定義されていて、かつascgrpフォントが +% 不使用と判断される場合はエラーを出します。本来ならば|\return|も同様に +% チェックしたいのですが、「okumacroパッケージの後にascmacパッケージを +% 読み込むと、エラーなしにascmacパッケージの定義が勝つ」という従来の挙動 +% を維持するため、現時点ではチェックしません。 +% \begin{macrocode} +%% return-key +\begingroup +\def\ascmac@definable{\PackageInfo{ascmac}{Command + \@backslashchar\reserved@a\space already defined, but + compatible with\MessageBreak ascmac package, overwriting}} +\def\ascmac@check#1{\ifx#1\@undefined\else\ascmac@parse{#1}\fi} +\def\ascmac@parse#1{\edef\reserved@a{\expandafter\@gobble\string #1}% + \edef\ascmac@parse@tmp{\meaning#1 \string\@ascgrp}% + \expandafter\ascmac@parse@i\ascmac@parse@tmp\@nil} +\expandafter\def\expandafter\ascmac@parse@i + \expandafter#\expandafter1\string\@ascgrp#2\@nil{\ifx\relax#2\relax + \@notdefinable\else\ascmac@definable\fi} +%\ascmac@check{\return}% conflict with okumacro, no check +\ascmac@check{\Return} +\endgroup +% \end{macrocode} +% +% 改行記号の定義の本体です。 +% \begin{macrocode} +\def\return{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \@ascgrp\char"20}} +\def\Return{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \@ascgrp @}} +%% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% |\mask| 命令の準備です。 +% \begin{macrocode} +%% \mask +\newbox\@bwsp \newbox\@@bwsp\newcount\@bcal +% \end{macrocode} +% +% \begin{macrocode} +\def\setdim@#1#2{\@bcal=#2\divide#1\@bcal\multiply#1\@bcal\advance#1 1.001#2} +% \end{macrocode} +% +% \begin{macro}{\mask} +% |\mask| 命令を定義します。 +% \begin{macrocode} +\def\mask#1#2{{\setbox\@bwsp=\hbox{#1}% + \setbox0=\hbox{% +Q \ybaselineshift\z@\tbaselineshift\z@ + \@ascgrp#2}% + \dimen0=\wd\@bwsp\dimen1=\ht\@bwsp\advance\dimen1\dp\@bwsp\dimen2=-\dimen1 + \setdim@{\dimen0}{\wd0}\setdim@{\dimen1}{\ht0}% + \setbox\@@bwsp=\hbox to\dimen0{\leaders + \vtop to\dimen1{\leaders\box0\vfil}\hfil}% + \advance\dimen2\dp\@@bwsp\divide\dimen2 2 + \advance\dimen2\dp\@bwsp\boxmaxdepth=\dimen2 + \setbox\@@bwsp=\vbox{\box\@@bwsp}% + \mbox{}\hbox to\wd\@@bwsp{\hbox to0pt{\box\@@bwsp\hss}\hss\unhbox\@bwsp\hss}}} +%% +% \end{macrocode} +% \end{macro} +% +% |\maskbox| 命令の準備です。 +% \begin{macrocode} +%% \Maskbox{width}{height}{mask_char}{pos}{rule_wid}{body} +%% \maskbox{width}{height}{mask_char}{pos}{body} +\def\@setdim#1#2{\@bcal=#2\divide#1\@bcal\multiply#1\@bcal\advance#1 .001#2} +% \end{macrocode} +% +% \begin{macro}{\Maskbox} +% \begin{macro}{\maskbox} +% |\maskbox| 命令と |\Maskbox| 命令を定義します。 +% \begin{macrocode} +\def\Maskbox#1#2#3#4#5#6{{% + \setbox0=\hbox{% +Q \ybaselineshift\z@\tbaselineshift\z@ + \@ascgrp#3}% + \dimen0=#1\@setdim{\dimen0}{\wd0}\dimen1=#2\@setdim{\dimen1}{\ht0}% + \ifx#4c\skip0=0pt plus1fil\skip1=\skip0\fi + \ifx#4r\skip0=0pt plus1fil\skip1=0pt\fi + \ifx#4l\skip1=0pt plus1fil\skip0=0pt\fi + \leavevmode + \hbox{\hbox to0pt{\hbox to\dimen0{\leaders\vbox to\dimen1{\leaders + \box0\vfil}\hfil}\hss}% + \vrule width#5\vbox to\dimen1{\hrule height#5\vfil + \dimen3=#5\advance\dimen0-2\dimen3\advance\dimen0 .15pt + \hbox to\dimen0{\hskip\skip0\relax#6\hskip\skip1}% + \vfil\hrule height#5}\vrule width#5}}} +\def\maskbox#1#2#3#4#5{\Maskbox{#1}{#2}{#3}{#4}{0pt}{#5}} +%% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% |shadebox| 環境で使う命令の準備です。 +% \begin{macrocode} +%% shadebox environment +\newdimen\shaderule\shaderule 5pt +% \end{macrocode} +% +% \begin{environment}{shadebox} +% |shadebox| 環境を定義します。 +% \begin{macrocode} +\def\shadebox{\par\vspace{.3\baselineskip}% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \dimen0\linewidth \advance\dimen0-20pt + \advance\dimen0-2\fboxrule \advance\dimen0-\shaderule + \setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}% +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +} +% \end{macrocode} +% +% \begin{macrocode} +\def\endshadebox{\endminipage\egroup\dimen0=10pt + \setbox\@tempboxa=\hbox{\kern\dimen0\unhbox\@tempboxa\kern\dimen0}% + \setbox0=\vbox{\hrule \@height \fboxrule + \hbox{\vrule \@width \fboxrule + \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}% + \vrule \@width \fboxrule}\hrule \@height \fboxrule}% + \dimen0=\ht0 \advance\dimen0-\shaderule + \hbox{\hbox to \shaderule{\copy0\hss}\kern 0pt + \vrule width\wd0 height0pt depth\shaderule\hskip-\shaderule + \vrule width\shaderule height\dimen0}} +%% +% \end{macrocode} +% \end{environment} +% +% トリックに使用した「Q」という文字のカテゴリーコードを元に戻します。 +% \changes{2016/08/21}{v2.0c}{pdf\LaTeX{}などをサポート} +% \begin{macrocode} +\catcode`\Q=\ascmac@q@catcode\relax +%% +%</tascmac> +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/Master/texmf-dist/source/latex/ascmac/ascmac.ins b/Master/texmf-dist/source/latex/ascmac/ascmac.ins new file mode 100644 index 00000000000..413b1eec2ef --- /dev/null +++ b/Master/texmf-dist/source/latex/ascmac/ascmac.ins @@ -0,0 +1,23 @@ +\input docstrip +\keepsilent +\usedir{tex/latex/ascmac} +\ifToplevel{\askonceonly} + +\Msg{*** Generating ascmac package ***} + +\preamble + +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2018 Japanese TeX Development Community + +This file is part of ascmac community edition. +------------------------------------------------------------- + +\endpreamble + +\generate{ + \file{ascmac.sty}{\from{ascmac.dtx}{ascmac}} + \file{tascmac.sty}{\from{ascmac.dtx}{tascmac}} +} + +\endbatchfile diff --git a/Master/texmf-dist/tex/latex/ascmac/ascmac.sty b/Master/texmf-dist/tex/latex/ascmac/ascmac.sty new file mode 100644 index 00000000000..5ce995d9cf8 --- /dev/null +++ b/Master/texmf-dist/tex/latex/ascmac/ascmac.sty @@ -0,0 +1,25 @@ +%% +%% This is file `ascmac.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ascmac.dtx (with options: `ascmac') +%% +%% Copyright (c) 2010 ASCII MEDIA WORKS +%% Copyright (c) 2016-2018 Japanese TeX Development Community +%% +%% This file is part of ascmac community edition. +%% ------------------------------------------------------------- +%% +%% wrapper for tascmac.sty +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ascmac} + [2018/03/09 v2.0h + ascmac wrapper (community edition) + ] +\RequirePackage{tascmac} +\endinput +%% +%% End of file `ascmac.sty'. diff --git a/Master/texmf-dist/tex/latex/ascmac/tascmac.sty b/Master/texmf-dist/tex/latex/ascmac/tascmac.sty new file mode 100644 index 00000000000..41e2b52123b --- /dev/null +++ b/Master/texmf-dist/tex/latex/ascmac/tascmac.sty @@ -0,0 +1,304 @@ +%% +%% This is file `tascmac.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ascmac.dtx (with options: `tascmac') +%% +%% Copyright (c) 2010 ASCII MEDIA WORKS +%% Copyright (c) 2016-2018 Japanese TeX Development Community +%% +%% This file is part of ascmac community edition. +%% ------------------------------------------------------------- +%% +%% "tascmac" document style option for tate gumi. +%% +%% Original version: +%% Copyright (C) by 1993, ASCII Corporation & Impress Corporation. +%% (Last update: 2006/07/14) +%% Modified by Japanese TeX Development Community, since 2016. +%% +%% (ChangeLog has moved to the source file ``ascmac.dtx'') +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{tascmac} + [2018/03/09 v2.0h + ascmac package (community edition) + ] +%% +%% Originally `ascmac' and `tascmac' can be used only in +%% pLaTeX, upLaTeX or LuaLaTeX with LuaTeX-ja support. +%% We (texjporg) started to support other engines, such as +%% pdfLaTeX, XeLaTeX and LuaLaTeX (even without LuaTeX-ja). +%% +\newif\ifascmac@ptex \ascmac@ptextrue +\ifx\kanjiskip\@undefined + \@ifpackageloaded{luatexja}{% + \PackageInfo{tascmac}{% + Patch from LuaTeX-ja will be applied}% + }{% + \PackageInfo{tascmac}{% + Assuming pdfLaTeX, XeLaTeX or LuaLaTeX}% + \ascmac@ptexfalse + }% +\fi +\chardef\ascmac@q@catcode=\catcode`\Q\relax +\ifascmac@ptex + \catcode`\Q=9\relax +\else + \catcode`\Q=14\relax +\fi +%% +%% Use Type1 font for ascgrp (pdfLaTeX, LuaLaTeX) +\ifascmac@ptex\else + \ifx\pdfextension\@undefined + \ifx\pdfmapline\@undefined\else + % pdfTeX, LuaTeX (<=0.81) + \pdfmapline{+ascgrp <ascgrp.pfb} + \pdfmapline{+ascii10 <ascii10.pfb} + \pdfmapline{+ascii36 <ascii36.pfb} + \fi + \else + % LuaTeX (>=0.85) + \pdfextension mapline{+ascgrp <ascgrp.pfb} + \pdfextension mapline{+ascii10 <ascii10.pfb} + \pdfextension mapline{+ascii36 <ascii36.pfb} + \fi +\fi +%% +%% ascmac.sty 10/28 '88 +%% ASCII special macros +Q \ifx\@savetbaselineshift\@undefined \newdimen\@savetbaselineshift \fi +Q \ifx\@saveybaselineshift\@undefined \newdimen\@saveybaselineshift \fi +%% +%% ASCII logo +\def\@@ASCII#1#2#3{\shortstack{#1 ASCII \\[#3] + \fontsize{#2}{\z@}\usefont{OT1}{cmss}{m}{n}ASCII CORPORATION}} +\def\ascii{\@ifundefined{@ascii}{\font\@ascii=ascii10 scaled \magstep4}{}% + \@@ASCII\@ascii{5pt}{-6pt}} +\def\Ascii{\@ifundefined{@Ascii}{\font\@Ascii=ascii10 scaled \magstep5}{}% + \@@ASCII\@Ascii{6pt}{-7pt}} +\def\ASCII{\@ifundefined{@ASCII}{\font\@ASCII=ascii36}{}% + \@@ASCII\@ASCII{9pt}{-9pt}} +%% +%% boxnote environment +\font\@ascgrp=ascgrp +\newbox\scb@x \newbox\scscb@x +\newdimen\@bw\newbox\@nbox\newbox\@nbody +\def\boxnote{\par\vspace{.3\baselineskip}% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \setbox\@nbox=\hbox{\@ascgrp\vrule width1.08pt depth35pt b\hss a\hss b} + \@whiledim \wd\@nbox<\hsize \do{ + \setbox\@nbox=\hbox{\@ascgrp\unhbox\@nbox \hss a\hss b}} + \setbox\@nbox=\hbox to\hsize{\@ascgrp\unhbox\@nbox \hss a\hss b% + \vrule width1.08pt depth35pt} + \@bw=\wd\@nbox\advance\@bw -40pt + \begin{lrbox}{\@nbody}\begin{minipage}{\@bw}% (KN:1998/02/27) +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +}% +\def\endboxnote{\end{minipage}\end{lrbox}% + \vbox{\parindent=0pt\offinterlineskip\copy\@nbox + \hbox to\wd\@nbox{\vrule width1.08pt\hfil\box\@nbody\hfil\vrule width1.08pt} + \hbox to\wd\@nbox{\vrule width1.08pt height15pt\hfil + \vrule width1.08pt height15pt}\hrule height1.08pt}} +%% +%% screen environment +\newdimen\@scw +\newbox\ascmac@hoboxa +\newbox\ascmac@hoboxb +\def\ascmac@parse@ovarg#1{% +Q \iftdir +Q \def\ascmac@ovarg{}% +Q \@tfor\reserved@a:=#1\do{% +Q \if l\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg t}% +Q \else\if t\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg r}% +Q \else\if r\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg b}% +Q \else\if b\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg l}% +Q \fi\fi\fi\fi}% +Q \else + \def\ascmac@ovarg{#1}% +Q \fi +} +\def\ascmac@pass@oval#1#2{\oval(#2,#2)[#1]} +\def\@hobox#1#2#3{% + \ascmac@parse@ovarg{#1}\setbox\ascmac@hoboxa=\hbox{% +Q \yoko + \expandafter\ascmac@pass@oval\expandafter{\ascmac@ovarg}{#3}\hss}% + \ascmac@parse@ovarg{#2}\setbox\ascmac@hoboxb=\hbox{% +Q \yoko + \expandafter\ascmac@pass@oval\expandafter{\ascmac@ovarg}{#3}\hss}% + \wd\ascmac@hoboxa=\z@ \wd\ascmac@hoboxb=\z@ + % the following two lines are unnecessary for (u)pLaTeX, but + % added intentionally for LuaTeX-ja (\wd <-> \ltjsetwd incompatible) + \ht\ascmac@hoboxa=\z@ \ht\ascmac@hoboxb=\z@ + \dp\ascmac@hoboxa=\z@ \dp\ascmac@hoboxb=\z@ + \hbox to\@scw{\box\ascmac@hoboxa\hfil\box\ascmac@hoboxb\relax + \dimen\z@=#3\unitlength\advance\dimen\z@\@wholewidth + \vrule\@width\z@\@height\z@\@depth.5\dimen\z@}} +\def\@vrf@#1#2{\vskip#1\leaders\vrule width#2\vfil\vskip#1} +\def\screen{% +Q \@saveybaselineshift\ybaselineshift \ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift \tbaselineshift\z@ + \@ifnextchar[{\@screen}{\@screen[0]}} +\def\@screen[#1]{\ifcase#1\def\@r{20}\def\@s{9.8pt}\def\@sx{10pt}\or + \def\@r{18}\def\@s{8.8pt}\def\@sx{9pt}\or + \def\@r{16}\def\@s{7.8pt}\def\@sx{8pt}\or + \def\@r{14}\def\@s{6.8pt}\def\@sx{7pt}\or + \def\@r{12}\def\@s{5.8pt}\def\@sx{6pt}\or + \def\@r{10}\def\@s{4.8pt}\def\@sx{5pt}\or + \def\@r{8}\def\@s{3.8pt}\def\@sx{4pt}\or + \def\@r{6}\def\@s{2.8pt}\def\@sx{3pt}\else + \def\@r{4}\def\@s{1.8pt}\def\@sx{2pt}\fi + \par\vspace{.3\baselineskip}\@scw\linewidth \advance\@scw -\@r pt + \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% (KN:1998/02/27) +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +}% +\def\endscreen{\end{minipage}\egroup% + \setbox\scscb@x=\hbox to\linewidth{\hfil\vbox{\offinterlineskip% + \thinlines\setlength{\unitlength}{1pt}\hrule\kern\@s% + \@hobox{tl}{tr}{\@r}\kern-\@sx\box\scb@x\@hobox{bl}{br}{\@r}% + \kern-.4pt\hrule}\hfil}\dimen0=\ht\scscb@x% + \dimen2=\@sx\advance\dimen2 .2pt + \noindent\hbox to\linewidth{\hbox to.2pt{\vbox to\dimen0{\@vrf@{\dimen2}{.4pt}}% + \hss}\box\scscb@x\hbox to.2pt{\hss\vbox to\dimen0{\@vrf@{\dimen2}{.4pt}}}\hss}}% +%% +%% itembox environment +%% replace \box0 with \@iboxstr; thanks FTEXers (1998/11/27) +\newdimen\@itemh\newtoks\@iboxpos\newbox\@iboxstr +\def\@hleader{\leaders\hrule height .8pt\hfil} +\def\itembox{\@ifnextchar[{\@itembox}{\@itembox[c]}} +\def\@itembox[#1]#2{% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \par\vspace{.3\baselineskip}% + \setbox\@iboxstr=\hbox{% +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift + #2}% + \@itemh\ht\@iboxstr\advance\@itemh\dp\@iboxstr + \vspace{.5\@itemh}\bgroup\@scw\linewidth + \advance\@scw-20pt\@iboxpos={#1}% + \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% +Q \ybaselineshift\@saveybaselineshift +Q \tbaselineshift\@savetbaselineshift% (KN:1998/02/27) + \vspace*{.5\@itemh}}% +\def\enditembox{\end{minipage}\egroup% + \setbox\scscb@x=\hbox to\linewidth{\hfil\vbox{\offinterlineskip% + \thicklines\setlength{\unitlength}{1pt}% + \hbox to\@scw{\if l\the\@iboxpos\else\@hleader\fi + \space\vbox to.8pt{\vss\hbox{\box\@iboxstr}\vss}% + \space\if r\the\@iboxpos\else \@hleader\fi}\kern9.6pt + \@hobox{tl}{tr}{20}\kern-10pt\box\scb@x\@hobox{bl}{br}{20}% + \kern-.8pt\hrule height.8pt}\hfil}\dimen0=\ht\scscb@x% + \noindent\hbox to\linewidth{\hbox to.4pt{\vbox to\dimen0{\@vrf@{10.4pt}{.8pt}}% + \hss}\box\scscb@x\hbox to.4pt{\hss\vbox to\dimen0{\@vrf@{10.4pt}{.8pt}}}% + \hss}\egroup} +%% +%% \keytop +\def\keytop{\@ifnextchar[{\@keytop}{\@keytop[d]}} +\def\@keytop[#1]#2{% + {\setbox0=\hbox{\shortstack{#2}}% +Q \ybaselineshift\z@ \tbaselineshift\z@ + \dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt% + \setbox\scscb@x=\hbox to\dimen0{% +Q \iftdir\tate\else\yoko\fi + \@scw\wd0\hfil\vtop{\offinterlineskip + \thinlines\setlength{\unitlength}{1pt}\hrule\kern2.3pt\@hobox{tl}{tr}5% + \kern-2.4pt\box0\@hobox{bl}{br}5\kern-.4pt\hrule}\hfil}% + \dimen0=\dp\scscb@x\advance\dimen0 -.4pt + \setbox0=\vbox{\hbox{\hbox to.2pt{\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}\hss}% + \box\scscb@x\hbox to.2pt{\hss\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}}}}% + \if #1c\mbox{}$\vcenter{\box0}$\mbox{}\else + \if #1t\else\if #1b\boxmaxdepth=0pt\else + \boxmaxdepth=\dimen1\fi\fi \mbox{}\vbox{\box0}\fi}} +%% +%% \yen +\def\yen{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{\hrule height.1ex width.98\wd0 + \kern.33ex\hrule height.1ex width.98\wd0\kern.45ex}}} +%% +%% return-key +\begingroup +\def\ascmac@definable{\PackageInfo{ascmac}{Command + \@backslashchar\reserved@a\space already defined, but + compatible with\MessageBreak ascmac package, overwriting}} +\def\ascmac@check#1{\ifx#1\@undefined\else\ascmac@parse{#1}\fi} +\def\ascmac@parse#1{\edef\reserved@a{\expandafter\@gobble\string #1}% + \edef\ascmac@parse@tmp{\meaning#1 \string\@ascgrp}% + \expandafter\ascmac@parse@i\ascmac@parse@tmp\@nil} +\expandafter\def\expandafter\ascmac@parse@i + \expandafter#\expandafter1\string\@ascgrp#2\@nil{\ifx\relax#2\relax + \@notdefinable\else\ascmac@definable\fi} +\ascmac@check{\Return} +\endgroup +\def\return{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \@ascgrp\char"20}} +\def\Return{\leavevmode\hbox{% +Q \iftdir\yoko\fi + \@ascgrp @}} +%% +%% \mask +\newbox\@bwsp \newbox\@@bwsp\newcount\@bcal +\def\setdim@#1#2{\@bcal=#2\divide#1\@bcal\multiply#1\@bcal\advance#1 1.001#2} +\def\mask#1#2{{\setbox\@bwsp=\hbox{#1}% + \setbox0=\hbox{% +Q \ybaselineshift\z@\tbaselineshift\z@ + \@ascgrp#2}% + \dimen0=\wd\@bwsp\dimen1=\ht\@bwsp\advance\dimen1\dp\@bwsp\dimen2=-\dimen1 + \setdim@{\dimen0}{\wd0}\setdim@{\dimen1}{\ht0}% + \setbox\@@bwsp=\hbox to\dimen0{\leaders + \vtop to\dimen1{\leaders\box0\vfil}\hfil}% + \advance\dimen2\dp\@@bwsp\divide\dimen2 2 + \advance\dimen2\dp\@bwsp\boxmaxdepth=\dimen2 + \setbox\@@bwsp=\vbox{\box\@@bwsp}% + \mbox{}\hbox to\wd\@@bwsp{\hbox to0pt{\box\@@bwsp\hss}\hss\unhbox\@bwsp\hss}}} +%% +%% \Maskbox{width}{height}{mask_char}{pos}{rule_wid}{body} +%% \maskbox{width}{height}{mask_char}{pos}{body} +\def\@setdim#1#2{\@bcal=#2\divide#1\@bcal\multiply#1\@bcal\advance#1 .001#2} +\def\Maskbox#1#2#3#4#5#6{{% + \setbox0=\hbox{% +Q \ybaselineshift\z@\tbaselineshift\z@ + \@ascgrp#3}% + \dimen0=#1\@setdim{\dimen0}{\wd0}\dimen1=#2\@setdim{\dimen1}{\ht0}% + \ifx#4c\skip0=0pt plus1fil\skip1=\skip0\fi + \ifx#4r\skip0=0pt plus1fil\skip1=0pt\fi + \ifx#4l\skip1=0pt plus1fil\skip0=0pt\fi + \leavevmode + \hbox{\hbox to0pt{\hbox to\dimen0{\leaders\vbox to\dimen1{\leaders + \box0\vfil}\hfil}\hss}% + \vrule width#5\vbox to\dimen1{\hrule height#5\vfil + \dimen3=#5\advance\dimen0-2\dimen3\advance\dimen0 .15pt + \hbox to\dimen0{\hskip\skip0\relax#6\hskip\skip1}% + \vfil\hrule height#5}\vrule width#5}}} +\def\maskbox#1#2#3#4#5{\Maskbox{#1}{#2}{#3}{#4}{0pt}{#5}} +%% +%% shadebox environment +\newdimen\shaderule\shaderule 5pt +\def\shadebox{\par\vspace{.3\baselineskip}% +Q \@saveybaselineshift\ybaselineshift\ybaselineshift\z@ +Q \@savetbaselineshift\tbaselineshift\tbaselineshift\z@ + \dimen0\linewidth \advance\dimen0-20pt + \advance\dimen0-2\fboxrule \advance\dimen0-\shaderule + \setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}% +Q \ybaselineshift\@saveybaselineshift \tbaselineshift\@savetbaselineshift +} +\def\endshadebox{\endminipage\egroup\dimen0=10pt + \setbox\@tempboxa=\hbox{\kern\dimen0\unhbox\@tempboxa\kern\dimen0}% + \setbox0=\vbox{\hrule \@height \fboxrule + \hbox{\vrule \@width \fboxrule + \vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}% + \vrule \@width \fboxrule}\hrule \@height \fboxrule}% + \dimen0=\ht0 \advance\dimen0-\shaderule + \hbox{\hbox to \shaderule{\copy0\hss}\kern 0pt + \vrule width\wd0 height0pt depth\shaderule\hskip-\shaderule + \vrule width\shaderule height\dimen0}} +%% +\catcode`\Q=\ascmac@q@catcode\relax +%% +\endinput +%% +%% End of file `tascmac.sty'. |