IEEE カンファレンス テンプレートを使用した次のスクリプトがあります:https://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/?lang=en
この表の書式設定は難しいと思います。問題点は次のとおりです。
1) 一番左の列が正しくありません。行の先頭から黒い水平線を開始する必要があります (各行の左側にいくらかのスペースがあります)。また、行のテキストを開始する前に 1 つのスペースが必要です (一番右の列と同じように見えるようにする必要があります)。
2) 列は、A
列 や のように下線が引かれなければなりませんB
。C
しかし、線が適切に配置されていません。線は垂直線の前で終わる必要があります。
スクリプトは次のとおりです。
\documentclass[compsoc, conference, letterpaper, 10pt, times]{IEEEtran}
\ifCLASSOPTIONcompsoc
% IEEE Computer Society needs nocompress option
% requires cite.sty v4.0 or later (November 2003)
\usepackage[nocompress]{cite}
\else
% normal IEEE
\usepackage{cite}
\fi
\ifCLASSINFOpdf
\else
\fi
\usepackage{graphicx}
\usepackage{colortbl}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\newcommand{\head}[1]{\textnormal{\textbf{#1}}}
\newcommand{\normal}[1]{\multicolumn{1}{l}{#1}}
\usepackage{amssymb}% http://ctan.org/pkg/amssymb
\usepackage{pifont}% http://ctan.org/pkg/pifont
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\newcommand*\rot{\rotatebox{90}}
\usepackage{tabularx}
\begin{document}
\title{Test Document}
% make the title area
\maketitle
\section{Introduction}
This is an introduction.
\begin{table*}[tb!]
\caption{A Table}
\centering
\resizebox{\textwidth}{!} {
\begin{tabular} {@{} lc*{16}l @{}}
\hline
\multicolumn{1}{c}{A}
&&\multicolumn{3}{c}{B}
&&\multicolumn{3}{c}{C}
&&\multicolumn{3}{c}{D}
&&\multicolumn{2}{c}{E}
\\
\cmidrule(lr){0-1}
\cmidrule(lr){3-5}
\cmidrule(lr){7-9}
\cmidrule(lr){11-13}
\cmidrule(lr){15-16}
\\
& \vline &\rot{Col. 1} & \rot{Col. 2} & \rot{Col. 3}
& \vline & \rot{Col. 1} & \rot{Col. 2} & \rot{Col. 3}
& \vline & \rot{Col. 1} & \rot{Col. 2} &\rot{Col. 3}
& \vline & \rot{Col. 1} & \rot{Col. 2}
\\ \hline
\rowcolor[gray]{.9}
Text1 &\vline & \cmark & {} & {} & \vline & {} & \cmark & {} & \vline & {} &\cmark & & \vline & & \cmark \\\hline
Text2 &\vline & {} & \cmark & {} & \vline & {} & \cmark & {} & \vline & {} & \cmark & & \vline & {} & \cmark \\\hline
\rowcolor[gray]{.9}
Text3 & \vline & \cmark & {} & {} & \vline & {} & \cmark & {} & \vline & {} &\cmark & &\vline & {} & \cmark \\
\hline
Text4 & \vline & \cmark & {} & {} & \vline & {} & \cmark & {} & \vline & {} &\cmark & &\vline & {} & \cmark \\
\hline
\rowcolor[gray]{.9}
Text5 & \vline & {} & \cmark & {} & \vline & \cmark & {} & {} & \vline & \cmark & {} & &\vline & {} & \cmark \\
\hline
Text6 & \vline & \cmark & {} & {} & \vline & \cmark & {} & {} & \vline & {} & \cmark & & \vline & {} & \cmark \\
\hline
\rowcolor[gray]{.9}
Text7 & \vline & \cmark & {} & {} & \vline & \cmark & {} & {} & \vline & \cmark & {} & & \vline & \cmark & {} \\
\hline
Text8 & \vline & \cmark & {} & {} & \vline & {} & \cmark & {} & \vline & {} &\cmark & & \vline & {} & \cmark \\
\hline
\rowcolor[gray]{.9}
Text9 & \vline & {} & {} & \cmark & \vline & \cmark & \cmark & {} & \vline & {} &\cmark & & \vline & {} & \cmark \\\hline
Text10 & \vline & {} & {} & \cmark & \vline & {} & {} & \cmark & \vline & {} &\cmark & &\vline & {} & \cmark \\
\hline
\end{tabular}
}
\end{table*}
\end{document}
答え1
問題は列定義@{}
での使用によって発生しますtabular
。回避策はcolortbl
パッケージのドキュメントで説明されているため、使用されているドキュメント クラスとは関係ありません。
編集:tabularx
の代わりに を使用することを検討している場合tabular
、問題の解決策は次のとおりです。
- 列の数をコンテンツのある列の数まで減らす (12)
- 列定義を(縦線なし)に変更します
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}l
*{10}{C}
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
または(縦線付き)
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}l |
*{3}{CCC|}
C
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
オフトピック:
列幅に収まるように、テーブルを自由に変更しました。このために、tabularx
テーブル環境を使用し、フォント サイズを に縮小し\small
、垂直線を削除し、水平線には のルールを使用しますbooktabs
(よりプロフェッショナルな外観のテーブルを取得するため):
ご覧のとおり、この表には問題はありません。気に入っていただけたかもしれませんね :)。MWE は次のとおりです。
\documentclass[twocolumn]{article}
\usepackage{amssymb}% http://ctan.org/pkg/amssymb
\usepackage{pifont}% http://ctan.org/pkg/pifont
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\usepackage[table]{xcolor}% instead of colortbl
\usepackage{booktabs, makecell, multirow, tabularx}
\usepackage{rotating}% added
\newcolumntype{C}{>{\centering\arraybackslash}X}
%-------------------------------------- only for show page layout
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{table}[ht]
\caption{A Table}
\centering
\setlength\tabcolsep{3pt}
\settowidth\rotheadsize{Col. 3}
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}l
*{10}{C}
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
\toprule
\multicolumn{1}{c}{A}
& \multicolumn{3}{c}{B}
& \multicolumn{3}{c}{C}
& \multicolumn{3}{c}{D}
& \multicolumn{2}{c}{E} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(lr){8-10}
\cmidrule(lr){11-12}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} \\
\hline
\rowcolor[gray]{.9}
Text1 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text2 & & \cmark &
& & \cmark &
& \cmark & & \cmark \\
\rowcolor[gray]{.9}
Text3 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text4 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text5 & & \cmark &
& \cmark & &
& \cmark & &
& & \cmark \\
\hline
Text6 & \cmark & &
& \cmark & &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text7 & \cmark & &
& \cmark & &
& \cmark & &
& \cmark & \\
Text8 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text9 & & & \cmark
& \cmark & \cmark &
& & \cmark &
& & \cmark \\
Text10 & & & \cmark
& & & \cmark
& & \cmark &
& & \cmark \\
\bottomrule
\end{tabularx}
\end{table}
\lipsum
\end{document}
IEEEtran
上記の MWe は、ドキュメント クラス (現在はインストールされていません)でも動作するはずです。
2 列以上の垂直線を含むテーブルが必要な場合は、上記の MWE を置き換えて、代わりに次の行を検討してください。
...
\begin{table*}
\caption{A Table}
\centering
\setlength\tabcolsep{3pt}
\settowidth\rotheadsize{Col. 3}
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}l |
*{3}{CCC|}
C
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
\toprule
\multicolumn{1}{c}{A}
& \multicolumn{3}{c}{B}
& \multicolumn{3}{c}{C}
& \multicolumn{3}{c}{D}
& \multicolumn{2}{c}{E} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(lr){8-10}
\cmidrule(lr){11-12}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} \\
\hline
...
そして、次のものが得られます:
Edid (2): 質問のコードのようにすべての線を垂直にし、列見出しを垂直にします。
最後の画像の完全な MWE は次のとおりです。
\documentclass[twocolumn]{article}
\usepackage{amssymb}% http://ctan.org/pkg/amssymb
\usepackage{pifont}% http://ctan.org/pkg/pifont
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\usepackage[table]{xcolor}% instead of colortbl
\usepackage{booktabs, makecell, multirow, tabularx}
\usepackage{rotating}% added
\newcolumntype{C}{>{\centering\arraybackslash}X}
%-------------------------------------- only for show page layout
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{table*}
\caption{A Table}
\centering
\setlength\tabcolsep{3pt}
\settowidth\rotheadsize{Col. 3}
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}l|
*{3}{CCC|}
C
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
\toprule
\multicolumn{1}{c}{A}
& \multicolumn{3}{c}{B}
& \multicolumn{3}{c}{C}
& \multicolumn{3}{c}{D}
& \multicolumn{2}{c}{E} \\
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}\cmidrule(lr){5-7}\cmidrule(lr){8-10}
\cmidrule(lr){11-12}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} & \rothead{Col. 3}
& \rothead{Col. 1} & \rothead{Col. 2} \\
\hline
\rowcolor[gray]{.9}
Text1 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text2 & & \cmark &
& & \cmark &
& \cmark & & \cmark \\
\rowcolor[gray]{.9}
Text3 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text4 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text5 & & \cmark &
& \cmark & &
& \cmark & &
& & \cmark \\
Text6 & \cmark & &
& \cmark & &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text7 & \cmark & &
& \cmark & &
& \cmark & &
& \cmark & \\
Text8 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text9 & & & \cmark
& \cmark & \cmark &
& & \cmark &
& & \cmark \\
Text10 & & & \cmark
& & & \cmark
& & \cmark &
& & \cmark \\
\bottomrule
\end{tabularx}
\end{table*}
\lipsum
\end{document}
編集(3): そして楽しさと完全性のためにオフトピック提案: (黒い) 縦線がなく、列ヘッダーを回転せず、すべての列の幅が同じになるもう 1 つの解決策:
\documentclass[twocolumn]{article}
\usepackage{amssymb}
\usepackage{pifont}
\newcommand{\cmark}{\ding{51}}%
\usepackage[table]{xcolor}% instead of colortbl
\usepackage{booktabs, tabularx}
\usepackage[skip=1ex]{caption}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{table*}
\caption{A Table}
\centering
\setlength\tabcolsep{3pt}
\begin{tabularx}{\linewidth}{@{}>{\columncolor{white}[0pt][\tabcolsep]}X @{\quad}
*{3}{CCC @{\quad}}
C
>{\columncolor{white}[\tabcolsep][0pt]}C
@{}}
\toprule
\multicolumn{1}{c}{A}
& \multicolumn{3}{c}{B}
& \multicolumn{3}{c}{C}
& \multicolumn{3}{c}{D}
& \multicolumn{2}{c}{E} \\
\cmidrule(r){1-1}
\cmidrule(r){2-4}\cmidrule(r){5-7}\cmidrule(r){8-10}
\cmidrule{11-12}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} & {Col. 3}
& {Col. 1} & {Col. 2} \\
\hline
\rowcolor[gray]{.9}
Text1 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text2 & & \cmark &
& & \cmark &
& \cmark & & \cmark \\
\rowcolor[gray]{.9}
Text3 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
Text4 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text5 & & \cmark &
& \cmark & &
& \cmark & &
& & \cmark \\
Text6 & \cmark & &
& \cmark & &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text7 & \cmark & &
& \cmark & &
& \cmark & &
& \cmark & \\
Text8 & \cmark & &
& & \cmark &
& & \cmark &
& & \cmark \\
\rowcolor[gray]{.9}
Text9 & & & \cmark
& \cmark & \cmark &
& & \cmark &
& & \cmark \\
Text10 & & & \cmark
& & & \cmark
& & \cmark &
& & \cmark \\
\bottomrule
\end{tabularx}
\end{table*}
\lipsum
\end{document}
上記のトピック外の提案はすべて、行に色を付けるというあなたの希望を考慮したものです。私は個人的に行に色を付けません。読者が行を追跡できるように、最終的には、テーブルを 1 つの列に収めるために、各 4 行の後に垂直方向のスペースを追加します。ただし、人によって好みは異なります...
答え2
私はtabularx
と を使用することを提案します\resizebox
。垂直線は列間の区切りとして配置されるため、列は 12 列しかありません。また、回転した列見出しの外観を変更する自由を取りました。40° 回転して高さを小さくします。
\documentclass[compsoc, conference, letterpaper, 10pt, times]{IEEEtran}
\ifCLASSOPTIONcompsoc
% IEEE Computer Society needs nocompress option
% requires cite.sty v4.0 or later (November 2003)
\usepackage[nocompress]{cite}
\else
% normal IEEE
\usepackage{cite}
\fi
\ifCLASSINFOpdf
\else
\fi
\usepackage{graphicx}
\usepackage[table, svgnames]{xcolor}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\newcommand{\head}[1]{\textnormal{\textbf{#1}}}
\newcommand{\normal}[1]{\multicolumn{1}{l}{#1}}
\usepackage{amssymb}% http://ctan.org/pkg/amssymb
\usepackage{pifont}% http://ctan.org/pkg/pifont
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\newcommand*\rot[1][90]{\rotatebox{90}}
\newcommand*\myrot[1]{\rotatebox[origin=l]{40}{#1}}
\usepackage{tabularx}
\newcolumntype{C}{ >{\centering\arraybackslash}X}
\begin{document}
\title{Test Document}
% make the title area
\maketitle
\section{Introduction}
This is an introduction.
\begin{table*}[!htb]
\setlength\extrarowheight{2pt}\centering
\caption{A Table}
\begin{tabularx}{0.8\textwidth} { l|*{3}{CCC|}*{2}{C}|@{}}
\hline
\multicolumn{1}{c}{A}
& \multicolumn{3}{c}{B}
& \multicolumn{3}{c}{C}
& \multicolumn{3}{c}{D}
& \multicolumn{2}{c}{E}
\\
\cmidrule(lr){1-1}
\cmidrule(lr){2-4}
\cmidrule(lr){5-7}
\cmidrule(lr){8-10}
\cmidrule(lr){11-12}
& \myrot{Col. 1} & \myrot{Col. 2} & \myrot{Col. 3}
& \myrot{Col. 1} & \myrot{Col. 2} & \myrot{Col. 3}
& \myrot{Col. 1} & \myrot{Col. 2} & \myrot{Col. 3}
& \myrot{Col. 1} & \myrot{Col. 2}
\\ \hline
\rowcolor[gray]{.9}Text1
& \cmark & & & & \cmark & & & \cmark & & & \cmark \\\hline
Text2 & & \cmark & & & \cmark & & & \cmark & & & \cmark \\\hline
\rowcolor[gray]{.9}
Text3 & \cmark & & & & \cmark & & & \cmark & & & \cmark \\
\hline
Text4 & \cmark & & & & \cmark & & & \cmark & & & \cmark \\
\hline
\rowcolor[gray]{.9}
Text5 & {} & \cmark & & \cmark & & & \cmark & & & & \cmark \\
\hline
Text6 & \cmark & & & \cmark & & & & \cmark & & & \cmark \\
\hline
\rowcolor[gray]{.9}
Text7 & \cmark & & & \cmark & & & \cmark & & & \cmark & \\
\hline
Text8 & \cmark & & & & \cmark & & & \cmark & & & \cmark \\
\hline
\rowcolor[gray]{.9}
Text9 & & & \cmark & \cmark & \cmark & & & \cmark & & & \cmark \\
\hline
Text10 & & \cmark & & & & \cmark & & \cmark & & & \cmark \\
\hline
\end{tabularx}
\end{table*}
\end{document}
90° 回転したい場合は、テーブル本体を に置き換えて次のよう\myrot
に\rot
なります。