将化学 + 和箭头与表格的 vline 对齐

将化学 + 和箭头与表格的 vline 对齐

我想重现这个数字: 表格中长度相等的列与顶行的 + 和右箭头符号对齐 到目前为止,我已经想出了这样的代码:

\documentclass{article}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{multicol}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}

\usepackage[version=4]{mhchem}

\def\gaz{_{\rm(g)}}
\def\sol{_{\rm(s)}}
\def\liq{_{\rm(l)}}
\def\aqu{_{\rm(aq)}}

\begin{document}

\begin{center}
    \begin{tabularx}{\linewidth}{|c||Y|Y|Y|Y|}\hline
        Équation &
        \multicolumn{4}{c|}{$\ce{CH4\gaz{} + 2O2\gaz{} ->
                           CO2\gaz{} + 2H2O\gaz{}}$}
                           \\\hline
        État initial & $n_{\ce{CH4}}^i$ & $n_{\ce{CH4}}^i$ &
                     $n_{\ce{CH4}}^i$ & $n_{\ce{CH4}}^i$
                     \\\hline
    \end{tabularx}
\end{center}

\end{document}

输出以下内容: tabularx 具有等长列,与顶行的 + 和 rightarrow 符号不对齐

我如何使+和与的rightarrow对齐?vlinestabular

答案1

通过将两个单独的表格放在一起,可以实现此效果:其中一个表格的列分隔符由符号 ( @{<symbol>}) 替代,另一个表格具有常规垂直条(参见文档);BTWarray由 加载tabularx

由于X-type 在给定相等数量的列的情况下设置相同的宽度,因此您只需确保第一列也具有相同的固定宽度,因此我使用了p{<len>}

最后,因为在这种情况下,乳胶增加了额外的\lineskip\vspace{-\lineskip}弥补了它

在此处输入图片描述

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{multicol}
\usepackage{tabularx}
\usepackage{mathtools}
\newcolumntype{Y}{>{\centering\arraybackslash $}X<{$}}

\usepackage[version=4]{mhchem}

\def\gaz{_{\rm(g)}}
\def\sol{_{\rm(s)}}
\def\liq{_{\rm(l)}}
\def\aqu{_{\rm(aq)}}

\begin{document}

\begin{table}[tbh]
  \centering
  \begin{tabularx}{\textwidth}{|p{2cm}|| Y @{$+$} Y @{$\rightarrow$} Y @{$+$} Y |}
    \hline
    Équation     & \xmathstrut{0.35}\ce{CH4\gaz{}} & \ce{2O2\gaz{}} & \ce{CO2\gaz{}} & \ce{2H2O\gaz{}}
  \end{tabularx}
  \par\vspace{-\lineskip}%
  \begin{tabularx}{\textwidth}{|p{2cm}|| *4{Y|}}
    \hline
    État initial & \xmathstrut{0.35}n_{\ce{CH4}}^i & n_{\ce{CH4}}^i & n_{\ce{CH4}}^i & n_{\ce{CH4}}^i \\
    \hline
  \end{tabularx}
\end{table}

\end{document}

答案2

我找到了一个更好的解决方案,使用一种新的列类型d来使数学符号居中,并\vline在需要时使用简单的列类型。

使单元格内容居中的最佳选项仍然是 Celdor 建议的选项。如您所见(注释行),我尝试了很多这些选项。

根据需要

\documentclass[a4paper]{article}

\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[hmargin=1.5cm, vmargin=1.5cm]{geometry}

\usepackage{multicol}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\newcolumntype{d}{@{}c@{}}

\usepackage[version=4]{mhchem}

\def\gaz{_{\rm(g)}}
\def\sol{_{\rm(s)}}
\def\liq{_{\rm(l)}}
\def\aqu{_{\rm(aq)}}

\begin{document}

\begin{center}
    % \renewcommand{\arraystretch}{3}
    % \setlength\extrarowheight{-3pt}
    % \def\mystrut{\rule[-1em]{0ex}{2.5em}}
    % \setlength\minrowclearance{10pt}
    % \setcellgapes{5em}\makegapedcells
    \begin{tabularx}{\linewidth}{|p{2cm}||YdYdYdY|}
        \hline
        $\xmathstrut{.35}$
        Équation         &
        $\ce{CH4\gaz{}}$ & $+$           &
        $\ce{2O2\gaz{}}$ & $\rightarrow$ &
        $\ce{CO2\gaz{}}$ & $+$           &
        $\ce{2H2O\gaz{}}$                  \\
        \hline
        $\xmathstrut{.35}$
        État initial     &
        $n_{\ce{CH4}}^i$ & \vline        &
        $n_{\ce{CH4}}^i$ & \vline        &
        $n_{\ce{CH4}}^i$ & \vline        &
        $n_{\ce{CH4}}^i$                   \\
        \hline
    \end{tabularx}
\end{center}

\end{document}

相关内容