我在使用 \tblr 环境制作化学讲义时遇到了麻烦。我正在使用 TeXstudio 制作一个有八列的表格。第三列是通用化合物几何形状的 \chemfig 图(例如 AB_5,三角双锥体)。其他列有 1 到 6 行文本。
问题在于,每列的第一行文本与第三列图片的中心对齐。因此,如果一列中有多行文本,则会导致列文本上方和下方的空白量不均匀(上方更多),并且第三列图表下方有多余的空白。
我希望每列文本的中心与第三列图(元素“A”)的中心对齐
也就是说,无论在任何一列中放置多少行文本,我都希望图表上方和下方以及每列的文本块具有最小的均匀空白。
下面应该是我正在使用的代码的 MWE。我还上传了一个在 Paint 中调整的 .png 图形,显示了我的目标:沿粗黑线居中对齐,并删除红色 X 标记的空白区域。
\documentclass[10pt,leqno]{article}
%%% BEGIN PACKAGES
\usepackage{libertine} % Makes spacing nicely smaller.
\usepackage[libertine]{newtxmath} % Adjusts font
\usepackage[T1]{fontenc} % Adjusts font
\usepackage{chemfig} % For building molecular diagrams.
\usepackage{tabularray} % Provides tblr environment.
\usepackage[strict]{chngpage} % Provides adjustwidth page environment for tables.
%%% END PACKAGES
%%% BEGIN CUSTOM
\newcommand{\textbfun}[1]{\underline{\textbf{#1}}} % Bold + Underline text simultaneously.
%%% END CUSTOM
%%% BEGIN FORMATTING
\oddsidemargin 0.0cm
\evensidemargin 0.0cm
\textwidth 16.5cm
\headheight 0.0cm
\topmargin 0.0cm
\textheight 20.0cm
%%% END FORMATTING
\begin{document}
\begin{adjustwidth}{-60pt}{0pt}
\SetTblrInner{rowsep=5pt}
\begin{tblr}{hlines,
vlines,
colspec={ccccccl}
}
{$e^-$ Density
\\ Regions}
& {Generic
\\ Formula}
& {Molecular
\\ Structure}
& Hybridization
& {Electronic
\\ Geometry}
& {Molecular
\\ Geometry}
& {Ideal Bond
\\ Angle}
& {Molecular Polarity}\\
5
& AB$_5$
& \chemfig{A(<:[:30]B)(-[2]B)(-[4]B)(-[6]B)(<[:330]B)}
& sp$^3$d
& {Trigonal
\\ Bipyramidal}
& {Trigonal
\\ Bipyramidal}
& {$180^\circ$ Axial
\\ $120^\circ$ Equitorial
\\ \phantom{x}
\\ $ 90^\circ$ Axial to
\\ Equitorial}
& {"B" atoms are all the same
\\ Yes $\rightarrow$ Non-Polar
\\ No $\rightarrow$ Same two axial "B" \textbfun{and}
\\ \phantom{Yes $\rightarrow$} same three equitorial "B"
\\ \phantom{Yes $\rightarrow$} \qquad Yes $\rightarrow$ Non-Polar
\\ \phantom{Yes $\rightarrow$} \qquad No $\rightarrow$ Polar}\\
\end{tblr}
\end{adjustwidth}\vspace{0.5cm}
\textbf{Desired: .png adjusted with Microsoft Paint (Align to thick black line. Remove red X'ed white space.}
\begin{adjustwidth}{-60pt}{0pt}
\includegraphics[scale=.78]{Line&X}
\end{adjustwidth}
\end{document}
答案1
您应该将列定义从c
更改为Q[c,m]
,并将 更改为l
,这样Q[l,m]
不仅可以水平对齐文本,还可以垂直居中单元格的内容。另外,我建议您使用符号*
以避免colspec
选项中的重复:
\documentclass[10pt,leqno]{article}
%%% BEGIN PACKAGES
\usepackage{libertine} % Makes spacing nicely smaller.
\usepackage[libertine]{newtxmath} % Adjusts font
\usepackage[T1]{fontenc} % Adjusts font
\usepackage{chemfig} % For building molecular diagrams.
\usepackage{tabularray} % Provides tblr environment.
\usepackage[strict]{chngpage} % Provides adjustwidth page environment for tables.
%%% END PACKAGES
%%% BEGIN CUSTOM
\newcommand{\textbfun}[1]{\underline{\textbf{#1}}} % Bold + Underline text simultaneously.
%%% END CUSTOM
%%% BEGIN FORMATTING
\oddsidemargin 0.0cm
\evensidemargin 0.0cm
\textwidth 16.5cm
\headheight 0.0cm
\topmargin 0.0cm
\textheight 20.0cm
%%% END FORMATTING
\begin{document}
\begin{adjustwidth}{-60pt}{0pt}
\SetTblrInner{rowsep=5pt}
\begin{tblr}{
hlines,
vlines,
colspec={ *{7}{Q[c,m]} Q[l,m] }
}
{$e^-$ Density
\\ Regions}
& {Generic
\\ Formula}
& {Molecular
\\ Structure}
& Hybridization
& {Electronic
\\ Geometry}
& {Molecular
\\ Geometry}
& {Ideal Bond
\\ Angle}
& {Molecular Polarity}\\
5
& AB$_5$
& \chemfig{A(<:[:30]B)(-[2]B)(-[4]B)(-[6]B)(<[:330]B)}
& sp$^3$d
& {Trigonal
\\ Bipyramidal}
& {Trigonal
\\ Bipyramidal}
& {$180^\circ$ Axial
\\ $120^\circ$ Equitorial
\\ \phantom{x}
\\ $ 90^\circ$ Axial to
\\ Equitorial}
& {``B'' atoms are all the same
\\ Yes $\rightarrow$ Non-Polar
\\ No $\rightarrow$ Same two axial ``B'' \textbfun{and}
\\ \phantom{Yes $\rightarrow$} same three equitorial ``B''
\\ \phantom{Yes $\rightarrow$} \qquad Yes $\rightarrow$ Non-Polar
\\ \phantom{Yes $\rightarrow$} \qquad No $\rightarrow$ Polar}\\
\end{tblr}
\end{adjustwidth}
\end{document}
(旁注:我认为,您的原始colspec
定义缺少一列,这并不是什么问题,因为l
默认使用。我在上面的例子中将其更改"
为印刷正确的。)``
''