\subimport* 的不良行为

\subimport* 的不良行为

我使用该包import以以下方式导入几个文件来编写一本书:

我将每一章放在一个单独的文件夹中,其中我放了一个课程文件和一个带解决方案的练习文件,称为ChapterOneExos.tex。练习是使用tcolorbox包制作的,我将其放在 中subfolder Exos,位于每个章节的文件夹中。该文件ChapterOneExos.tex包含该章的练习...

我使用一个Main文件来导入所有这些材料,并且只为一个章节编写它,该章节仅包含此 MWE 的练习:

我综合起来:在文件夹中Book,我放置了文件,以及包含文件的Main.tex文件夹,以及包含练习文件的“子文件夹”。ChapterOneChapterOneExos.texExos

文件Main.tex

\documentclass{book}

\usepackage{import}

\usepackage[most]{tcolorbox} 

\NewTColorBox[auto counter,number within=chapter]{exo}{m+O{}}{%
    enhanced,
    breakable,
%%    sharp corners,
    colframe=green!20!black,
    colback=yellow!10!white,
    coltitle=green!40!black,
    fonttitle=\bfseries,
    underlay={\begin{tcbclipinterior}
        \shade[inner color=green!80!yellow,outer color=yellow!10!white]
            (interior.north west) circle (2cm);
        \end{tcbclipinterior}},
    title={Exercise~\thetcbcounter:},
    label={exo:#1},
    segmentation style={double=white,draw=green!20!black,double distance=1pt,solid},
    attach title to upper=\par,
    colback=white,
    after upper={\vspace*{5mm}\par\textcolor{green!40!black}%
            {\bfseries Solution of the exercise \ref{exo:#1}}},
    lowerbox=visible,
    savelowerto=Solutions/Solutions_Chap\thechapter/#1-Sol.tex,
    record={\string\solution{#1}{Solutions/Solutions_Chap\thechapter/#1-Sol.tex}},
    #2
    }

\begin{document}

\setcounter{chapter}{1}
\import{ChapterOne/}{ChapterOneExos}

\end{document}

ChapterOne我把练习放在了文件夹中Exos,然后文件ChapterOneExos.tex如下:

\section{Exercises of the chapter 1}
\subimport{Exos/}{ExoOne}
\subimport{Exos/}{ExoTwo}

这两项练习是:

\begin{exo}{labelone}
Exercise one
\tcblower
The solution of exercise one
\end{exo}

\begin{exo}{labeltwo}
Exercise two
\tcblower
The solution of exercise two
\end{exo}

现在一切都好了!编译给出了合适的结果,如下所示:

在此处输入图片描述

现在,我们可以在包的文档中读到import以下内容:

“为了避免在导入文件时搜索 TEXINPUTS 路径,请使用命令的‘星号’版本:“\import*” 和 “\subimport*””

当我们有多个文件时这会更有用....

但是当我使用该命令时\subimport*,练习的下半部分没有出现!。当我使用它时可以看到结果:

在此处输入图片描述

我如何使用该命令\subimport*并获得如第一张图像一样的良好结果?

答案1

使用最新的 import.sty,其中*修饰符不执行任何操作,并且已弃用。如果您坚持使用旧版本的 import.sty,请避免使用,\import*除非您与 中安装的文件名有特定冲突TEXINPUTS,即使如此,最好还是更改文件名。

对于背景,LaTeX 中的文件搜索通常优先考虑当前主目录,然后是安装,最后是用户设置的输入路径。\import*创建该变体是为了允许访问名称与已安装文件冲突的个人文件,但只能由阻止访问到已安装的文件。正如您可能猜到的,当需要按需加载文件以加载新字体等时,这会崩溃。

在版本 6 中,导入重新定义了一些 LaTeX 内部结构以(暂时)改变搜索优先级,从而无需进行变*体。

您还没有说,但是您是否创建了如Solutions/Solutions_Chap1主文件中指定的目录?这看起来像是一个问题。

相关内容