将选项传递给(类)加载包的正确方法

将选项传递给(类)加载包的正确方法

我用该类编写了一个文档book,并有一个文件( ) ,mainstyle.sty其中包含许多我使用的包(pdfx,,,等等)。lipsumplaceins\ldots

我最近开始试用tufte-book,收到了一些警告、错误和令人不快的消息。我已开始使用它,但我意识到需要花时间一点一点地调整它。我希望能够轻松切换类并轻松加载相应的包和选项。

这里的主要问题是该类tufte-book之前加载了几个包,因此如果我只是动态地更改该类,我的文件就会崩溃。

现在,我所拥有的主文件是:

%\documentclass[a4paper]{tuftebook}
\documentclass[12pt,a4paper]{book}
\usepackage{./inc/mainstyle}

\begin{document}
    text text text
\end{document}

我现在的想法是分成mainstyle.sty两个文件,并使用条件语句的混合\PassOptionsToPackage(灵感来自这些问题)的想法是有一个parameters.sty文件和一个load.sty文件,主文档修改如下:

\input{./inc/parameters}
%\documentclass[a4paper]{tuftebook}
\documentclass[12pt,a4paper]{book}
\input{./inc/load}

\begin{document}
    text text text
\end{document}

然后我会得到类似的东西:

%parameters.tex ---------
\PassOptionsToPackage{pdftex,pdfa,hidelinks}

和:

%% load.tex ------------
\makeatletter

\@ifclassloaded{book}{
    \usepackage{hyperref}
}{
    \@ifclassloaded{tufte-book}{
        % hyperref was already loaded
    }
}

\makeatother

这与本文提出的建议大致相同其他问题, 正确的?

但是感觉很麻烦,不知道是不是搞错了。另外,我对条件/宏等的理解还很有限。

这是正确的做法吗?

相关内容