如何在表格中的 tikzpicture 环境中更改矩形的基线

如何在表格中的 tikzpicture 环境中更改矩形的基线

我的问题是,我正在制作一个火焰测试颜色表,但右列的颜色的基线位于正方形的底部,因此左侧的离子符号未对齐正方形的中间。我对 TikZ 还很陌生,所以我不知道是否有更简单的方法可以做到这一点,从而可以更简单地设置基线。我看过类似的答案,但它们都使用命令\tikz而不是整个tikspicture环境。这是我的示例代码:

\documentclass{article}
\usepackage{tikz}
\usepackage{tabular}
\usepackage[version=4]{mhchem}
\usepackage{chemfig}
\usepackage{array}
\begin{document}
    \begin{table}[h]
        \centering
        \begin{tabular}{|c|c|}
            \hline
            Cation & Color\\
            \hline
            \ce{Li+} &
            \begin{tikzpicture}
                \fill[red]{(0,0)rectangle (1,1)};
            \end{tikzpicture}\\
            \hline
            \ce{Sr^2+} & 
            \begin{tikzpicture}
                \fill[orange]{(0,0)rectangle (1,1)};
            \end{tikzpicture}\\
            \hline
        \end{tabular}
        \caption{Caption}
        \label{tab:my_label}
    \end{table}
\end{document}

输出如下: 在此处输入图片描述

PS 在行中添加填充也非常有用,这样方块就不会直接靠在它们上方的边框上!

PPS 我知道现在的颜色不是很正确,但我想我可以自己弄清楚。

谢谢!

答案1

一个简单粗暴的解决办法:

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
%\usepackage{tabular}
\usepackage[version=4]{mhchem}
\usepackage{chemfig}
\usepackage{array}
\begin{document}
    \begin{table}[h]
        \centering
        \begin{tabular}{|c|m{1cm}|}
            \hline
            Cation & Color\\
            \hline
            \ce{Li+} & \smallskip  
            \begin{tikzpicture}
                \fill[red]{(0,0)rectangle (1,1)};
            \end{tikzpicture}\\
            \hline
            \ce{Sr^2+} & \smallskip  
            \begin{tikzpicture}
                \fill[orange]{(0,0)rectangle (1,1)};
            \end{tikzpicture}\\
            \hline
        \end{tabular}
        \caption{Caption}
        \label{tab:my_label}
    \end{table}
\end{document}

为了使图像在单元格中居中,使用了m数组包中的列类型。

编辑: 另一个简单的解决方案是使用(旧的好的)mdwtab表格环境包并将基线设置为当前边界框的中心:

\documentclass{article}
\usepackage{tikz}
\usepackage[version=4]{mhchem}
\usepackage{chemfig}
\usepackage{array,mdwtab}
\begin{document}
    \begin{table}[h]
        \centering
        \begin{tabular}{|c|c|}
            \hlx{hv}
            Cation & Color\\
            \hlx{vhv}
            \ce{Li+} & 
            \begin{tikzpicture}[baseline=(current bounding box.center)]
                \fill[purple!50]{(0,0)rectangle (1,1)};
            \end{tikzpicture}   \\
            \hlx{vhv}
            \ce{Sr^2+} & %\smallskip  
            \begin{tikzpicture}[baseline=(current bounding box.center)]
                \fill[purple]{(0,0)rectangle (1,1)};
            \end{tikzpicture}\\
            \hlx{vh}
        \end{tabular}
        \caption{Caption}
        \label{tab:my_label}
    \end{table}
\end{document}

在此处输入图片描述

相关内容