発言者: 北見 けん
発言日: 2006 07/21 13:34
発言元: 211.128.71.194
> とありますから,てっきり
> epic.sty, eepic.sty との相性
> についての更新かと思いましたら,違いました。(^^ゞ
期待を外してすみません。
私がアスキーにレポートした下記の修正でした。
%% 修正前の tascmac.sty で以下をタイプセットしていただけると不具合が見られます。
\documentclass[draft]{jarticle}
%\documentclass[draft]{tarticle}
\usepackage{ascmac}
\title {itembox 環境の枠線が繋がらない}
\author {北見 けん}
\date{2006/07/12}
\begin{document}
\maketitle
\kern-\baselineskip
\begin{itembox}{これはぴったり}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\end{itembox}
\begin{itembox}{これははみ出す}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\verb!\kern3pt\vrule!
\end{itembox}
\begin{itembox}{こうすると崩れる}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\begin{verbatim}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\end{verbatim}
\end{itembox}
\begin{itembox}{ずれ幅は中身による}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern6pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
\begin{itembox}{さらにずれ幅を大きく}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern20pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
ずれる原因は itembox の中身が収められるボックスの幅を
\verb!\@scw! であると仮定しているところにあります。
中身を\verb!\hbox!に収めるかどうかで結果が異なるのは、
\TeX では\verb!\vbox! の中に幅の広いボックスがあれば
\verb!\vbox!自体の幅は中身に応じて大きくなりますが、
\verb!\vbox! の中の段落中に\verb!\hsize!からはみ出た行があっても
\verb!\vbox!自体の幅は\verb!\hsize!のままになるためです。
\newpage
修正案1
$$\verb!\setbox\scb@x=\hbox\bgroup!$$
を
$$\verb!\setbox\scb@x=\hb@xt@\@scw\bgroup!$$
に変更する。
\makeatletter
\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\bgroup\begin{minipage}{\@scw}% original
\setbox\scb@x=\hb@xt@\@scw\bgroup\begin{minipage}{\@scw}% modified by kk.
\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}
\makeatother
\begin{itembox}{これはぴったり}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\end{itembox}
\begin{itembox}{これははみ出す}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\verb!\kern3pt\vrule!
\end{itembox}
\begin{itembox}{こうすると崩れる}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\begin{verbatim}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\end{verbatim}
\end{itembox}
\begin{itembox}{ずれ幅は中身による}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern6pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
\begin{itembox}{さらにずれ幅を大きく}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern20pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
\newpage
修正案2
$$\verb!\setbox\scscb@x=\hbox to\linewidth{%!$$
に収められる水平リストの先頭と最後にある\verb!\hfil!を\verb!\kern10pt!に変更する。
それに伴って下側枠線も\verb!\hrule!に\verb!width \@scw!を補う。
\makeatletter
\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\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% original
\setbox\scscb@x=\hbox to\linewidth{\kern10pt\vbox{\offinterlineskip% modified by kk.
\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% original
\kern-.8pt\hrule height.8pt width \@scw}\kern10pt}\dimen0=\ht\scscb@x% modified by kk.
\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}
\makeatother
\begin{itembox}{これはぴったり}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\end{itembox}
\begin{itembox}{これははみ出す}
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
\verb!\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule!
\verb!\kern3pt\vrule!
\end{itembox}
\begin{itembox}{こうすると崩れる}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\begin{verbatim}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern3pt\vrule
}%
\end{verbatim}
\end{itembox}
\begin{itembox}{ずれ幅は中身による}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern6pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
\begin{itembox}{さらにずれ幅を大きく}
\hbox{%
\vrule height 10pt\kern-0.4pt\kern\hsize\kern-0.4pt\vrule
\kern20pt\vrule
}%
最後の\verb!\kern3pt!を\verb!\kern6pt!にした
\end{itembox}
\end{document}
▼関連発言
│
└◆4959:tascmac.sty 2006/07/18 [tDB] 07/20 11:47
└◆4961:Re:tascmac.sty 2006/07/18 [北見 けん] 07/21 13:34
└◆4967:Re[2]:tascmac.sty 2006/07/18 [tDB] 07/21 21:45<-last