为什么有序列表的对齐默认是混乱的以及如何修复它?

为什么有序列表的对齐默认是混乱的以及如何修复它?

我最近试图在有序列表中形成一个表格,但是,列表中的表格中有一个小的缩进,这让我抓狂了。

以下是代码片段-

\documentclass[12pt]{article}
\begin{document}
\begin{enumerate}{
    \item{\begin{enumerate}
         \item{
            \textbf{Quantative}- mpg, displacement, cylinders, horsepower, weight, acceleration, year \\
            \textbf{Qualitative}- names, origin
        }
        \item{
         range(mpg)=[9,46.6], range(cylinders)=[3,8], ....
        }
        \item{
            \begin{tabular}{ |c |c |c |c |c |c |c |c |c |}
            \hline
             & mpg & cyl. & disp. & hp & wt. & accl. & year & origin\\
         \hline\hline
         Mean &  & & & & & & & \\
            \hline
            Std. dev. & & & & & & & &\\
            \hline
         \end{tabular}
    }
    \end{enumerate}
    }}
\end{enumerate}
\end{document}

输出

如图所示,第一个和第三个列表中有一个多余的空格。我该如何删除它? 缩小输出

谢谢!

答案1

你发现的“小凹痕”没有什么与 2 级列表中的第三项与tabular。相反,缩进是由于字母“a”、“b”、“c”的宽度不完全相同且右对齐所致。现在,“c”恰好比“a”和“b”都窄一点。而且,如果你看非常接近,您可能会注意到“a”比“b”略窄。我想,如果列表中继续列出项目(l)(m)——分别是最窄和最宽的小写字母——右对齐问题将变得相当不言而喻。

如果你实在无法忍受这种情况,我建议你(a)加载枚举项包和(b)使用选项启动 2 级枚举align=left

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}
  \item 
    \begin{enumerate}[align=left] % <-- note 'align=left' option
    \item 
      \textbf{Quantative} -- mpg, displacement, cylinders, horsepower, weight, acceleration, year \\
      \textbf{Qualitative} -- names, origin
        
    \item range(mpg)=[9,46.6], range(cylinders)=[3,8], \dots
        
    \item
      \begin{tabular}{ | *{9}{c|} }
      \hline
         & mpg & cyl. & disp. & hp & wt. & accl. & year & origin\\
      \hline
      Mean       & & & & & & & & \\
      \hline
      Std.\ dev. & & & & & & & & \\
      \hline
      \end{tabular}
    \end{enumerate}
\end{enumerate}
\end{document}

答案2

描述

  • 我简化了你的 MWE 并用 tikz 添加了一些彩色线条。
  • 如果你仔细观察,你会发现(a)似乎也没有与(b)(红线)对齐,
  • 但如果你看右侧,你会看到项目与绿线右对齐。
  • 这是默认设置,这样文本也能正确对齐(蓝线)。

结果

在此处输入图片描述

代码

\documentclass[12pt]{article}

\usepackage{tikz}

\begin{document}
\begin{enumerate}
\item
    \begin{enumerate}
    \item
        foo
    \item
        bar
    \item
        foobar
    \end{enumerate}
\end{enumerate}

\begin{tikzpicture}[remember picture,overlay]
    \draw[red] ([xshift=51.5mm, yshift=-45mm] current page.north west) -- ++(0,-2);
    \draw[green] ([xshift=56.1mm, yshift=-45mm] current page.north west) -- ++(0,-2);
    \draw[blue] ([xshift=58.6mm, yshift=-45mm] current page.north west) -- ++(0,-2);
\end{tikzpicture}

\end{document}

答案3

编辑:

  • 看到编辑后的问题变得更加清晰后,您还在困扰什么。
  • 之前这个可以忽略不计的水平空间(c)没有插入任何表格。而且它太小了(可以忽略不计),很难观察到
  • 此外,它的出现与插入的表格无关。它会出现在任何其他项目内容中,因为它是由项目标签默认右对齐引起的。
  • 因此,可以通过将项目标签左对齐来消除它(正如@Mico 在他的回答中所示)。
  • 所以你的问题标题(仍然)具有误导性。

无关:

  • 甚至你的代码片段也不完整......
  • 您在第一级中使用哪个列表(逐项列举、枚举、描述?)
  • 删除项目内容周围的所有花括号。正如@dexteritas 在他的评论中提到的,˙\item` 不接受参数。

主题:

  • 抱歉,但您的问题(编辑前)并不完全清楚,所以您让我们自己猜测。这对我来说很糟糕,因为我试图尽早帮助您)
  • 无论如何,现在我会将您的代码片段编写如下:
\documentclass{article}
\usepackage{enumitem}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}
\begin{enumerate}% [align=left] ?
\item   \begin{enumerate}[align=left] 
        \item   \textbf{Quantative}- mpg, displacement, cylinders, horsepower, weight, acceleration, year \\
                \textbf{Qualitative}- names, origin
        \item   range(mpg)=[9,46.6], range(cylinders)=[3,8], ....

        \item   \begin{tblr}[T]{ colspec={|*{9}{c|} }} % <--- observe T
                    \toprule
                            & mpg   & cyl.  & disp. & hp    & wt    & accl. & year & origin \\
                    \midrule
                    Mean    &       &       &       &       &       &       &       &       \\
                    \midrule[0.1pt, dashed]
                    Std. dev. & & & & & & & &\\
                    \bottomrule
                \end{tblr}
        \end{enumerate}
\item ???
\end{enumerate}
\end{document}

\end{document}

但是现在出现了一个问题,第一级列表的标签应该如何对齐。例如,数字 10 应该如何对齐?也应该向左对齐吗?

在此处输入图片描述

如果我说对了,请告诉我!

相关内容