Skip to content

Instantly share code, notes, and snippets.

@zr-tex8r
Forked from anonymous/tascmac.sty
Last active December 12, 2015 07:48
Show Gist options
  • Save zr-tex8r/4738770 to your computer and use it in GitHub Desktop.
Save zr-tex8r/4738770 to your computer and use it in GitHub Desktop.
% This is a modified version of tascmac.sty, provided as part of
% the pTeX distribution originally authored by ASCII MEDIA WORKS Inc.
% The information of the original file is given below:
%---------------------------------------
% "tascmac" document style option for tate gumi.
%
% Copyright (C) by 1993, ASCII Corporation & Impress Corporation.
%
% 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.
%
% ascmac.sty 10/28 '88
% ASCII special macros
\newdimen\@savetbaselineshift
\newdimen\@saveybaselineshift
%
%% 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{\baselineskip}
\@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)
\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
\def\@hobox#1#2#3{\hbox to\@scw{\@oval(#3,#3)[#1]\hfil\@oval(#3,#3)[#2]}}
\def\@vrf@#1#2{\vskip#1\leaders\vrule width#2\vfil\vskip#1}
\def\screen{%
\@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)
\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{%
\@savetbaselineshift\tbaselineshift\tbaselineshift\z@
\par\vspace{.3\baselineskip}%
\setbox\@iboxstr=\hbox{#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}%
\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{\tbaselineshift\z@
{\setbox0=\hbox{\shortstack{#2}}%
\dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt%
\setbox\scscb@x=\hbox to\dimen0{%
\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-.25pt\hrule}\hfil}\dimen0=\dp\scscb@x%
\setbox0=\vbox{\hbox{\hbox to0pt{\hss\vtop to\dimen0{\@vrf@{2.5pt}{.4pt}}}%
\box\scscb@x\hbox to.2pt{\hss\vtop to\dimen0{\@vrf@{2.5pt}{.4pt}}}}}%
\if #1c $\vcenter{\box0}$ \else \if #1t\else\if #1b\boxmaxdepth=0pt\else
\boxmaxdepth=\dimen1\fi\fi \mbox{}\vbox{\box0}\fi}}
%
%% \yen
%
% \changes{1996/03/13}{v1.1}{Append \cs{leavevmode} in
% \cs{yen}, \cs{return}, \cs{Return} command.}
%
\def\yen{\leavevmode\hbox{\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
\def\return{\leavevmode\hbox{\iftdir\yoko\fi\@ascgrp\char"20}}
\def\Return{\leavevmode\hbox{\iftdir\yoko\fi\@ascgrp @}}
%
%% \mask & \maskbox
\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{\tbaselineshift\z@
{\setbox\@bwsp=\hbox{#1}\setbox0=\hbox{\@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\hbox{\@ascgrp#2}\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}
\def\@setdim#1#2{\@bcal=#2\divide#1\@bcal\multiply#1\@bcal\advance#1 .001#2}
\def\Maskbox#1#2#3#4#5#6{{\tbaselineshift\z@
\setbox0=\hbox{\@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
\hbox{\hbox to0pt{\hbox to\dimen0{\leaders\vbox to\dimen1{\leaders
\hbox{\@ascgrp#3}\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{\dimen0\linewidth \advance\dimen0-20pt
\advance\dimen0-2\fboxrule \advance\dimen0-\shaderule
\setbox\@tempboxa=\hbox\bgroup\minipage{\dimen0}}
\def\endshadebox{\endminipage\egroup\dimen0=10pt \advance\dimen0-\fboxrule
\setbox\@tempboxa=\hbox{\kern\dimen0\unhbox\@tempboxa\kern\dimen0}%
\setbox0=\vbox{\hrule \@height \fboxrule
\hbox{\vrule \@width \fboxrule \hskip-\fboxrule
\vbox{\vskip\fboxsep \box\@tempboxa\vskip\fboxsep}%
\hskip-\fboxrule\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}}
\documentclass{article}
\usepackage[papersize={100pt,100pt},scale=0.9]{geometry}
\usepackage{ascmac}
\begin{document}
\begin{screen}[0]Hogehoge\end{screen}
\begin{itembox}{FOO}Foobar\end{itembox}
\end{document}
@zr-tex8r
Copy link
Author

zr-tex8r commented Feb 8, 2013

The original code of tascmac.sty is recorded in the previous revision.
This work, as well as the original, is under the modified BSD license.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment