如何在 LaTeX3 中重置键值

如何在 LaTeX3 中重置键值

在下面的 MWE 中,我如何重置title分配给 的键的值\l__lecture_title_tl,以便 的第三个实例\lecture不会打印A title

\documentclass{article}

\usepackage{lipsum}
\usepackage{xparse}

\ExplSyntaxOn

\keys_define:nn { lecture-notes } {
  title .tl_set:N = \l__lecture_title_tl,
}

\NewDocumentCommand{ \lecture }{ O{} }{
  \keys_set:nn { lecture-notes } { #1 }

  \tl_set:Nn \l__section_title_tl {
    \tl_if_empty:NF \l__lecture_title_tl { \l__lecture_title_tl }
  }

  \section{\l__section_title_tl}
}

\ExplSyntaxOff

\begin{document}

\lecture
\lipsum[1]

\lecture[title={A title}]
\lipsum[2]

\lecture % <-- this still prints 'A title'
\lipsum[3]

\end{document}

在此处输入图片描述

答案1

鉴于你的 定义,当不使用可选参数时,\lecture你会得到,因此自然不会重置任何键。相反,你想传递。所以你需要。\keys_set:nn { lecture-notes } {}title={}\NewDocumentCommand{ \lecture }{ O{title={}} }{...

相关内容