2

I would like to use a command bitcol (see below) with a tasks environment, but the following code give an error. How can I fix it ?

\documentclass[a4paper]{book}
\usepackage{tasks}
\usepackage{fontawesome}

\NewTasksEnvironment[style=itemize,label=\faCaretRight]{itcol}[\item] % \newcommand{\bitcol}[1][2]{\begin{itcol}(#1)} \newcommand{\eitcol}{\end{itcol}} % \begin{document}

% OK \begin{itcol}(3) \item 1 \item 2 \item 3 \item 4 \end{itcol}

% KO \bitcol[3] \item 1 \item 2 \item 3 \item 4 \eitcol

\end{document}

egreg
  • 1,121,712
jowe_19
  • 939

1 Answers1

5

It cannot work this way. In order to do its job, the defined itcol environment has to explicitly see \end{itcol}.

I see no real reason to type

\bitcol[3]
...
\eitcol

instead of

\begin{itcol}(3)
...
\end{itcol}

If your aim is to use a standard optional argument, you can do as follows. But don't use the not recommended way.

\documentclass[a4paper]{book}
\usepackage{tasks}
\usepackage{fontawesome}

\NewTasksEnvironment[style=itemize,label=\faCaretRight]{itcolinner}[\item]

\NewDocumentEnvironment{itcol}{O{2}+b} {\begin{itcolinner}(#1)#2\end{itcolinner}} {}

%%% this part is for the not recommended way \NewDocumentCommand{\bitcol}{O{2}}{\dobitcol{#1}} \newcommand{\dobitcol}{}% for safety \def\dobitcol#1#2\eitcol{\begin{itcolinner}(#1)#2\end{itcolinner}} %%% end of code for the not recommended way

\begin{document}

% recommended way \begin{itcol}[3] \item 1 \item 2 \item 3 \item 4 \end{itcol}

% NOT RECOMMENDED WAY \bitcol[3] \item 1 \item 2 \item 3 \item 4 \eitcol

\end{document}

enter image description here

egreg
  • 1,121,712