Uso de \def para generar valores booleanos verdadero/falso - Uso en la función "Reanudar" del paquete de tareas

Uso de \def para generar valores booleanos verdadero/falso - Uso en la función "Reanudar" del paquete de tareas

Estoy intentando utilizar a \def(o cualquier equivalente) para dar una salida booleana, pero no puedo hacerlo. La compilación de lo siguiente da como resultado el siguiente error:

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

Por supuesto, reemplazarlo \trueBoolcon un valor "verdadero" literal, como en: \begin{tasks}[resume = true]funciona como se esperaba.

Esto es necesario ya que necesito pasar una variable verdadero/falso en función de que otra condición sea verdadera en otro lugar.

¡Espero que alguien sepa cómo resolver este problema!

Respuesta1

Podrías definir tu propia clave:

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

ingrese la descripción de la imagen aquí

información relacionada