Verwenden von \def zum Ausgeben boolescher True/False-Werte - Verwendung in der Funktion „Resume“ des Tasks-Pakets

Verwenden von \def zum Ausgeben boolescher True/False-Werte - Verwendung in der Funktion „Resume“ des Tasks-Pakets

Ich versuche, mit a \def(oder einem gleichwertigen Wert) eine boolesche Ausgabe zu erhalten, aber das gelingt mir nicht. Die Kompilierung des Folgenden führt zu folgendem Fehler:

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

Natürlich funktioniert das Ersetzen \trueBooldurch einen wörtlichen „wahren“ Wert, wie in: \begin{tasks}[resume = true]wie erwartet.

Dies ist erforderlich, da ich eine Variable „true“/„false“ übergeben muss, basierend auf einer anderen Bedingung, die an einer anderen Stelle erfüllt ist.

Ich hoffe, jemand weiß, wie man dieses Problem löst!

Antwort1

Sie können Ihren eigenen Schlüssel definieren:

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

Bildbeschreibung hier eingeben

verwandte Informationen