使用 xparse、tabularx 和 enumerate 时对齐不正确

使用 xparse、tabularx 和 enumerate 时对齐不正确

我想将这段代码提取到环境中

\begin{table}[H]
  \begin{tabularx}{\textwidth}{lX}
    \toprule
    \textbf{a} & a \\ \midrule
    \textbf{b} & b \\ \midrule
    \textbf{c} & c \\ \midrule
    \textbf{d} & d \\ \midrule
    \textbf{e} &
    \begin{enumerate}[leftmargin=*,label=\arabic*),nosep,after=\vspace{-\baselineskip},before=\vspace{-0.6\baselineskip}]
      \item x
      \item y
    \end{enumerate} \\ \midrule
    \textbf{f} & e \\ \bottomrule
  \end{tabularx}
  \label{tab:table}
\end{table}

所需用途:

\begin{ucbx}{a}{b}{c}{d}{e}
  \item x
  \item y
\end{ucbx}

我目前正在使用xparse、、tabularxfloatbooktabsenumitem

\NewDocumentEnvironment{ucbx}{+m+m+m+m+m}{%
\table[H]
\tabularx{\textwidth}{lX}
\toprule
\textbf{a} & #1 \\ \midrule
\textbf{b} & #2 \\ \midrule
\textbf{c} & #3 \\ \midrule
\textbf{d} & #4 \\ \midrule
\textbf{e} &
\enumerate[leftmargin=*,label=\arabic*),nosep,after=\vspace{-\baselineskip},before=\vspace{-0.6\baselineskip}]
}{%
\endenumerate \\ \midrule
\textbf{f} & #5 \\ \bottomrule
\endtabularx
\endtable
}

该代码没有产生想要的输出,并且还会抛出You can't use \relax' after \the.、、和错误。Misplaced \noalign.Undefined control sequence.misplaced alignment tab character &.LaTeX Error: There's no line here to end.

我用它XeLaTeX来进行编译。

电流输出: 电流输出

谢谢。

答案1

您不应该使用\enumerate\endenumerate,而应该使用正确的\begin{enumerate}\end{enumerate},但这会与相冲突tabularx

解决方案:如果您不打算\verb在项目中包含材料,则可以使用参数b说明符。

\documentclass{article}
\usepackage{tabularx,booktabs,enumitem}

\NewDocumentEnvironment{ucbx}{+m+m+m+m+m +b}{%
  \begin{center}
  \begin{tabularx}{\textwidth}{lX}
  \toprule
  \textbf{a} & #1 \\ \midrule
  \textbf{b} & #2 \\ \midrule
  \textbf{c} & #3 \\ \midrule
  \textbf{d} & #4 \\ \midrule
  \textbf{e} &
  \begin{enumerate}[
    leftmargin=*,
    label=\arabic*),
    nosep,
    after=\vspace{-\baselineskip},
    before=\vspace{-0.6\baselineskip}
  ] #6
  \end{enumerate} \\ \midrule
  \textbf{f} & #5 \\ \bottomrule
\end{tabularx}
\end{center}
}{}

\begin{document}

\begin{ucbx}{a}{b}{c}{d}{e}
  \item x
  \item y
\end{ucbx}

\end{document}

table如果没有标题就无需打电话。

在此处输入图片描述

相关内容