在下面的 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={}} }{...