8

This is what I am currently doing with the alignat environment of the amsmath package. But I find the syntax heavy and not very user-friendly. I would like the numbering to be automatic a) ... b) ... c) on each line and that the spacing between the columns is easy to configure.

Is there a package that can automatically align and number a series of calculations with a simple and user-friendly syntax?

screenshot

\documentclass[french,landscape]{article}   
\usepackage[margin=6mm]{geometry}
\usepackage{amsmath}
\usepackage{multicol}
\setlength\columnsep{10mm}
\setlength\columnseprule{.4pt}
\raggedcolumns

\begin{document} \pagestyle{empty}

\setlength{\abovedisplayskip}{0pt} \setlength{\belowdisplayskip}{0pt} \begin{multicols}{2} Effectuer: \begin{alignat}{3} & a)\ (+7)+(-12) \quad&&\quad b)\ (-7)+(+12) \quad&&\quad c)\ (-7)+(-12) \
& d)\ (+9)+(-5) \quad&&\quad e)\ (-4)+(+10) \quad&&\quad f)\ (-12)+(-10)\
& g)\ (+9)+(-9) \quad&&\quad h)\ (+12)+(-18) \quad&&\quad i)\ (-20)+(+16)
\end{alignat*} \columnbreak

Effectuer: \begin{alignat}{3} & a)\ (+3)+(-18) \quad&&\quad b)\ (-7)+(+12) \quad&&\quad c)\ (-7)+(-12) \
& d)\ (+7)+(-5) \quad&&\quad e)\ (-6)+(+13) \quad&&\quad f)\ (-12)+(-10)\
& g)\ (+9)+(-9) \quad&&\quad h)\ (+12)+(-18) \quad&&\quad i)\ (-20)+(+16)
\end{alignat
} \end{multicols*} \end{document}

AndréC
  • 24,137

3 Answers3

16

What about the tasks package?

enter image description here

\documentclass{article}   
\usepackage{amsmath}
\usepackage{tasks}
\begin{document}

Effectuer: \begin{tasks}item-format=\ensuremath \task (+7)+(-12) \task (-7)+(+12) \task (-7)+(-12) \task (+9)+(-5) \task (-4)+(+10) \task (-12)+(-10) \task (+9)+(-9) \task (+12)+(-18) \task (-20)+(+16) \end{tasks}

\end{document}

leandriis
  • 62,593
  • This package is great. But it would be even better if you didn't have to write every item in the math mode. Let it be automatic. – AndréC May 02 '21 at 08:20
  • 1
    @AndréC: I just edited my answer to include the item-format=\ensuremath option. If you want all tasks environment in your document to be in math mode automatically, you can use \settasks{item-format = \ensuremath} in the preamble instead. – leandriis May 02 '21 at 08:28
  • And if I want to number differently i) ii) or 1) 2) is it possible? – AndréC May 02 '21 at 08:42
  • The tasks package offers the label option which is similar to enumitem's label option. For i) ii) use label=\roman*) and for 1) 2) use label=\arabic*). – leandriis May 02 '21 at 08:46
  • 2
    It's great. Thanks a lot. This package deserves to be known. – AndréC May 02 '21 at 08:49
  • I will wait a few days before validating a response so that other responses can be made. Thank you very much. – AndréC May 02 '21 at 08:50
13

Here's a go at comparing four different packages. I think I like tasks best.

\documentclass{article}

\usepackage{url} \usepackage{shortlst} \usepackage{hlist} \usepackage{tasks} \usepackage{multienum}

\begin{document}

\section*{A comparison of horizontal list packages}

\subsection*{shortlst}

\texttt{shortlst} has a non-free licence, so you will need to grab it from CTAN at \url{https://ctan.org/pkg/shortlst}.

Also, it uses the standard \LaTeX{} labels without easy customisation, so you have to use a hook to redefine them if you want something else.

\AddToHook{env/shortenumerate/begin}{% \renewcommand\theenumi{\alph{enumi}}% \renewcommand\labelenumi{\emph{\theenumi})}}

The width of items is calculated automatically to maximise the number of items per line, but you can set the item width manually using \verb|\shortitemwidth|.

\begin{shortenumerate} \item $(+7)+(-12)$ \item $(-7)+(+12)$ \item $(-7)+(-12)$ \item $(+9)+(-5)$ \item $(-4)+(+10)$ \item $(-12)+(-10)$ \item $(+9)+(-9)$ \item $(+12)+(-18)$ \item $(-20)+(+16)$ \end{shortenumerate}

\subsection*{hlist}

\texttt{hlist} seems to work pretty well and his a flexible interface to set the list parameters. The defaults are not very much like the default \LaTeX{} lists so I had to fiddle with them a bit.

\sethlist{label sep=0.5em, item offset=2.5em, label width=2em, pre label={}, label={\emph{\alph{hlisti}})}, label align=right}

\begin{hlist}3 \hitem $(+7)+(-12)$ \hitem $(-7)+(+12)$ \hitem $(-7)+(-12)$ \hitem $(+9)+(-5)$ \hitem $(-4)+(+10)$ \hitem $(-12)+(-10)$ \hitem $(+9)+(-9)$ \hitem $(+12)+(-18)$ \hitem $(-20)+(+16)$ \end{hlist}

\subsection*{tasks}

\texttt{tasks} seems to be the most actively maintained package and has a good interface for modifying list settings. Default settings are reasonably close to the standard \LaTeX{} lists.

\settasks{label=\emph{\alph*}), label-align=right, label-offset=0.5em, after-item-skip=-\parsep}

\begin{tasks}(3) \task $(+7)+(-12)$ \task $(-7)+(+12)$ \task $(-7)+(-12)$ \task $(+9)+(-5)$ \task $(-4)+(+10)$ \task $(-12)+(-10)$ \task $(+9)+(-9)$ \task $(+12)+(-18)$ \task $(-20)+(+16)$ \end{tasks}

\subsection*{multienum}

\texttt{multienum} uses a somewhat different interface, but still seems to work fairly well.

There's no interface to customise labels and spacing though, so need to redefine things manually. Except I couldn't find an easy way of modifying the spacing between rows.

\renewcommand{\regularlisti}{% \setcounter{multienumi}{0}% \renewcommand{\labelenumi}{% \addtocounter{multienumi}{1}\emph{\alph{multienumi}})}}

\begin{multienumerate} \setlength{\parskip}{0pt}% \setlength{\itemsep}{0pt}% \mitemxxx{$(+7)+(-12)$}{$(-7)+(+12)$}{$(-7)+(-12)$} \mitemxxx{$(+9)+(-5)$}{$(-4)+(+10)$}{$(-12)+(-10)$} \mitemxxx{$(+9)+(-9)$}{$(+12)+(-18)$}{$(-20)+(+16)$} \end{multienumerate}

\end{document}

output

David Purton
  • 25,884
4

The last resort, maybe!

\documentclass[12pt]{article}
\usepackage[a5paper,margin=1cm,landscape]{geometry}
\usepackage{amsmath}
\usepackage{enumitem}
\usepackage{multicol}
\begin{document}

Effectuer: \begin{multicols}{3} \begin{enumerate}[label=\alph*)] \item $K+i+m$ \item $J+o+n+g$ \item $U+n$ \item $P+e+a+c+e$ \item $B+e$ \item $U+p+o+n$ \item $M+e$ \item $\cdots$ \item $\cdots$ \end{enumerate} \end{multicols}

\end{document}

enter image description here

Display Name
  • 46,933