xsim 和“条件”打印

xsim 和“条件”打印

我想知道这个xsim包是否可以实现以下功能:

  • 可以使用以下命令创建的空间\blank[width=4.8\linewidth,linespread=1.5]{}(如手册中所述)不是solution/print若设置为,则打印true
  • 仅当选择了特定标签时,才能打印文档中非问题的部分吗?

换句话说,我想实现以下目标:

\documentclass{article}
\usepackage{xsim}
\xsimsetup{
solution/print = true,
tags = A
}

\begin{document}

% This part would be printed only if the tag A was selected.    
\somecommand{Instruction for A} 

\begin{exercise}[tags={A, B}]
    Tell me your mood
% Those lines would *not* be printed if solution/print is set to true.
\blank[width=4.8\linewidth,linespread=1.5]{} 
\end{exercise}

\end{document}

我已阅读过文档但无法弄清楚这是否可行。

答案1

目前没有用户命令来检查是否已设置标签,但添加标签很容易。我会在下一个版本中添加一些内容。

如果您想检查解决方案是否已打印,请使用\IfSolutionPrintTF或其同类之一:

\documentclass{article}
\usepackage{xsim}

\xsimsetup{
  solution/print = true,
  tags = A
}

\ExplSyntaxOn
% v0.11 will contain some command like this:
\NewDocumentCommand \IfTagSetTF {m+m+m}
  { \seq_if_in:NnTF \l__xsim_chosen_tags_tags_seq {#1} {#2} {#3} }
\NewDocumentCommand \IfTagSetT {m+m}
  { \IfTagSetTF {#1} {#2} {} }
\NewDocumentCommand \IfTagSetF {m+m}
  { \IfTagSetTF {#1} {} {#2} }
\ExplSyntaxOff

\begin{document}

\IfTagSetT{A}{Instruction for A} 

\begin{exercise}[tags={A, B}]
  Tell me your mood
  \IfSolutionPrintT{\par\blank[width=4.8\linewidth,linespread=1.5]{} }
\end{exercise}

\end{document}

相关内容