保存 .aux 文件的版本

保存 .aux 文件的版本

我想使用 .aux 文件的特定版本。因此我想保存此版本以供最终用于包中xr。有没有办法完成这项任务?

请注意,这个问题的根源来自tcolorbox我用来制作包含上半部分的练习和包含上半部分标签的解决方案的下半部分的包。这可以通过上半部分的选项来解决,据我所知,这个选项并不存在,类似于选项tcblower=invisible

问题的起源是使用相同的以下文件制作练习和解决方案:

\documentclass{book}

\usepackage{etoolbox}
\usepackage{import}
\usepackage{lipsum}


\usepackage[most]{tcolorbox}

\NewTColorBox[auto counter]{exercise}{m+O{}}{%
    enhanced,
    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);
        \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}]
            (interior.south west) grid (interior.north east);
        \end{tcbclipinterior}},
    title={Exercise~ \thetcbcounter:},
    label={exercise:#1},
    attach title to upper=\quad,
    lowerbox=ignored,
    savelowerto=solutions/Solution-#1.tex,
    record={\string\solution{#1}{solutions/Solution-#1.tex}},
    #2
}

\NewTotalTColorBox{\solution}{mm}{%
    enhanced,
    breakable,
    colframe=red!20!black,
    colback=yellow!10!white,
    coltitle=red!40!black,
    fonttitle=\bfseries,
    underlay={\begin{tcbclipinterior}
        \shade[inner color=red!50!yellow,outer color=yellow!10!white]
            (interior.north west) circle (2cm);
        \draw[help lines,step=5mm,yellow!80!black,shift={(interior.north west)}]
            (interior.south west) grid (interior.north east);
        \end{tcbclipinterior}},
    title={Solution of Exercise~\ref{exercise:#1}:},
    phantomlabel={solution:#1},
    attach title to upper=\par,
}{\input{#2}}

\newtoggle{Exos}            %% Exercise or solution

\toggletrue{Exos}   
\togglefalse{Exos}


\newcommand\printExoSol[1]{\iftoggle{Exos}{\import{exercises/}{#1}}{\solution{#1}{solutions/Solution-#1.tex}}}
%% Produces upper part if true and lower part if false

\usepackage{lastpage}

\begin{document}
The page \thepage \ of the total number of \pageref{LastPage} pages

\printExoSol{Exo1}

\end{document}

该命令将选项下的\printExoSol{Exo1}文件完整编译,而选项下的文件仅编译其下半部分(即解决方案)。我将文件放在子文件夹中,并将其下半部分放在子文件夹中。Exo1\toggletrue{Exos}\togglefalse{Exos}Exo1exercisessolutions

Exo1我给出了子文件夹的文件exercises

\begin{exercise}{Exo1}[coltitle=cyan!80!black]
Exercise with label
\begin{equation}
\label{Eqlabel}
\end{equation}
\tcblower
Solution with reference \eqref{Eqlabel}
\vspace*{2cm}

\lipsum[1]
\end{exercise}

通过这种方法,我可以使用此文件生成第一个选项下的练习,以及第二个选项下的练习的解决方案。

但是在连续编译时存在标签丢失的问题:在该选项下\toggletrue{Exos}我获得了以下文件:

在此处输入图片描述

在该选项下,\togglefalse{Exos}我在第一次编译中获得了以下文件,其中标签是正确的,但页数不正确:

在此处输入图片描述

然后进行第二次编译,其中标签丢失并且页数正确:

在此处输入图片描述

相关内容