如何导入*而不破坏其他包?

如何导入*而不破坏其他包?

我正在努力设置包进口正确。以下是我正在做的事情:

主文件包含另一个名称非常常见的文件。为了确保加载了正确的文件,我使用\进口*代替\进口

由于某种原因,这破坏了安姆斯字体。我收到如下所示的警告,并且输出文件仅包含一个简单的A

谁能帮我吗?


./main.tex

\documentclass{article}

\usepackage{amsfonts}
\usepackage{import}

\begin{document}
  \import*{./}{generic_name.tex}
\end{document}


./通用名称.tex

$\mathfrak{a}$


警告

(./generic_name.tex

LaTeX Font Warning: Font shape `U/msa/m/n' undefined
(Font)              using `U/cmr/m/n' instead on input line 1.


LaTeX Font Warning: Font shape `U/msb/m/n' undefined
(Font)              using `U/cmr/m/n' instead on input line 1.


LaTeX Font Warning: Font shape `U/euf/m/n' undefined
(Font)              using `U/cmr/m/n' instead on input line 1.

) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./main.aux)

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

 )</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>

答案1

我认为这是由于 LaTeX 处理数学字体的延迟方法造成的。因此,使用\mathfrakinsidegeneric_name.tex会触发输入ueuf.fd(和其他字体定义文件)。但import包会强制导入的文件在给定目录中查找其输入文件,但该目录ueuf.fd不存在。

我不认为有完整的解决方案,除非重写import.sty(或者可能amsfonts.sty),但这个特殊的问题可以通过在序言中加入以下内容来解决,可能在之后\usepackage{amsfonts}

\input{ueuf.fd}
\input{umsa.fd}
\input{umsb.fd}

相关内容