3 % based on tascmac.sty [2016/04/15 v2.0b (community edition)]
5 \NeedsTeXFormat{LaTeX2e}
6 \ProvidesPackage{lltjp-tascmac}[2022-08-18 Patch to (t)ascmac for LuaTeX-ja]
8 \RequirePackage{tascmac}
10 %% use Type1 font for ascgrp
11 \pdfextension mapline{+ascgrp <ascgrp.pfb}
14 \def\ascmac@parse@ovarg#1{%
15 \ifnum\ltjgetparameter{direction}=3\relax
17 \@tfor\reserved@a:=#1\do{%
18 \if l\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg t}%
19 \else\if t\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg r}%
20 \else\if r\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg b}%
21 \else\if b\reserved@a \edef\ascmac@ovarg{\ascmac@ovarg l}%
24 \def\ascmac@ovarg{#1}%
28 %% boxnote environment
29 \def\ltj@backup@attr#1#2{\ifnum#1=-"7FFFFFFF #2\z@\else #2=#1sp\fi\unsetattribute#1}
30 \def\ltj@restore@attr#1#2{\ifdim#2=\z@ \unsetattribute#1\else #1#2\fi}
31 \def\boxnote{\par\vspace{.3\baselineskip}%
32 \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
33 \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
34 \setbox\@nbox=\hbox{\@ascgrp\vrule width1.08pt depth35pt b\hss a\hss b}
35 \@whiledim \wd\@nbox<\hsize \do{
36 \setbox\@nbox=\hbox{\@ascgrp\unhbox\@nbox \hss a\hss b}}
37 \setbox\@nbox=\hbox to\hsize{\@ascgrp\unhbox\@nbox \hss a\hss b%
38 \vrule width1.08pt depth35pt}%
39 \@bw=\wd\@nbox\advance\@bw -40pt
40 \begin{lrbox}{\@nbody}\begin{minipage}{\@bw}% (KN:1998/02/27)
41 \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
42 \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
46 \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
47 \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
48 \@ifnextchar[{\@screen}{\@screen[0]}}
49 \def\@screen[#1]{\ifcase#1\def\@r{20}\def\@s{9.8pt}\def\@sx{10pt}\or
50 \def\@r{18}\def\@s{8.8pt}\def\@sx{9pt}\or
51 \def\@r{16}\def\@s{7.8pt}\def\@sx{8pt}\or
52 \def\@r{14}\def\@s{6.8pt}\def\@sx{7pt}\or
53 \def\@r{12}\def\@s{5.8pt}\def\@sx{6pt}\or
54 \def\@r{10}\def\@s{4.8pt}\def\@sx{5pt}\or
55 \def\@r{8}\def\@s{3.8pt}\def\@sx{4pt}\or
56 \def\@r{6}\def\@s{2.8pt}\def\@sx{3pt}\else
57 \def\@r{4}\def\@s{1.8pt}\def\@sx{2pt}\fi
58 \par\vspace{.3\baselineskip}\@scw\linewidth \advance\@scw -\@r pt
59 \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% (KN:1998/02/27)
60 \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
61 \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
63 %% itembox environment
65 \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
66 \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
67 \par\vspace{.3\baselineskip}%
68 \setbox\@iboxstr=\hbox{%
69 \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
70 \ltj@restore@attr\ltj@tablshift\@savetbaselineshift #2}%
71 \@itemh\ht\@iboxstr\advance\@itemh\dp\@iboxstr
72 \vspace{.5\@itemh}\bgroup\@scw\linewidth
73 \advance\@scw-20pt\@iboxpos={#1}%
74 \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}%
75 \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
76 \ltj@restore@attr\ltj@tablshift\@savetbaselineshift
81 {\setbox0=\hbox{\shortstack{#2}}\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift%
82 \dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt%
83 \setbox\scscb@x=\hbox to\dimen0{%
84 \@scw\wd0\hfil\vtop{\offinterlineskip
85 \thinlines\setlength{\unitlength}{1pt}\hrule\kern2.3pt\@hobox{tl}{tr}5%
86 \kern-2.4pt\box0\@hobox{bl}{br}5\kern-.4pt\hrule}\hfil}%
87 \dimen0=\dp\scscb@x\advance\dimen0 -.4pt
88 \setbox0=\vbox{\hbox{\hbox to.2pt{\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}\hss}%
89 \box\scscb@x\hbox to.2pt{\hss\vtop to\dimen0{\@vrf@{2.3pt}{.4pt}}}}}%
90 \if #1c\mbox{}$\vcenter{\box0}$\mbox{}\else
91 \if #1t\else\if #1b\boxmaxdepth=0pt\else
92 \boxmaxdepth=\dimen1\fi\fi \mbox{}\vbox{\box0}\fi}}
95 \def\mask#1#2{{\setbox\@bwsp=\hbox{#1}%
96 \setbox0=\hbox{\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift \@ascgrp#2}%
97 \dimen0=\wd\@bwsp\dimen1=\ht\@bwsp\advance\dimen1\dp\@bwsp\dimen2=-\dimen1
98 \setdim@{\dimen0}{\wd0}\setdim@{\dimen1}{\ht0}%
99 \setbox\@@bwsp=\hbox to\dimen0{\leaders
100 \vtop to\dimen1{\leaders\box0\vfil}\hfil}%
101 \advance\dimen2\dp\@@bwsp\divide\dimen2 2
102 \advance\dimen2\dp\@bwsp\boxmaxdepth=\dimen2
103 \setbox\@@bwsp=\vbox{\box\@@bwsp}%
104 \mbox{}\hbox to\wd\@@bwsp{\hbox to0pt{\box\@@bwsp\hss}\hss\unhbox\@bwsp\hss}}}
107 \def\Maskbox#1#2#3#4#5#6{{%
108 \setbox0=\hbox{\unsetattribute\ltj@yablshift\unsetattribute\ltj@tablshift \@ascgrp#3}%
109 \dimen0=#1\@setdim{\dimen0}{\wd0}\dimen1=#2\@setdim{\dimen1}{\ht0}%
110 \ifx#4c\skip0=0pt plus1fil\skip1=\skip0\fi
111 \ifx#4r\skip0=0pt plus1fil\skip1=0pt\fi
112 \ifx#4l\skip1=0pt plus1fil\skip0=0pt\fi
114 \hbox{\hbox to0pt{\hbox to\dimen0{\leaders\vbox to\dimen1{\leaders
115 \box0\vfil}\hfil}\hss}%
116 \vrule width#5\vbox to\dimen1{\hrule height#5\vfil
117 \dimen3=#5\advance\dimen0-2\dimen3\advance\dimen0 .15pt
118 \hbox to\dimen0{\hskip\skip0\relax#6\hskip\skip1}%
119 \vfil\hrule height#5}\vrule width#5}}}
121 %% shadebox environment
122 \def\shadebox{\par\vspace{.3\baselineskip}%
123 \ltj@backup@attr\ltj@yablshift\@saveybaselineshift
124 \ltj@backup@attr\ltj@tablshift\@savetbaselineshift
125 \dimen0\linewidth \advance\dimen0-20pt
126 \advance\dimen0-2\fboxrule \advance\dimen0-\shaderule
127 \setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}%
128 \ltj@restore@attr\ltj@yablshift\@saveybaselineshift
129 \ltj@restore@attr\ltj@tablshift\@savetbaselineshift}%
133 % \changes{1996/03/13}{v1.1}{Append \cs{leavevmode} in
134 % \cs{yen}, \cs{return}, \cs{Return} command.}
136 \def\yen{\leavevmode\hbox{\yoko%
137 \setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{\hrule height.1ex width.98\wd0
138 \kern.33ex\hrule height.1ex width.98\wd0\kern.45ex}}}
141 \def\return{\leavevmode\hbox{\yoko\@ascgrp\char"20}}
142 \def\Return{\leavevmode\hbox{\yoko\@ascgrp @}}