如何安全地使用 .lco 文件中的包?

如何安全地使用 .lco 文件中的包?

我想创建一个.lco 文件来定制我的scrlttr2文档的一些内容。

我需要更改页面尺寸(如底部边距)并包含图形。我确实知道您不应该在 .lco 文件中使用\usepackage或 ,\RequirePackage因为它们可以在 之后使用\begin{document}

因此,我尝试检查 .lco 文件中是否之前已包含该包,如果没有,则提供有用的警告。但是,尝试此方法后,此方法仍然不起作用\begin{document}...

我如何检查以前加载的包以便在 .lco 文件中向用户提供有用的错误消息?

\documentclass{scrlttr2}

\begin{filecontents*}{mylco.lco}
    \ProvidesFile{mylco}[2023-04-21 my lco file]
    
    \@ifpackageloaded{geometry}{
        \newgeometry{bottom=28mm}}{}
\end{filecontents*}

\begin{document}
    \LoadLetterOption{mylco}
\end{document}

答案1

它不适用于旧版 LaTeX 发行版。

更新到 2022 或更高版本将允许\@ifpackageloaded之后进行调用\begin{document},因此可以轻松检查。

相关内容