删除数组单元格内数组的小缩进

删除数组单元格内数组的小缩进

我经常想在一列中写公式,在另一列中写文本。这有助于我创建漂亮的备忘单,其中所有内容都对齐且干净,但我无法获得一致的结果。无论我使用 tabular、tabularx、minipages 还是数组,总会存在一些问题(丑陋的表格输出,某些单元格没有对齐的内容,或者生成的表格很好,但无法轻松移动到我想要的位置,等等)。

现在,我正在尝试使用大批环境:

\documentclass{article}

\usepackage{amsmath}

    \begin{document}
        \begin{equation*}
            \begin{array}{|l|l|}
                \hline
                \displaystyle\int x\;dx & \text{\textbf{This} is correctly left justified}\\
                \displaystyle\int \dfrac{1}{x}\;dx & \text{\textbf{This} is also correctly left justified}\\
                \displaystyle\int \dfrac{\text{degree $m$ polynomial}}{\text{degree $n$ polynomial}}\; dx &
                \begin{array}{l}
                    \text{If $m\geq n$: use this technique}\\
                    \text{If $m<n$: use that other technique}
                \end{array}\\
                \displaystyle\int f(x)\;dx & \text{The above two If's are not left justified with the two \textbf{This}'s}\\
                \hline
            \end{array}
        \end{equation*}
    \end{document}

输出如下内容:

在此处输入图片描述

问题

如您所见,在数组的第三行/第二列,我使用另一个数组语句在同一行中写入两行,但它们稍微向右偏移。我认为那里有一条不可见的空白垂直线(如果我在嵌套数组的列中写入 {|l|} 而不是仅仅 {l},那么实际的线就会在那里)。有什么办法可以消除那个“缩进”吗(如果我们可以这样称呼它)?

附加信息

如果有人问,这里是我使用 tabularx 做的类似尝试(其中我使用 \newline 而不是嵌套数组):

\documentclass{article}

\usepackage{amsmath}
\usepackage{tabularx}

\begin{document}
    \begin{table}[h]
        \begin{tabularx}{\textwidth}{|lX|}
            \hline
            $\displaystyle\int x\;dx$ & \textbf{This} is correctly left justified\\
            $\displaystyle\int \dfrac{1}{x}\;dx$ & \textbf{This} is also correctly left justified\\
            $\displaystyle\int \dfrac{\text{degree $m$ polynomial}}{\text{degree $n$ polynomial}}\;dx$ & 
                \text{If $m\geq n$: use this technique}\newline
                \text{If $m<n$: use that other technique}\\
            $\displaystyle\int f(x)\;dx$ & \text{The above two If's are not aligned to the top of the row}\\
            \hline
        \end{tabularx}
    \end{table}
\end{document}

输出如下内容:

在此处输入图片描述

如您所见,现在 If 已对齐,但没有与左侧积分的顶部对齐。(对于此示例,不必担心行会溢出表格)。

我一直在玩这种打地鼠游戏,试图找到适合工作的环境,希望能得到一些帮助!

提前致谢。

答案1

您可能喜欢下表:

在此处输入图片描述

使用该tabularray包可以轻松获得它而无需嵌套表格。而且表格代码更短更清晰:

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}

\begin{document}
\begin{center}
    \begin{tblr}{hline{1,Z}=solid, vlines,
                 colspec={Q[l, mode=dmath] X[l,m]},
                 rowsep=5pt
                 }
\int x\;dx              & \textbf{This} is correctly left justified         \\
\int \dfrac{1}{x}\;dx   & \textbf{This} is also correctly left justified    \\
\int \dfrac{\text{degree $m$ polynomial}}
           {\text{degree $n$ polynomial}}\;dx 
                        & { If $m\geq n$: use this technique\\
                            If $m<n$: use that other technique}             \\
\int f(x)\;dx           & The above two "If's" are aligned  to the left and 
                          vertical center of the row                       \\
    \end{tblr}
\end{center}
\end{document}

答案2

以下是我创建表格的方法,同时仍使用环境tabularx。我使用一个名为\tint("tall int") 的宏来代替,\int以使第一行中的积分符号不接触顶行,并使最后一行中的积分符号不接触底行。请注意,我已经摆脱了相当多的包装器\text

在此处输入图片描述

\documentclass{article} 

\usepackage{amsmath}  % for "\text" macro
\usepackage{tabularx} % "tabularx" environment and "X" column type
\newcolumntype{L}{>{$\displaystyle}l<{$}} % automatic display-style math mode
\newcolumntype{Y}{>{\raggedright\arraybackslash}X} % left-aligned, not fully justified
\newcommand\tint{\int^{\mathstrut}_{\mathstrut}} % "tall" integral

\begin{document}

\begin{center} % no need for a "table" environment, right?
\renewcommand\tabularxcolumn[1]{m{#1}} % vertical centering
\begin{tabularx}{\textwidth}{|LY|}
\hline

\tint x\,dx 
   & \textbf{This} is correctly left justified \\
   
\tint\frac{1}{x}\,dx 
   & \textbf{This} is also correctly left justified \\
   
\tint \frac{\text{degree $m$ polynomial}}{\text{degree $n$ polynomial}}\,dx 
   & If $m\geq n$: use this technique \newline
     If $m<n$: use that other technique \\
             
\tint f(x)\,dx 
   & The above two If's are not aligned to the top of the row \\

\hline
\end{tabularx}
\end{center}

\end{document}

相关内容