我的表格中的单元格通常包含带上标的表达式。这会导致文本基线看起来在相邻单元格之间“游移”。例如
\begin{tikzpicture}[every node/.style={minimum size=7mm}]
\matrix{
\node[fill=gray!10]{$a$}; & \node[fill=gray!20]{$a^2$}; & \node[fill=gray!30]{$b$}; & \node[fill=gray!40]{$b^2$}; \\};
\end{tikzpicture}
生产
我理解将所有单元格的文本对齐到公共基线的方法是使用anchor=base
,但这会产生单元格混乱的副作用。例如
\begin{tikzpicture}[every node/.style={anchor=base,minimum size=7mm}]
\matrix{
\node[fill=gray!10]{$a$}; & \node[fill=gray!20]{$a^2$}; & \node[fill=gray!30]{$b$}; & \node[fill=gray!40]{$b^2$}; \\};
\end{tikzpicture}
生产
有没有办法将所有文本对齐到公共基线,而无需移动单元格?
\documentclass[]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[every node/.style={minimum size=7mm}]
\matrix{
\node[fill=gray!10]{$a$}; & \node[fill=gray!20]{$a^2$}; & \node[fill=gray!30]{$b$}; & \node[fill=gray!40]{$b^2$}; \\};
\end{tikzpicture}
\begin{tikzpicture}[every node/.style={anchor=base,minimum size=7mm}]
\matrix{
\node[fill=gray!10]{$a$}; & \node[fill=gray!20]{$a^2$}; & \node[fill=gray!30]{$b$}; & \node[fill=gray!40]{$b^2$}; \\};
\end{tikzpicture}
\end{document}
答案1
你可以固定高度和文本深度:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[every node/.style={anchor=base,
text height=.8em,text depth=.2em,minimum size=7mm}]
\matrix{
\node[fill=gray!10]{$a$};&
\node[fill=gray!20]{$a^2$};&
\node[fill=gray!30]{$b$}; &
\node[fill=gray!40]{$b^2$};\\
};
\end{tikzpicture}
\end{document}