表中で色をつけた行に縦二重罫を入れたいのですが,入れると縦二重罫の間の色が抜けてしまいます。ソースは以下の通りです。
\documentclass{article}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{l|c||l|c} \hline
\rowcolor[gray]{0.8}A&B&C&D\\ \hline
a& b&c&d \\
e&f&g&h\\ \hline
\end{tabular}¥vspace*{-10mm}
\end{document}
これを,縦二重罫の間も灰色になるようには,どのようにしたら良いのでしょうか。
ご存知の方がおられましたら,ご教示ください。
使用しているのは,TeXshop 5.10,macOS Montereyです。
私の個人的な対応法です。
二重罫線
を
ひとつの(幅の狭い)列(row)
として扱うという方法です。
リストを下に書きますが,emath をお使いではないでしょうから,
タイプセット済みの PDF と,
タイプセットに必要なファイルをひとまとめにした zip ファイルを
http://emath.s40.xrea.com/temp/QA0427.zip
に置きます。
QA0427tmp.pdf を閲覧して,タイプセットを実行してみよう,
ということであれば,QA0427.zip を実験用の臨時フォルダに解凍して
QA0427tmp.tex
をタイプセットしてみてください。
zip ファイル内のテキストファイルのエンコードは utf8 です。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage[notMy]{emath}
\usepackage{emathT}
\usepackage{colortbl}
\newdimen\mydima
\begin{document}
\begin{enumerate}
\item 提示された表:\\
\begin{tabular}{l|c||l|c} \hline
\rowcolor{red}A&B&C&D\\ \hline
a&b&c&d\\
e&f&g&h\\ \hline
\end{tabular}
\item \textsf{emath}を使用した表:\\
\setlength\mydima{2pt-2\tabcolsep}%
\begin{tabular}{l|c|C{\mydima}|l|c} \hline
\rowcolor{red}A&B&&C&D\\ \hline
a&b&&c&d\\
e&f&&g&h\\ \hline
\end{tabular}
\end{enumerate}
\end{document}
二重罫線
を
ひとつの(幅の狭い)列(row)
として扱うという方法です。
リストを下に書きますが,emath をお使いではないでしょうから,
タイプセット済みの PDF と,
タイプセットに必要なファイルをひとまとめにした zip ファイルを
http://emath.s40.xrea.com/temp/QA0427.zip
に置きます。
QA0427tmp.pdf を閲覧して,タイプセットを実行してみよう,
ということであれば,QA0427.zip を実験用の臨時フォルダに解凍して
QA0427tmp.tex
をタイプセットしてみてください。
zip ファイル内のテキストファイルのエンコードは utf8 です。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage[notMy]{emath}
\usepackage{emathT}
\usepackage{colortbl}
\newdimen\mydima
\begin{document}
\begin{enumerate}
\item 提示された表:\\
\begin{tabular}{l|c||l|c} \hline
\rowcolor{red}A&B&C&D\\ \hline
a&b&c&d\\
e&f&g&h\\ \hline
\end{tabular}
\item \textsf{emath}を使用した表:\\
\setlength\mydima{2pt-2\tabcolsep}%
\begin{tabular}{l|c|C{\mydima}|l|c} \hline
\rowcolor{red}A&B&&C&D\\ \hline
a&b&&c&d\\
e&f&&g&h\\ \hline
\end{tabular}
\end{enumerate}
\end{document}
大熊 様
RUIKEと申します。
非常に丁寧な回答をいただきありがとうございます。
ご推察の通り,emathは使用したことがありませんでした。
ご提供いただいたものを解凍してタイプセットした結果,
完全に所望の結果を得ることができました。
丁寧にstyファイルも一通り準備していただき,まことにありがとうございます。
お礼を申し上げます。
ところで,「二重罫線をひとつの(幅の狭い)列(row)として扱う」という方法ですが,
どのようにして狭く指定するのかが理解できておりません。
\newdimen\mydima
\setlength\mydima{2pt-2\tabcolsep}%
C{\mydima}
が重要な点かと推測しています。これから理解に努めます。
ところで,大熊様の「二重罫線をひとつの(幅の狭い)列(row)として扱う」という方法を
emathを使わずに実現する方法はないものでしょうか。
「空っぽの列(row)を狭く指定する方法」があれば実現可能ではないかと(素人なりに)考えております。
引き続き,アドバイスをいただけますよう,お願いいたします>皆様方。
大熊様へ
ファイルを見まして,いろいろと勉強になる内容ばかりでした,重ねてお礼申し上げます。
ありがとうございました。
RUIKEと申します。
非常に丁寧な回答をいただきありがとうございます。
ご推察の通り,emathは使用したことがありませんでした。
ご提供いただいたものを解凍してタイプセットした結果,
完全に所望の結果を得ることができました。
丁寧にstyファイルも一通り準備していただき,まことにありがとうございます。
お礼を申し上げます。
ところで,「二重罫線をひとつの(幅の狭い)列(row)として扱う」という方法ですが,
どのようにして狭く指定するのかが理解できておりません。
\newdimen\mydima
\setlength\mydima{2pt-2\tabcolsep}%
C{\mydima}
が重要な点かと推測しています。これから理解に努めます。
ところで,大熊様の「二重罫線をひとつの(幅の狭い)列(row)として扱う」という方法を
emathを使わずに実現する方法はないものでしょうか。
「空っぽの列(row)を狭く指定する方法」があれば実現可能ではないかと(素人なりに)考えております。
引き続き,アドバイスをいただけますよう,お願いいたします>皆様方。
大熊様へ
ファイルを見まして,いろいろと勉強になる内容ばかりでした,重ねてお礼申し上げます。
ありがとうございました。
\doublerulesepcolor を用いる方が簡潔ですから,そちらがお勧めですね。
蛇足になりますが,一応ご質問にお答えしておきましょう。
> ところで,「二重罫線をひとつの(幅の狭い)列(row)として扱う」
> という方法ですが,どのようにして狭く指定するのかが理解できておりません。
tabular 環境では,列幅は,
当該列に含まれる最大幅の要素
に従って決まる,のが仕様です。
これに異を唱えて,こちらの方で指定したい,ということで emath パッケージでは
欄指定子として,l,c,r を発展させた L{...}, C{...}, R{...} を用意しています。
... の部分は指定したい,単位付きの長さです。
> ところで,大熊様の「二重罫線をひとつの(幅の狭い)列(row)として扱う」
> という方法をemathを使わずに実現する方法はないものでしょうか。
わからないです。
見当たらなかってので,作っちゃえ!でした。
以下,饒舌になりますので,
http://emath.s40.xrea.com/temp/QA0430.zip
に
sample.tex
sample.pdf
sample1.tex
sample2.tex
をパックしたものを置きました。sample.pdf をご覧いただければ幸いです。
蛇足になりますが,一応ご質問にお答えしておきましょう。
> ところで,「二重罫線をひとつの(幅の狭い)列(row)として扱う」
> という方法ですが,どのようにして狭く指定するのかが理解できておりません。
tabular 環境では,列幅は,
当該列に含まれる最大幅の要素
に従って決まる,のが仕様です。
これに異を唱えて,こちらの方で指定したい,ということで emath パッケージでは
欄指定子として,l,c,r を発展させた L{...}, C{...}, R{...} を用意しています。
... の部分は指定したい,単位付きの長さです。
> ところで,大熊様の「二重罫線をひとつの(幅の狭い)列(row)として扱う」
> という方法をemathを使わずに実現する方法はないものでしょうか。
わからないです。
見当たらなかってので,作っちゃえ!でした。
以下,饒舌になりますので,
http://emath.s40.xrea.com/temp/QA0430.zip
に
sample.tex
sample.pdf
sample1.tex
sample2.tex
をパックしたものを置きました。sample.pdf をご覧いただければ幸いです。
https://tex.stackexchange.com/questions/137384/problem-with-doublerulesepcolor-in-colortbl
(asked Oct 11, 2013 at 11:00)
https://tex.stackexchange.com/questions/653638/colortbl-why-does-a-double-vertical-line-interrupt-the-background-color
(asked Aug 11, 2022 at 1:38)
に、colortbl.sty 作者の David Carlisle さんによる回答や、nicematrix.sty
を使うという方法(←試してません)が紹介されているようです:
\documentclass{article}
\usepackage{colortbl}
\makeatletter
%
% https://tex.stackexchange.com/a/137394
%
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother
\begin{document}
\doublerulesepcolor[gray]{0.8}
\begin{tabular}{l|c||l|c}
\hline
\rowcolor[gray]{0.8}%
A & B & C & D \\
\hline
\doublerulesepcolor{white}%
a & b & c & d \\
e & f & g & h \\
\hline
\end{tabular}
\end{document}
(asked Oct 11, 2013 at 11:00)
https://tex.stackexchange.com/questions/653638/colortbl-why-does-a-double-vertical-line-interrupt-the-background-color
(asked Aug 11, 2022 at 1:38)
に、colortbl.sty 作者の David Carlisle さんによる回答や、nicematrix.sty
を使うという方法(←試してません)が紹介されているようです:
\documentclass{article}
\usepackage{colortbl}
\makeatletter
%
% https://tex.stackexchange.com/a/137394
%
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother
\begin{document}
\doublerulesepcolor[gray]{0.8}
\begin{tabular}{l|c||l|c}
\hline
\rowcolor[gray]{0.8}%
A & B & C & D \\
\hline
\doublerulesepcolor{white}%
a & b & c & d \\
e & f & g & h \\
\hline
\end{tabular}
\end{document}
ut様
RUIKEと申します。
非常に丁寧な回答をいただきありがとうございます。
プリアンブルに
\makeatletter
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother
を入れて,表の前と途中に
\doublerulesepcolor[gray]{0.8}
\doublerulesepcolor{white}
を記述するという方法は私の理解度にちょうどよく,とても助かりました。
プリアンブルへの記述文は(やはり)さっぱり分かりませんが,これから理解に努めます。
ご教示いただいたURLもこれから勉強いたします。
ut様や大熊様に非常に素早く対応いただき,感激しております。
ありがとうございました。
RUIKEと申します。
非常に丁寧な回答をいただきありがとうございます。
プリアンブルに
\makeatletter
\let\old@mkpream\@mkpream
\def\@mkpream{%
\ifx\CT@drsc@\relax\else\let\CT@drsc@ @\fi
\let\CT@arc@\relax
\old@mkpream}
\makeatother
を入れて,表の前と途中に
\doublerulesepcolor[gray]{0.8}
\doublerulesepcolor{white}
を記述するという方法は私の理解度にちょうどよく,とても助かりました。
プリアンブルへの記述文は(やはり)さっぱり分かりませんが,これから理解に努めます。
ご教示いただいたURLもこれから勉強いたします。
ut様や大熊様に非常に素早く対応いただき,感激しております。
ありがとうございました。