Usando \def para gerar valores booleanos verdadeiro/falso - Uso na função "Retomar" do pacote de tarefas

Usando \def para gerar valores booleanos verdadeiro/falso - Uso na função "Retomar" do pacote de tarefas

Estou tentando usar um \def(ou qualquer equivalente) para fornecer uma saída booleana, mas não consigo. A compilação abaixo resulta no seguinte erro:

\documentclass{amsart}
\usepackage{tasks}


\begin{document}

    \begin{tasks}(1)
        \task 1
        \task 2
        \end{tasks}

    \def \trueBool {true}

    \begin{tasks}[resume = \trueBool](1)
        \task 1
        \task 2
        \end{tasks}

\end{document}

É claro que substituir \trueBoolpor um valor literal 'verdadeiro', como em: \begin{tasks}[resume = true]funciona conforme o esperado.

Isso é necessário porque preciso passar uma variável verdadeiro/falso com base em outra condição sendo verdadeira em outro lugar.

Espero que alguém saiba como resolver esse problema!

Responder1

Você pode definir sua própria chave:

\documentclass{amsart}
\usepackage{tasks}

\ExplSyntaxOn
\keys_define:nn { tasks/list }
 {
  resume? .code:n  = \exp_args:Nne \keys_set:nn { tasks/list } { resume = #1 },
  resume? .default:n = \trueBool,
 }
\ExplSyntaxOff

\newcommand{\trueBool}{true}

\begin{document}

\begin{tasks}(1)
\task 1
\task 2
\end{tasks}

Some text in between

\begin{tasks}[resume?](1)
\task 1
\task 2
\end{tasks}

Some text in between

\renewcommand\trueBool{false}

\begin{tasks}[resume?](1)
\task 1
\task 2
\end{tasks}

\end{document}

insira a descrição da imagem aqui

informação relacionada