定义一个环境来对齐表格中的元素并按字母顺序标记它们

定义一个环境来对齐表格中的元素并按字母顺序标记它们

我想在尽可能的环境中自动化这个过程:

\documentclass[12pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\begin{document}
 \begin{tabular}{llllll}
  \textbf{a)}  $a^{-3}+b^{7}$ &~
  \textbf{b)}  $a^{-3}+b^{7}$ &~
  \textbf{c)}  $a^{-3}+b^{7}$ &~
  \textbf{d)}  $a^{-3}+b^{7}$ &~
  \textbf{e)}  $a^{-3}+b^{7}$ &~
  \textbf{f)}  $a^{-3}+b^{7}$ \\    

  \textbf{g)}  $a^{-3}+b^{7}$ &~
  \textbf{h)}  $a^{-3}+b^{7}$ &~
  \textbf{i)}  $a^{-3}+b^{7}$ &~
  \textbf{j)}  $a^{-3}+b^{7}$ &~
  \textbf{k)}  $a^{-3}+b^{7}$ &~
  \textbf{l)}  $a^{-3}+b^{7}$ \\    
 \end{tabular}
\end{document}
  • 对于每个新元素,都有一个自动编号(a);b);c);等等)
  • 一行中的元素数量只需指定一次,或者(更好的是)取决于一行中适合的元素数量。
  • 只需要添加项目(可能用/additem #1分号或其他东西分隔)在这种情况下$a^{-3}+b^{7}$是一个项目

如果有更好的解决方案,则不必将其放在表格中。对我来说,重要的是

  • 空间相同
  • 这是每个元素之间的额外空格(我用 来实现的&~
  • “编号”位于其下方/垂直对齐

编辑:这是一次没有表格的尝试(感谢@David Carlisle)

\documentclass[12pt,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\newcommand\z[2][0.25]{%
\noindent \baselineskip1.5\normalbaselineskip
\makebox[#1\textwidth][l]{%
\refstepcounter{enumi}%
\makebox[1.42em][l]{\alph{enumi})}%
$\displaystyle#2$}\linebreak[0]\hfill\ignorespaces}

\begin{document}
 \z[0.25]{ax^2+bx+c}
 \z[0.25]{ax^2+bx+c}   
 \z[0.25]{ax^2+bx+c}   
 \z[0.25]{ax^2+bx+c}   
 \z[0.25]{ax^2+bx+c}
 \z[0.25]{ax^2+bx+c}   
 \z[0.25]{ax^2+bx+c}   
 \z[0.25]{ax^2+bx+c}
\end{document}
  • \hfill会阻止水平左对齐,如果元素不足以填满行,则会均匀分布元素
  • 我需要为每个元素指定行:例如\z[0.25]{ax^2+bx+c}每行四个元素
  • 我仍然需要手动重置计数器;这是没有列举或环境

也许一些带有\newlist? 的东西会很棒:

\begin{z}[0.25] % 4 items per row
 \item abcdef
 \item abcdef
 \item abcdef
\end{z}

编辑:我提供了可编译的代码,感谢 cfr

答案1

不确定这是不是 OP 想要的,或者是否有点过头,但使用tcbraster(from tcolorbox) 可以做到:

\documentclass{article}
\usepackage[most]{tcolorbox}

\newenvironment{myitemize}%
{\begin{tcbitemize}[raster columns=4, raster equal height=rows, title={\thetcbrasternum}, attach title to upper={)\quad}, coltitle=black, empty, size=minimal]}
{\end{tcbitemize}}

\begin{document}
\begin{myitemize}
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\end{myitemize}
\end{document}

在此处输入图片描述

它不计算列数,而是一个参数。所有列具有相同的宽度,并且所有行具有相同的高度(使用选项)raster equal height=rows

答案2

修改@Ignasi 答案做得很好:

\documentclass[12pt,ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[most]{tcolorbox}

\newenvironment{myitemize}[1][4]%
{\begin{tcbitemize}[raster columns=#1, raster equal height=rows, title={\refstepcounter{enumi} \alph{enumi}}, attach title to upper={)\quad}, coltitle=black, empty, size=minimal]}
{\end{tcbitemize}\setcounter{enumi}{0}}


\begin{document}
\begin{myitemize}[3]
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\end{myitemize}
~\\
\begin{myitemize}
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\tcbitem $a^{-3}+b^{7}$
\end{myitemize}
\end{document}

在此处输入图片描述

相关内容