定義用於對齊表中元素並按字母順序標記它們的環境

定義用於對齊表中元素並按字母順序標記它們的環境

我想在盡可能的環境中自動化此過程:

\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); ETC。
  • 一行中的元素數量指定一次或(更好)取決於適合一行的元素。
  • 只需要添加項目(可能用/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想要的,或者是否有點矯枉過正,但 with 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}

在此輸入影像描述

相關內容