在 xsim 中复制一些 exsheets 功能

在 xsim 中复制一些 exsheets 功能

最近一次 LaTeX 更新后,我的exsheets模板不再编译,所以我认为与其降级 TeX,不如直接升级我的模板。不幸的是,我很难从手册中提取我想要的信息。

我有两件事想实现。

  1. 该命令的新版本是什么\PrintSolutionsF{}?我使用它来记录我分发的作业的提交日期,但不记录模型解决方案的提交日期。我猜这\IfSolutionPrintF{}是后续操作,但这似乎只在模板环境中有效,在普通文本中无效。
  2. 我希望我的问题被编号,但解决方案不需要,因为我将每个解决方案放在其对应的问题之后。代码如下exsheets

    \DeclareInstance{exsheets-heading}{block-no-nr}{default}{
      attach = {
        main[l,vc]title[l,vc](0pt,0pt) ;
        main[r,vc]points[l,vc](\marginparsep,0pt)
      }
    }
    \RenewQuSolPair
      {question}[headings=block-subtitle]
      {solution}[headings=block-no-nr]
    

对应的代码是什么xsim

编辑:以下应该是我旧exsheets模板的一个最小工作示例,但我无法确认这一点,因为我无法再编译我的exsheets文件。我无法提供可编译的代码xsim,因为这就是我寻求帮助的原因。

\documentclass{article}
\usepackage{exsheets}


% Questions numbered but solutions not numbered
\DeclareInstance{exsheets-heading}{block-no-nr}{default}{
  attach = {
    main[l,vc]title[l,vc](0pt,0pt) ;
    main[r,vc]points[l,vc](\marginparsep,0pt)
  }
}
\RenewQuSolPair
  {question}[headings=block-subtitle]
  {solution}[headings=block-no-nr]

% True to show solutions or comment out/false to hide solutions
\SetupExSheets{solution/print=true}

\begin{document}
%%%Title. Shows due date when not showing solutions%%%%%%%
\hrule\vspace{1mm}
{\bf \PrintSolutionsF{Exercise Sheet No X}
  \PrintSolutionsT{Model Solutions Sheet No X} for
  XXXX \PrintSolutionsF{\ \\Due XX.XX.XXXX}}
\hrule
\vspace{5mm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{question}
  This is a sample numbered question.
\end{question}

\begin{solution}
  This is an unnumbered sample solution.
\end{solution}

\end{document}

答案1

如果打印了解决方案,则没有预定义的测试,因为xsim允许不同类型的练习类型,每种练习类型都有自己的解决方案集。但可以定义一个检查默认类型的命令(称为exercise):

\ExplSyntaxOn
\newcommand \ifprintsolution [2]
  { \xsim_if_solution_print:nTF {exercise} {#1} {#2} }  
\ExplSyntaxOff

为了获得无编号的解决方案,您需要先定义一个模板。这将执行以下操作:

\DeclareExerciseEnvironmentTemplate{no-number}
  {\subsection*{\XSIMmixedcase{\GetExerciseName}}}
  {}

您现在可以将它与 一起使用\xsimsetup{solution/template = no-number}

完整示例:

\documentclass{article}
\usepackage{xsim}

\ExplSyntaxOn
\newcommand \ifprintsolution [2]
  { \xsim_if_solution_print:nTF {exercise} {#1} {#2} }  
\ExplSyntaxOff

\newcommand\handindate[1]{%
  \ifprintsolution{}{This homework is due #1.}%
}

\DeclareExerciseEnvironmentTemplate{no-number}
  {\subsection*{\XSIMmixedcase{\GetExerciseName}}}
  {}

\xsimsetup{
  solution/template = no-number ,
  % uncomment to see the unnumbered solution (and have the hand-in date
  % disappear):
  % solution/print = true
}

\begin{document}

\handindate{6.\@ of December 2019}

\begin{exercise}
  some exercise
\end{exercise}
\begin{solution}
  the solution
\end{solution}

\end{document}

没有...

在此处输入图片描述

...或提供解决方案

在此处输入图片描述

相关内容