OrnementsADF 和 babelbib 字体问题

OrnementsADF 和 babelbib 字体问题

考虑以下代码:

\documentclass[11pt,a4paper]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{babelbib}
\usepackage{lipsum}
\usepackage{adforn}
\pdfmapfile{+OrnementsADF.map}

\begin{document}
\part{Part}
\lipsum
\end{document}

当包含该包时babelbib,它会抛出以下警告: 问题

如果没有babelbib,则不会引发任何警告。

如何解决这个问题?

答案1

正如 egreg 所说,警告并不表示任何问题。它们只是告诉您该字体在特定编码中不可用,因此 LaTeX 已替换了后备字体。这很好,因为预计该字体在该编码中不可用,因此它正在替换一些合适的字体。

这是一个简单的例子:

\documentclass[french]{book}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{babelbib}
\usepackage{adforn}

\begin{document}
ABC
\end{document}

请注意,您无需手动添加地图文件,除非您手动安装了软件包但未能正确更新地图文件。也就是说,如果您需要手动添加地图文件,则说明您的安装存在问题。(修复起来可能相对简单,但无论如何都是有问题。)

例外:如果您使用与.tex文档位于同一目录中的所有包文件,则在文档中添加地图文件可能是可行的方法。但我无法想象您为什么要这样做,而且我非常确定在这种情况下您需要在加载包之前添加地图。

奇怪的是,警告仅在第二次及后续编译运行时生成。删除该.aux文件会删除后续编译的警告。没有理由这样做,因为警告并不表示有什么问题,但我只是好奇。

事实上,这个例子还可以更简洁。下面这个就足够了:

\documentclass[french]{book}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{babelbib}
\newcommand{\Pifont}[1]{\fontfamily{#1}\fontencoding{U}%
\fontseries{m}\fontshape{n}\selectfont}
\Pifont{OrnementsADF}

\begin{document}
ABC
\end{document}

事实上,以下内容就足够了:

\documentclass[french]{book}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{babelbib}
\newcommand{\Pifont}[1]{\fontfamily{#1}\fontencoding{U}%
\fontseries{m}\fontshape{n}\selectfont}
\Pifont{pzd}

\begin{document}
ABC
\end{document}

因此不存在问题是在 之前adforn调用的结果。\Pifont\begin{document}

虽然警告不是问题,但我不确定这是否是我不应该做的事情,即我不确定它在某些情况下是否真的会导致问题。

我也不确定为什么这似乎只是某些语言的问题。这不是babelbib问题本身。如果我使用british而不是french,则不会收到警告。

因为\Pifont{}之前已经调用过,所以我认为文档开头的活动字体是装饰字体。但我不完全确定在文档开头执行的代码在babelbib做什么。例如,它似乎正在执行类似的东西\AtBeginDocument{... \AtBeginDocument{...}...},我不知道嵌套有什么用处。在文档开头还有它执行的代码,french但没有执行其他语言的代码。但它在第一次和第二次运行时都执行了所有这些操作,所以在这种情况下我预计会出现一致的警告。

恐怕这包含的问题比答案还多。如果 egreg 不那么确定,我会忍不住说不adforn应该\Pifont{}在之前调用\begin{document}。不是因为您看到的警告是个问题,而是因为我担心这样做会影响用于排版数字的编码,并且可能产生其他不良副作用。(LaTeX 正在寻找 OT1 而不是 T1。更改包加载顺序会以我不喜欢的方式更改它正在寻找的编码。虽然我不确定这是否是造成adforn其不忠诚的原因。)

但既然 Egreg 如此确定,那么我的担心肯定是没有根据的……?

相关内容