間違ったオーバーブレースを修正し、配列の上に「ADD」を配置しますが、垂直の区切り線は使用せず、配列の最初の要素を指す小さな線で少しオーバーさせるようにしたいと思います。申し訳ありませんが、私は初心者で、大学のレポートに初めて LaTeX を使用しています。これが私のコードです:
\setbox0=\hbox{$
\arrayrulecolor{black} % Color for table borders
\rowcolors{1}{white}{gray!30} % Alternate gray backgrounds in rows
\hspace{-2em}\begin{array}{|c|*{27}{c|}}
ADD \\
\hline
\textbf{128} & \hphantom{0}0 &
\textbf{64} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}}& \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textbf{100} & \hphantom{0}0 &
\textbf{1} & \hphantom{0}0 &
\textcolor{blue}{\textbf{0}} & \hphantom{0}0 &
\textbf{5} & \hphantom{0}0 \\
\hline
\end{array}
$}
% Underbrace without left bracket
\[
\overbrace{\usebox0}^{K}
\]
\begin{center}
% Draw a down-facing arrow from "ADD" to the first element
\begin{tikzpicture}
% Downward arrow pointing from "ADD" to the first element
\draw[->, thick] (0, 1.5) -- (0, 0.5); % Draw the down arrow
\end{tikzpicture}
\end{center}
\vspace{-2.5em} % Negative space to bring elements closer
\begin{center}
\[
\arrayrulecolor{black} % Color for table borders
\rowcolors{1}{gray!30}{gray!30} % Alternate gray backgrounds in rows
\hspace{-2em}\begin{array}{|c|*{27}{c|}}
\hline
\hphantom{0}\textbf{128}\hphantom{0} & \textcolor{red}{31} &
\textbf{64}& \textcolor{red}{31}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{30}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{29}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{28}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{27}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{26}&
\textbf{100}& \textcolor{red}{31}&
\textbf{1}& \textcolor{red}{31}&
\textcolor{blue}{\textbf{1}}& \textcolor{red}{30}&
\textbf{5}& \textcolor{red}{31} \\
\hline
\end{array}
\]
\end{center}```
答え1
あなたが何を望んでいるのかはよく分かりませんが、おそらく次のようなものでしょう。
- たった一つの
tabular
環境 - 列の幅は固定されている
- オーバーブレースは「ADD」の後の列にのみ広がります。列の幅は固定されているため、オーバーブレースの長さがわかります。
\tabcolsep
設定された余白内にテーブルが収まるように調整しましたgeometry
。設定に応じて、その長さを調整できます。
\documentclass{article}
\usepackage[a4paper]{geometry}
\usepackage[table]{xcolor}
\usepackage{array}
\usepackage{amsmath}
\newlength{\lenA}
\newlength{\lenB}
\begin{document}
\begin{center}
\small
\settowidth{\lenA}{ADD}
\settowidth{\lenB}{\textbf{00}}
\setlength{\tabcolsep}{3.7pt}
\begin{tabular}{|w{c}{\lenA}|*{21}{w{c}{\lenB}|}}
\multicolumn{1}{c}{\textrm{ADD}} &
\multicolumn{1}{l}{\makebox[0pt][l]{%
$\overbrace{\hspace{\dimeval{21\lenB+40\tabcolsep+20\arrayrulewidth}}}^K$%
}}
\\
\hline
\rowcolor{gray!30}% Alternate gray backgrounds in rows
\textbf{128} & \hphantom{0}0 &
\textbf{64} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textcolor{blue}{\textbf{\hphantom{0}0}} & \hphantom{0}0 &
\textbf{100} & \hphantom{0}0 &
\textbf{1} & \hphantom{0}0 &
\textcolor{blue}{\textbf{0}} & \hphantom{0}0 &
\textbf{5} & \hphantom{0}0 \\
\hline
\multicolumn{1}{c}{} \\[-1.5ex]
\multicolumn{1}{c}{$\left\downarrow\vbox to 15pt{}\right.$} \\
\multicolumn{1}{c}{} \\[-1.5ex]
\hline
\rowcolor{gray!30} % Alternate gray backgrounds in rows
\textbf{128} & \textcolor{red}{31} &
\textbf{64}& \textcolor{red}{31}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{30}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{29}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{28}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{27}&
\textcolor{blue}{\textbf{64}}& \textcolor{red}{26}&
\textbf{100}& \textcolor{red}{31}&
\textbf{1}& \textcolor{red}{31}&
\textcolor{blue}{\textbf{1}}& \textcolor{red}{30}&
\textbf{5}& \textcolor{red}{31} \\
\hline
\end{tabular}
\end{center}
\end{document}