我一直尝试使用 tabularx 在表格中显示一组方程式。但是,以下都不令人满意:
第二排太紧
第三行有很多间距(我尝试过其他环境来消除间距,但都不起作用。虽然 parbox 给出了更好的结果,但也没有令人满意)
为什么两列大小相同?(使用对齐可以解决这个问题,但间距不能解决。)
\documentclass{article} \usepackage[utf8]{inputenc} \usepackage{tabularx} \begin{document} \begin{table} \begin{tabularx}{\textwidth}{|X|X|} \hline \multicolumn{2}{|>{\hsize=\dimexpr2\hsize+2\tabcolsep+\arrayrulewidth\relax}X|}{\textbf{Species Concentration in the Bulk}} \\ \hline $ \left[H{\rm PO}_4^{2-}\right]_h $& $ \frac{{K_{a5}{K_{a6}\left[H_3O^+\right]}_h C}_{bp}}{{\left[H_3O^+\right]_h}^3+K_{a5}\left[H_3O^+\right]_h^2+K_{a5}{K_{a6}\left[H_3O^+\right]}_h +{K_{a5}K}_{a6}K_{a7}} $ \\\hline $$ \left[{\rm PO}_4^{3-}\right]_h $$& $$ \frac{{{K_{a5}K}_{a6}K_{a7}C}_{bp}}{{\left[H_3O^+\right]_h}^3+K_{a5}\left[H_3O^+\right]_h^2+K_{a5}{K_{a6}\left[H_3O^+\right]}_h +{K_{a5}K}_{a6}K_{a7}} $$\\ \hline \end{tabularx} \end{table} \end{document}
答案1
对于上述结果,您需要定义不同的列宽,\displaystyle
对所有数学术语使用相同的数学环境(),并通过使用包添加一些垂直空间cellspace
:
\documentclass{article}
\usepackage[column=O]{cellspace}
\setlength\cellspacetoplimit{5pt}
\setlength\cellspacebottomlimit{5pt}
\addparagraphcolumntypes{X}
\usepackage{tabularx}
\begin{document}
\begin{table}
\begin{tabularx}{\textwidth}{|>{\hsize=0.3\hsize$\displaystyle}X<{$}|
>{\hsize=1.7\hsize$\displaystyle}OX<{$}|}
\hline
\multicolumn{2}{|Ol|}{\textbf{Species Concentration in the Bulk}} \\
\hline
\bigl[H\mathrm{PO_4}^{2-}\bigr]_h
& \frac{{K_{a5}{K_{a6}\left[H_3O^+\right]}_h C}_{bp}}
{\bigl[H_3O^+\bigr]_h^3 + K_{a5}\bigl[H_3O^+\bigr]_h^2 +
K_{a5}{K_{a6}\bigl[H_3O^+\bigr]}_h +
{K_{a5}K}_{a6}K_{a7}}
\\ \hline
\bigl[\mathrm{PO}_4^{3-}\bigr]_h
& \frac{K_{a5}K_{a6} K_{a7}C_{bp}}
{\bigl[H_3O^+\bigr]_h^3 + K_{a5}\bigl[H_3O^+\bigr]_h^2 +
K_{a5}K_{a6} \bigl[H_3O^+ \bigr]_h +
K_{a5}K_{a6} K_{a7}}
\\
\hline
\end{tabularx}
\end{table}
\end{document}
笔记:不清楚你的数学模式符号/变量是什么意思。不知怎的,它们让我想起了化学公式。如果是这种情况,那么你可以考虑加载包mhchem
,例如,按如下方式替换第一列和第一行中的术语
% in preamble
\usepackage[version=4]{mhchem}
% in the first cell
\ce{[HPO4^{2-}]_h}
得出的结果(包含指令的单元格\ce
以黄色突出显示):
答案2
tabularx
旨在控制宽度换行在段落中有 p 列,因此不适合这里,我会使用tabular
。此外,X
默认情况下所有列的宽度相同,但在这里您希望单元格具有其自然宽度。
一般而言,有一些软件包可以mhchem
简化化学式的输入,但我在这里没有改变这一点。此外,\rm
在 LaTeX 中默认情况下没有定义。
\documentclass{article}
% only in old latex \usepackage[utf8]{inputenc}
\usepackage{array,amsmath}
\newcommand\zfrac[2]{\dfrac{\rule[-5pt]{0pt}{0pt}#1}{\rule[-10pt]{0pt}{15pt}#2}}
\begin{document}
\begin{table}
\centering
\setlength\extrarowheight{2pt}
\renewcommand\arraystretch{2}
\begin{tabular}{|*{2}{>{$\displaystyle}c<{$}|}}
\hline
\multicolumn{2}{|c|}{\textbf{Species Concentration in the Bulk}} \\
\hline
\left[\mathrm{H}{\mathrm{PO}}_4^{2-}\right]_h
&
\zfrac{{\mathrm{K}_{a5}{\mathrm{K}_{a6}\left[\mathrm{H}_3O^+\right]}_h \mathrm{C}}_{bp}}{{\left[\mathrm{H}_3O^+\right]_h}^3+\mathrm{K}_{a5}\left[\mathrm{H}_3O^+\right]_h^2+\mathrm{K}_{a5}{\mathrm{K}_{a6}\left[\mathrm{H}_3O^+\right]}_h +{\mathrm{K}_{a5}\mathrm{K}}_{a6}\mathrm{K}_{a7}}
\\\hline
\left[{\mathrm{PO}}_4^{3-}\right]_h
&
\zfrac{{{\mathrm{K}_{a5}\mathrm{K}}_{a6}\mathrm{K}_{a7}\mathrm{C}}_{bp}}{{\left[\mathrm{H}_3O^+\right]_h}^3+\mathrm{K}_{a5}\left[\mathrm{H}_3O^+\right]_h^2+\mathrm{K}_{a5}{\mathrm{K}_{a6}\left[\mathrm{H}_3O^+\right]}_h +{\mathrm{K}_{a5}\mathrm{K}}_{a6}\mathrm{K}_{a7}}
\\
\hline
\end{tabular}
\end{table}
\end{document}