某些编程语言使用标头保护来避免重复导入同一文件。以下是 LaTeX 中此场景的一个示例:假设我们在一个目录中header1.sty
有header2.sty
和。main.tex
内容header1.sty
:
% Define macros
内容header2.sty
:
% Something before this line
\usepackage{header1}
% Makes use of header1 macros
内容main.tex
:
\documentclass{article}
\usepackage{header1,header2}
\begin{document}
% Document body
\end{document}
那么在我看来它header1
被导入了两次。
以下是我的问题:
- 这样的重复导入会破坏任何东西吗(即导致编译错误)?
- 即使它不会破坏任何东西,实现头保护是否能通过让编译器减少无用的代码来加速编译?
- 是否有一种惯用的方法来实现 LaTeX 中的标题保护?
- 是否存在已知在重复导入时会损坏的现有软件包?如果有的话,可以做些什么?