当我调用集合时,导入的练习不会打印

当我调用集合时,导入的练习不会打印

我承诺建立一个练习数据库并将它们存储在子文件夹中。需要时,我会使用xsim包调用它们。

目前分类如下:

在此处输入图片描述

最后有 4 个difficulty.tex 文件。尝试使用标签但没有成功。

为了使文档中的调用更容易并且仅编译文档的一部分,我构建了两个文件:

  • 5M4_AlgebreFinanciere_CollectDeclaration.tex(在‘5M4_AlgebreFinanciere’中)
  • 5M4_AlgebreFinanciere_CollectExercises.tex (也)

所以如果我不需要编译这些部分,我可以取消注释导入。

.tex在这两个文件中,如果我必须更改名称、创建新文件夹等,我想用命令调用相应的文件,以使它更加灵活。

当我手动编写所有文件时,编译可以正常工作。但是当我使用类似以下方法时: \collectexercises{\ExOption_\ExPart_\ExSubPart_\ExDifficulty1}使用定义的命令来创建一条好路径,除了没有打印任何练习外,其他一切都正常。集合似乎以良好的方式声明,并且练习被收集(参见“Exercises_Generating_Folder”)。

我的问题是:为什么练习打印时的路径/名称写得正确,而当我使用时,虽然编译成功,却没有\command

在这里,我将项目简化为 MWE:

主.tex:

\documentclass[10pt,a4paper]{book}
\usepackage[verbose,clear-aux]{xsim}
\usepackage{import}

\xsimsetup%
{%
    path = {Exercises_Generating_Folder},   %%Avoid flooding of exercises files
}

%%Declaration exercices
\newcommand{\ExOption}{default}
\newcommand{\ExPart}{default}
\newcommand{\ExSubPart}{default}
\newcommand{\ExDifficulty}{Difficulty}

\import{5M4/AlgebreFinanciere/}{5M4_AlgebreFinanciere_CollectDeclaration.tex}

\begin{document}
\chapter{Algebre Financière}
\import{5M4/AlgebreFinanciere/}{5M4_AlgebreFinanciere_CollectExercises.tex}
    \printcollection{5M4_AlgebreFinanciere}
    \printsolutions*[collection=5M4_AlgebreFinanciere]
\end{document}

5M4/AlgebreFinanciere/5M4_AlgebreFinanciere_CollectDeclaration.tex

 %%Set up the commands to implement correctly this file
 \renewcommand{\ExOption}{5M4}
 \renewcommand{\ExPart}{AlgebreFinanciere}
 \renewcommand{\ExSubPart}{default}

 %%Declare Global Collection for the part
 \DeclareExerciseCollection{\ExOption_\ExPart}

 %%Declare a subpart of the Global Collection
 \renewcommand{\ExSubPart}{InteretsSimples}
 \DeclareExerciseCollection{\ExOption_\ExPart_\ExSubPart}    %%To declare Collection{5M4_AlgebreFinanciere_InteretsSimples}
 \DeclareExerciseCollection{\ExOption_\ExPart_\ExSubPart_\ExDifficulty1} %%And   Collection{5M4_AlgebreFinanciere_InteretsSimples_Difficulty1}

5M4/AlgebreFinanciere/5M4_AlgebreFinanciere_CollectExercises.tex

 %%Set up the commands to implement correctly this file
 \renewcommand{\ExOption}{5M4}
 \renewcommand{\ExPart}{AlgebreFinanciere}
 \renewcommand{\ExSubPart}{default}


 \collectexercises{\ExOption_\ExPart}         %%Open Global collection.
  \renewcommand{\ExSubPart}{InteretsSimples}
  \collectexercises{\ExOption_\ExPart_\ExSubPart}      %%Open Global subpart collection.
   \collectexercises{\ExOption_\ExPart_\ExSubPart_\ExDifficulty1} %%Open Global subpart collection for the corresponding difficulty.
    \subimport*{\ExSubPart/}{\ExOption_\ExPart_\ExSubPart_\ExDifficulty1.tex} %%
                   %%Import the files where corresponding exercises are.
                   %%This file is in the folder 'AlgebreFinanciere/InteretsSimples'
   \collectexercisesstop{\ExOption_\ExPart_\ExSubPart_\ExDifficulty1}
  \collectexercisesstop{\ExOption_\ExPart_\ExSubPart}
 \collectexercisesstop{\ExOption_\ExPart}

5M4/AlgebreFinanciere/InteretsSimples/5M4_AlgebreFinanciere_InteretsSimples_Difficulty1.tex

\begin{exercise}
    Can you print me ?
\end{exercise}
\begin{solution}
    No, you can't !
\end{solution}

谢谢您的帮助或建议!

编辑:问题来自命令\ExOption\ExPart集合名称。在.aux文件中,集合名称中有空格或括号(如果我在使用命令后添加它们),这不允许我用正确的名称调用集合。我正在寻找一种解决方案来使这些命令可用。

答案1

这个问题已经解决了邮政

问题来自于当我在和中调用它们时\ExOption和的使用ExPart没有扩展。通过查看使用以下名称声明集合的文件进行跟踪:\DeclareExerciseCollection{\ExOption_\ExPart}\collectexercises{\ExOption_\ExPart}.aux{collection:\ExOption _\ExPart }{}

所以我无法调用该集合并以错误的名称将其打印在我的文档中。

感谢 David Carlisle 和 Frougon 为扩大命令提供的帮助。

相关内容