itembox に似た八角形のボックス

名前: 山下
日時: 2006-09-23 09:17:41
IPアドレス: 220.209.23.*

こんにちは ascmac.sty で定義されている screen と itembox のような, 八角形のボックスが欲しいと思っています. (熊澤さんのサイトから頂いたスタイルファイルを末尾に付けてあります). とりあえず screen をベースに,47行目にある \def\@hobox#1#2#3{\hbox to\@scw{\@oval(#3,#3)[#1]\hfil\@oval(#3,#3)[#2]}} を, \def\@hoboxu#1{\hbox to\@scw{\line(1,1){#1}\hfil\line(1,-1){#1}}} \def\@hoboxd#1{\hbox to\@scw{\line(1,-1){#1}\hfil\line(1,1){#1}}} の2つに分け,67行目付近の \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% を \thinlines\setlength{\unitlength}{1pt}\hrule\kern\@s% \@hoboxu{\@r}\kern-\@sx\box\scb@x\@hoboxd{\@r}% \kern-.4pt\hrule}\hfil}\dimen0=\ht\scscb@x% とでもすればいいのだろうと思うのですが,角の斜線の位置調整ができません. そもそも,当初は「@oval」と「@」がついていたのに, これなしの「line」でも構わないのかも気になります. 解決策をご存知の方,なにとぞご教示お願い致します. == 以下,tascmac.sty の中身(熊澤さんより) % "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% \noindent\hbox to\linewidth{\hbox to.2pt{\vbox to\dimen0{\@vrf@{\@sx}{.4pt}}% \hss}\box\scscb@x\hbox to.25pt{\hss\vbox to\dimen0{\@vrf@{\@sx}{.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.6pt{\vbox to\dimen0{\@vrf@{10pt}{.8pt}}% \hss}\box\scscb@x\hbox to.6pt{\hss\vbox to\dimen0{\@vrf@{10pt}{.9pt}}}% \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}}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)