如何在 LaTex 中的表格中水平对齐 tikz 图片和文本?

如何在 LaTex 中的表格中水平对齐 tikz 图片和文本?

我有一张如下所示的表格:

表格垂直对齐

我的代码是:

\documentclass[12pt,a4paper]{article}
\usepackage{amsmath,amsfonts,amssymb,tikz}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=0cm]{geometry}
\begin{document}
\pagestyle{empty}
\begin{tabular}{||p{1cm}|p{6cm}|p{8.07cm}|p{1cm}||}
\hline
1  & 
 \begin{tikzpicture}[domain=-4:4,scale=0.8]
\draw (-0.1,2.8) -- (2.1,-1.5); 
\draw (-0.1,2.8) -- (-1.1,-1.5); 
\draw (-0.1,2.8) -- (3.1,0);
\end{tikzpicture}
   Picture
 & A & B \\
\cline{3-4}
 & & C & D \\
 \cline{3-4}
 &  & E & F \\
 \cline{3-4}
 & & G & H \\
 \hline
\end{tabular}
\end{document}

我想清除第 2 列中 tikz 图片下方的空白,并清除第 3 列上方的空白,以便这两列中的内容水平对齐。我还希望第 1 列中的内容垂直和水平居中对齐。有人能帮我吗?提前谢谢了。杰夫

答案1

通常情况下,人们会使用多行来重叠第 3 列和图片。相反,我使用\raisebox图片\smash并计算最后需要多少空间。唯一的误差因子是用于将图片置于行内中心的 1.6ex。

\documentclass[12pt,a4paper]{article}
\usepackage{amsmath,amsfonts,amssymb,tikz}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=0cm]{geometry}
\newsavebox{\tempboxa}
\newsavebox{\tempboxb}
\begin{document}
\pagestyle{empty}

\savebox{\tempboxa}{\begin{tikzpicture}[domain=-4:4,scale=0.8]
\draw (-0.1,2.8) -- (2.1,-1.5); 
\draw (-0.1,2.8) -- (-1.1,-1.5); 
\draw (-0.1,2.8) -- (3.1,0);
\end{tikzpicture} Picture}% compute height of picture

\savebox{\tempboxb}{\begin{tabular}{||p{1cm}|p{6cm}|p{8.07cm}|p{1cm}||}
 1 & & A & B \\
 \cline{3-4}
 & & C & D \\
 \cline{3-4}
 &  & E & F \\
 \cline{3-4}
 & & G & H \\
\cline{3-4}
\end{tabular}}% compute height of tabular

\begin{tabular}{||p{1cm}|p{6cm}|p{8.07cm}|p{1cm}||}
\hline
1  & \raisebox{\dimexpr 1.6ex-\ht\tempboxa}[0pt][0pt]{\usebox{\tempboxa}}
 & A & B \\
\cline{3-4}
 & & C & D \\
 \cline{3-4}
 &  & E & F \\
 \cline{3-4}
 & & G & H \\
\cline{3-4}
 & \rule{0pt}{\dimexpr \ht\tempboxa-\ht\tempboxb-\dp\tempboxb} & &\\
 \hline
\end{tabular}
\end{document}

表格中的叠加图像

相关内容