当我尝试使用breqn
问题答案建议的包时
它破坏了一大堆不相关的方程式(未使用其功能的方程式),包括\mf
我之前自己定义的控制序列的定义。
有没有办法可以限制声明的范围\usepackage
,以使其(积极和消极)影响仅限于文档的特定部分?
我尝试将其放入环境中,但出现以下错误:
! LaTeX Error: Can be used only in preamble.
答案1
对于一些小程序包来说,这也许是可能的,但一般答案是否定的。特别是,breqn
及其配套程序包flexisym
对数学公式的正常设置进行了非常广泛的更改,这些更改在某些情况下是全局的;因此,即使可以将它们加载到组中,更改也会在外层执行。许多其他程序包也是如此。
不容忽视的是,许多在包中使用的命令之后被禁用\begin{document}
,这使得在文档开始后加载包的任务变得相当困难。
答案2
\usepackage
如果您不使用,而是使用\input
,则可以限制包的范围。这将需要重新定义一些命令并修补其他命令,但从技术上讲应该是可行的。例如
\documentclass{article}
\begin{document}
\begingroup
\makeatletter
\renewcommand{\usepackage}[1]{\input{#1}}
\renewcommand{\NeedsTeXFormat}[1]{}
\renewcommand{\ProvidesPackage}[1]{}
\usepackage{fixltx2e.sty}
\makeatother
\endgroup
\end{document}