如何混合 itemize 和 tabular 环境?

如何混合 itemize 和 tabular 环境?

我有以下列表:

\begin{itemize}
    \item És associativa:$\qquad(x+y)+z=x+(y+z)$
    \item És commutativa:$\qquad x+y=y+x$
    \item Té element neutre:$\qquad\exists 0\in\K : 0+x=x+0=x$
    \item Té element invers:$\qquad\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$
\end{itemize}

但我想将其对齐为

\begin{tabular}{ll}
    És associativa:&$\quad(x+y)+z=x+(y+z)$\\
    És commutativa:&$\quad x+y=y+x$\\
    Té element neutre:&$\quad\exists 0\in\K : 0+x=x+0=x$\\
    Té element invers:&$\quad\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$\\
\end{tabular}

我怎样才能“混合”它们?

答案1

这里有一个次要的增强解决方案。

使用包裹array您可以定义一个新的列类型L,它会自动在使用它的列的开头插入项目符号:

在此处输入图片描述

笔记:

  • 也可以通过以下方式实现包裹collcell。这在下面的代码中被注释掉了,但是只有当您想对第一列中的条目进行进一步处理时才有意义。

代码:

\documentclass[a5paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}  % add packages you need here ...

\usepackage{array}
\newcolumntype{L}{>{\labelitemi~~}l<{}}

%% Don't need above two lines if want to use `collcell` pacakage
%\usepackage{collcell} 
%\newcommand*{\AddBullet}[1]{\labelitemi~#1}%
%\newcolumntype{L}{>{\collectcell\AddBullet}{l}<{\endcollectcell}}

\newcommand*{\K}{\mathbf{K}}%  Not sure what \K is supposed to be

\begin{document}
\begin{tabular}{L l}
    És associativa:    & $\quad(x+y)+z=x+(y+z)$\\
    És commutativa:    & $\quad x+y=y+x$\\
    Té element neutre: & $\quad\exists 0\in\K : 0+x=x+0=x$\\
    Té element invers: & $\quad\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$\\
\end{tabular}
\end{document}

答案2

您可以这样做(\textbullet插入项目符号,并且您必须用 标记新行&。为了更加灵活,您可以使用\labelitemi而不是\textbullet正如 Juri 在他的评论中所说的那样):

%http://tex.stackexchange.com/questions/75717/how-can-i-mix-itemize-and-tabular-environments#comment161963_75717
\documentclass[a5paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}  % add packages you need here ...

\begin{document}
\begin{tabular}{lll}
    \labelitemi & És associativa:&$\quad(x+y)+z=x+(y+z)$\\
    \labelitemi & És commutativa:&$\quad x+y=y+x$\\
    \labelitemi & Té element neutre:&$\quad\exists 0\in\K : 0+x=x+0=x$\\
    \labelitemi & Té element invers:&$\quad\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$\\
\end{tabular}
\end{document}

答案3

如果您自己管理一些框宽度,则无需混合这两个环境。以下 MWE 显示了myitemize基于 的环境itemize,该环境跨越页面边界并设置项目 ( ) 的宽度(\myitemlen如果在环境的开头设置)。否则,它将采用每个指定项目的自然宽度。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}% http://ctan.org/pkg/inputenc
\newlength{\myitemlen}
\newcommand{\myitem}[1]{%
  \olditem\ifdim\myitemlen>0pt
      \makebox[\myitemlen][l]{#1}%
    \else
      #1%
    \fi}
\newenvironment{myitemize}
  {% \begin{myitemize}
   \begin{itemize}\let\olditem\item\let\item\myitem}
  {\end{itemize}}% \end{myitemize}
\newcommand{\K}{\mathbf{K}}
\begin{document}
\begin{myitemize}
  \item{És associativa:} $(x+y)+z=x+(y+z)$
  \item{És commutativa:} $x+y=y+x$
  \item{Té element neutre:} $\exists 0\in\K : 0+x=x+0=x$
  \item{Té element invers:} $\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$
\end{myitemize}

\begin{myitemize}
  \settowidth{\myitemlen}{Té element neutre:\qquad}
  \item{És associativa:} $(x+y)+z=x+(y+z)$
  \item{És commutativa:} $x+y=y+x$
  \item{Té element neutre:} $\exists 0\in\K : 0+x=x+0=x$
  \item{Té element invers:} $\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$
\end{myitemize}

\end{document}

答案4

另一个简单的解决方案

\documentclass[a5paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}  % add packages you need here ...

\usepackage{array}

\newcommand*{\K}{\mathbf{K}}
\begin{document}
\begin{itemize}
  \item \parbox{3.5cm}{És associativa:}    \parbox{6cm}{$\quad(x+y)+z=x+(y+z)$}
  \item \parbox{3.5cm}{És commutativa:}    \parbox{6cm}{$\quad x+y=y+x$}
  \item \parbox{3.5cm}{Té element neutre:} \parbox{6cm}{$\quad\exists 0\in\K : 0+x=x+0=x$}
  \item \parbox{3.5cm}{Té element invers:} \parbox{7.5cm}{$\quad\forall x\in\K\;\exists(-x)\in\K : x+(-x)=(-x)+x=0$}
\end{itemize}
\end{document}

在此处输入图片描述

相关内容