テーブル内の要素を整列させ、アルファベット順にラベルを付ける環境を定義する

テーブル内の要素を整列させ、アルファベット順にラベルを付ける環境を定義する

可能な限り、このプロセスを環境で自動化したいと思います。

\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); など)。
  • 1 行の要素の数は 1 回指定するか、(さらに良い方法として) 1 行に収まる要素の数に応じて指定します。
  • 項目を追加するだけで十分です(/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}行ごとに4つの要素を指定します。
  • カウンターを手動でリセットする必要があります。列挙または環境なし

何か\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}

ここに画像の説明を入力してください

関連情報