这是移动\bool_new:N \l_is_answer_bool
位置后的代码
\documentclass{ctexart}
\usepackage{xparse,enumitem}
\ExplSyntaxOn
\bool_new:N \l_only_show_answer_bool
\bool_new:N \l_is_answer_bool
\bool_set_false:N \l_only_show_answer_bool%想通过这个bool来只显示答案
\seq_new:N \l_answer_seq
\NewDocumentCommand{\answer}{+m}{
\seq_gput_right:Nn \l_answer_seq{#1}
}
\NewDocumentEnvironment{ceshi}{O{} +b}{%
\bool_if:NTF \l_only_show_answer_bool
{
\bool_set_false:N \l_is_answer_bool
\tl_map_inline:nn {#2}
{
\bool_if:NTF \l_is_answer_bool
{
\answer{##1}
\bool_set_false:N \l_is_answer_bool
}
{
\str_compare:nNnT {\tl_to_str:n {##1}} = {\tl_to_str:n {\answer}}
{
\bool_set_true:N \l_is_answer_bool
}
}
}
}
{
\UseHook{env/enumerate/before}%
\UseHook{env/enumerate/begin}%
\enumerate[#1]%
#2
\endenumerate%
\UseHook{env/enumerate/end}%
\UseHook{env/enumerate/after}%
}
}{}
\AtEndDocument{
\newpage
\begin{flushleft}
这是答案
\end{flushleft}
\seq_map_inline:Nn \l_answer_seq{
\noindent
#1
\par
}
}
\ExplSyntaxOff
\begin{document}
\begin{ceshi}[resume]
\item 这是第一个\answer{答案1}
\item 这是第二个\answer{答案2}
\end{ceshi}
\end{document}
问 请问如何让这个代码只显示答案