名前: しっぽ愛好家 日時: 2003-02-23 19:42:20 IPアドレス: 211.4.36.*
>>16863 …arydshln パッケージと colortab パッケージの併用ですか. とりあえず,次の記述をプリアンブルに入れてみると,どうでしょうか. %%% colortbl パッケージの方を先に読み込みます. \usepackage{colortbl} \usepackage{arydshln} \ADLnullwide \makeatletter \let\columncolor\relax \def\endarray{% \adl@endarray \egroup \adl@arrayrestore \egroup \gdef\@preamble{}\CT@end} \def\@array{% \adl@everyvbox\everyvbox \everyvbox{\adl@arrayinit \the\adl@everyvbox \everyvbox\adl@everyvbox}% \global\let\adl@hdashline@bgcolorsaved\adl@hdashline@bgcolor \global\let\adl@hdashline@bgcolor\@empty \adl@array} \let\@@array\@array \expandafter\def\expandafter\adl@arrayrestore\expandafter{% \adl@arrayrestore \global\let\adl@hdashline@bgcolor\adl@hdashline@bgcolorsaved} \global\let\adl@hdashline@bgcolorsaved\@empty \global\let\adl@hdashline@bgcolor\@empty \def\adl@@colhtdp{% \ifdim\adl@height<\@tempdima \global\adl@height\@tempdima \fi \ifdim\adl@depth<\dp\z@ \global\adl@depth\dp\z@ \fi} \adl@preaminit \def\adl@ihdashline[#1/#2]{% \adl@hline\adl@connect\arrayrulewidth \ifnum0=`{\fi}% \adl@hdashline@bgcolor\crcr\noalign{\vskip-\arrayrulewidth}% \multispan{\adl@columns}\unskip \adl@hcline\z@[#1/#2]% \noalign{\ifnum0=`}\fi \futurelet\@tempa\adl@xhline} \def\@classz{% \@classx \@tempcnta\count@ \prepnext@tok \expandafter\CT@extract\the\toks\@tempcnta\columncolor!\@nil \@addtopreamble{% \setbox\z@\hbox\bgroup\bgroup \ifcase\@chnum \hskip\stretch{.5}\kern\z@ \d@llarbegin \insert@column \d@llarend \hskip\stretch{.5}% \or \d@llarbegin \insert@column \d@llarend \hfill \or \hfill\kern\z@ \d@llarbegin \insert@column \d@llarend \or $\vcenter \@startpbox{\@nextchar}\insert@column \@endpbox$% \or \vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or \vbox \@startpbox{\@nextchar}\insert@column \@endpbox \fi \egroup\egroup \begingroup \CT@setup \CT@column@color \CT@row@color \CT@do@color \endgroup \@tempdima\ht\z@ \advance\@tempdima\minrowclearance \adl@colhtdp%%% added \vrule\@height\@tempdima\@width\z@ \unhbox\z@}% \adl@setup@bgcolor%%% added \prepnext@tok} \def\adl@setup@bgcolor{% \xdef\adl@hdashline@bgcolor{% \adl@hdashline@bgcolor \ifx\adl@hdashline@bgcolor\@empty\else &\fi \omit \setbox\z@\hbox{}\ht\z@\arrayrulewidth \begingroup \CT@setup \hskip\@tempdimb \CT@column@color \CT@do@color\unskip \hskip\@tempdimc \endgroup \box\z@}}% \def\multicolumn#1#2#3{% \multispan{#1}% \begingroup\begingroup \def\adl@arrayrule{\adl@mcarrayrule{#1}}% \def\adl@arraydashrule{\adl@mcarraydashrule{#1}}% \def\adl@argarraydashrule{\adl@mcargarraydashrule{#1}}% \let\@addamp\adl@mcaddamp \let\adl@setup@bgcolor\relax \@mkpream{#2}\@addtopreamble\@empty \global\let\adl@preamble\@preamble\endgroup \let\@preamble\adl@preamble \def\@sharp{#3}\let\protect\relax \adl@activatepbox \adl@preaminit \let\CT@row@color\relax \let\CT@column@color\relax \let\CT@do@color\relax \@arstrut \@preamble\hbox{}\endgroup \global\advance\adl@currentcolumn#1\ignorespaces} \makeatother [補足] 2 重(3 重…)の罫線の罫線どうしの間には,(罫線のどちら側の色を 用いるべきか判断がつかない場合もあるので)網掛けを行っていません. まあ,\columncolor を設定した列の 2 重の横罫線の間にはその列の色を用い, \rowcolor を設定した行の 2 重の縦罫線の間にはその行の色を 用いるようにしてもいいのですが…colortbl パッケージ自身は 2 重罫線の間には 色をつけないので,このままでもよいでしょう. [余談] arydshln パッケージ,colortab パッケージはどちらも, LaTeX のオリジナルの表作成処理(の内部処理)をかなり書き換えるので, マクロをいじったことのある人なら併用するのは厄介な組み合わせだと お気づきになることでしょう. %%% 私自身,上記のコードを ``解説'' する気力はありません. %%% また,上記の記述にしても,手元で簡単なサンプルを処理した限り %%% うまくいく,という程度のものです. また,点線の罫線に網掛けが入った表,というのは, 真にやむを得ない場合には ``画像扱い'' にしてしまうのも一つの手ですね. (簡単なものなら picture 環境で書けますし,表の部分のみ eps 化するのが 簡単だという場合もあるかもしれません.)
この書き込みへの返事: