もちっとメモ

もちっとメモ

もぐりのエンジニアが日々の中で試してみたことを気が向いたときに書き連ねていきます

Texだけを用いて複雑な表を書く

基本的にはセルの結合を駆使して作成する.

行方向の結合は\multicolumn{結合セル数}{|c|}{文字}
列方向の結合は\multirow{結合セル数}{フォントサイズ(指定しないときは*)}{文字列}
あとは下記のサイトを参考に適宜線を太くしたりして調節する.
よく使うのは\clineや\hline.
今回は\rotateboxも使った.
場合によってはプリアンブルに
\usepackage{array}
を加えておくのもよいかも.

以下サンプルコードです.


        \documentclass[4apaper]{jsarticle}
        \usepackage{multirow,array}
        \usepackage[dvipdfmx]{graphicx}
        \newlength\savedwidth
        \newcommand{\wcline}[1]{\noalign{\global\savedwidth\arrayrulewidth\global\arrayrulewidth 2pt} \cline{#1}
        \noalign{\global\arrayrulewidth\savedwidth}}
        \newcolumntype{I}{!{\vrule width 2pt}}
        
        \begin{document}
        
        \begin{table}[t!]
        \centering
        \caption{テスト} \label{tab:matrix}
        \begin{tabular}{|c|c|l|l|}
        \hline
         &\multicolumn{3}{c|}{軸1} \\
         \cline{1-4}
           \multicolumn{1}{|c|}{\multirow{16}*{\rotatebox[origin=c]{90}{軸2}}} && \multicolumn{1}{c|}{要素1} & \multicolumn{1}{c|}{要素2} \\
           \cline{2-2}\wcline{3-4}
             &\multirow{8}{*}{要素3} & \multicolumn{1}{Il|}{データ 2016/12/01} & \multicolumn{1}{lI}{データ 2016/12/02} \\
              & & \multicolumn{1}{Il|}{ データ 2016/12/03} &\multicolumn{1}{lI}{データ 2016/12/04}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/05} & \multicolumn{1}{lI}{{\bf データ 2016/12/06}} \\
              & & \multicolumn{1}{Il|}{データ 2016/12/07} & \multicolumn{1}{lI}{ データ 2016/12/08}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/09} & \multicolumn{1}{cI}{}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/10} & \multicolumn{1}{cI}{}\\
              & & \multicolumn{1}{Il|}{\bf データ 2016/12/11} & \multicolumn{1}{cI}{}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/12} & \multicolumn{1}{cI}{}\\
            \cline{2-4}
             &\multirow{4}{*}{要素4} & \multicolumn{1}{Il|}{データ 2016/12/13} & \multicolumn{1}{lI}{{\bf データ 2016/12/14}}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/15} & \multicolumn{1}{lI}{データ 2016/12/16}\\
              & & \multicolumn{1}{Il|}{\bf データ 2016/12/17} &\multicolumn{1}{lI}{}\\
              & & \multicolumn{1}{Il|}{データ 2016/12/18} &\multicolumn{1}{cI}{}\\
            \cline{2-2}\wcline{3-4}
             &\multirow{2}*{要素5} & データ 2016/12/19 & \multicolumn{1}{l|}{データ 2016/12/20 }\\
              && データ 2016/12/21 & \multicolumn{1}{l|}{データ 2016/12/22}\\
            \cline{2-4}
             &\multirow{2}*{要素6} & データ 2016/12/23 & データ 2016/12/24 \\
              && データ 2016/12/25 & データ 2016/12/26\\
            \hline
        \end{tabular}
        \end{table}
        \end{document}
    

出力結果

f:id:T-N-Clark:20170220155040p:plain

 

参考サイト

LaTeX 表の書き方
(LaTex) 表の罫線を太くする方法 - その時々
tabular環境の中で行を縦に結合[LaTeX]