\def を使用してブール値の true/false 値を出力する - タスク パッケージの「Resume」関数での使用

\def を使用してブール値の true/false 値を出力する - タスク パッケージの「Resume」関数での使用

(または同等のもの)を使用してブール出力を生成しようとしています\defが、できません。以下の をコンパイルすると、次のエラーが発生します。

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

もちろん、\trueBool次のように文字通り「true」の値に置き換えると、\begin{tasks}[resume = true]期待どおりに機能します。

これは、他の場所で真である別の条件に基づいて変数 true/false を渡す必要があるために必要です。

誰かがこの問題を解決する方法を知っていることを願っています!

答え1

独自のキーを定義することもできます:

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

ここに画像の説明を入力してください

関連情報