セル/セル内のボックスを含む複雑なテーブル

セル/セル内のボックスを含む複雑なテーブル

私は現在 LaTeX テクノロジを使い始めたところですが、この問題に遭遇しました。CTAN に関するいくつかの表形式のマニュアルを読みましたが、うまくいきませんでした。

次のようなテーブルを作成しようとしています:

    +---------+--------+--------+--------+
    |     |114|    |100|    |92 |    |101|
    |     |___|    |___|    |___|    |___|
    |         |        |        |        |
    | 113     | 99     | 84     | 97     |
    +---------+--------+--------+--------+
    |     |114|    |100|    |92 |    |101|
    |     |___|    |___|    |___|    |___|
    |         |        |        |        |
    | 113     | 99     | 84     | 97     |
    +---------+--------+--------+--------+
    |     |114|    |100|    |92 |    |101|
    |     |___|    |___|    |___|    |___|
    |         |        |        |        |
    | 113     | 99     | 84     | 97     |
    +---------+--------+--------+--------+

この構造を実現する既存のパッケージはありますか? ない場合は、行をネストするなどして考えていましたが、まだよくわかりません。

答え1

楽しみながら学習し、基本的な構成要素で何ができるかを示すための Plain TeX を使用したソリューション:

\def\widest{000}
\def\uv{\unskip\vrule}
\def\bx#1#2{\vbox{%
  \offinterlineskip%
  \halign{\ \hfil## &##&\ \hfil## \cr
    \hphantom{\widest}&&\hphantom{\widest}\cr
    &\vrule\strut& #2\cr
    \omit&\hrulefill&\omit\hrulefill\cr
    #1&\strut&\cr}
}}
\def\bxx{
  \bx{113}{114} & 
  \bx{99}{100} & 
  \bx{84}{92} & 
  \bx{97}{101}\cr
  \noalign{\hrule}
}

{\offinterlineskip
\halign{\vrule\strut \hfill #\uv & #\uv & #\uv & #\uv\cr
\noalign{\hrule}
\bxx\bxx\bxx
}}\bye

ここに画像の説明を入力してください

答え2

私の知る限り、そのようなパッケージはありませんが、基本的な設定\multicolumn\clineマクロの使用で実現できます。

\documentclass[twoside]{book}

\usepackage{booktabs}
\usepackage{array}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}

\usepackage{blindtext}
\begin{document}


\large
\begin{tabular}{|*{8}{L{1cm}|}}
\hline
& 114 & & 100 & & 92 & & 101  \tabularnewline
& & & & & & &   \tabularnewline
\cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
& 114 & & 100 & & 92 & & 101  \tabularnewline
& & & & & & &   \tabularnewline
\cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
& 114 & & 100 & & 92 & & 101  \tabularnewline
& & & & & & &   \tabularnewline
\cline{2-2} \cline{4-4} \cline{6-6} \cline{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
\end{tabular}

% Now with booktabs features 

\begin{tabular}{|*{8}{L{0.5cm}|}}
\toprule
& 114 & & 100 & & 92 & & 101  \tabularnewline
&  & &  & &  & &   \tabularnewline
\cmidrule{2-2} \cmidrule{4-4} \cmidrule{6-6} \cmidrule{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
& 114 & & 100 & & 92 & & 101  \tabularnewline
&  & &  & &  & &   \tabularnewline
\cmidrule{2-2} \cmidrule{4-4} \cmidrule{6-6} \cmidrule{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
& 114 & & 100 & & 92 & & 101  \tabularnewline
&  & &  & &  & &   \tabularnewline
\cmidrule{2-2} \cmidrule{4-4} \cmidrule{6-6} \cmidrule{8-8} 
\multicolumn{2}{|l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{} & \multicolumn{2}{l|}{}\tabularnewline 
\multicolumn{2}{|l|}{113} & \multicolumn{2}{l|}{99} & \multicolumn{2}{l|}{84} & \multicolumn{2}{l|}{97}  \tabularnewline
\hline
\end{tabular}

\normalsize
\end{document}

ここに画像の説明を入力してください

答え3

\documentclass{scrartcl}
\usepackage{tikz}

\tikzset{/bowlinggrid/.cd,
  box width/.store in=\bgridlargewidth,box width=3cm,
  box height/.store in=\bgridlargeheight,box height=2.5cm,
  small width/.store in=\bgridsmallwidth,small width=1.2cm,
  small height/.store in=\bgridsmallheight,small height=1cm,
  columns/.store in=\bgridcolnumber,columns=4} % I cannot get /.initial= to work
\newcommand*\bowlinggrind[2][]
  {%
   \begin{tikzpicture}
   \tikzset{/bowlinggrid/.cd,#1}
   \foreach \N/\n [count=\cnt] in {#2}
     {
      \pgfmathsetmacro\currcolnumber{int(mod(\cnt-1,\bgridcolnumber))}
      \pgfmathsetmacro\currrownumber{int(ceil(\cnt/\bgridcolnumber))}
      \draw
       ({\currcolnumber*\bgridlargewidth},{-\currrownumber*\bgridlargeheight})
        node [above right] {\N}
        rectangle ++(\bgridlargewidth,\bgridlargeheight)
        rectangle ++(-\bgridsmallwidth,-\bgridsmallheight)
        node [above right] {\n};
     }
   \end{tikzpicture}%
  }

\begin{document}
\begin{center}
\bowlinggrind
  {113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101}
\end{center}
\begin{center}
\bowlinggrind[box width=1.8cm,box height=1.3cm,small width=.9cm,small height=.5cm]
  {113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101,
   113/114,99/100,84/92,97/101}
\end{center}
\end{document}

ここに画像の説明を入力してください

答え4

ちなみに、この効果は ConTeXt では比較的簡単に実現できます。コンテンツとプレゼンテーションが非常に明確に分離されていることに注意してください。

\startsetups[cellular]
  \setupTABLE[frame=off, align={middle,lohi}, offset=0.5em]
  \setupTABLE[even] [odd][frame=on, offset=0.25em]
  \setupTABLE[even][even][rightframe=on, bottomframe=on]
  \setupTABLE[odd] [even][leftframe=on,  bottomframe=on]
  \setupTABLE[odd]  [odd][leftframe=on,  topframe=on]
\stopsetups

\starttext
\startTABLE[setups=cellular]
   \NC     \NC 114 \NC    \NC 100 \NC    \NC 92 \NC    \NC 101 \NC \NR
   \NC 113 \NC     \NC 99 \NC     \NC 84 \NC    \NC 97 \NC     \NC \NR
   \NC     \NC 114 \NC    \NC 100 \NC    \NC 92 \NC    \NC 101 \NC \NR
   \NC 113 \NC     \NC 99 \NC     \NC 84 \NC    \NC 97 \NC     \NC \NR
   \NC     \NC 114 \NC    \NC 100 \NC    \NC 92 \NC    \NC 101 \NC \NR
   \NC 113 \NC     \NC 99 \NC     \NC 84 \NC    \NC 97 \NC     \NC \NR
\stopTABLE
\stoptext

ここに画像の説明を入力してください

関連情報