もちっとメモ

読者です 読者をやめる 読者になる 読者になる

もちっとメモ

管理人のホームページで書ききれていない調べ物のメモページです

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

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]