我承诺建立一个练习数据库并将它们存储在子文件夹中。需要时,我会使用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 为扩大命令提供的帮助。