不使用 fontspec 的 XeLaTeX 上的 TeX 重音

不使用 fontspec 的 XeLaTeX 上的 TeX 重音

我正在尝试将 XeLaTeX 与不带 fontspec 的 BibTeX8 一起使用,但我的参考书目和文件一样被错误地强调。

\begin{filecontents}{\jobname.bib}
@Book{Aristoteles2000mf,
  Title                    = {Metaf{\'i}sica},
  Author                   = {Arist{\'o}teles},
  Publisher                = {Gredos},
  Year                     = {2000},
  Address                  = {Madrid},
  Note                     = {Trad. Tom{\'a}s Calvo Mart{\'i}nez},
}
\end{filecontents}
\documentclass{article}
\usepackage[EU1]{fontenc}
\bibliographystyle{plain}
\begin{document}
\nocite{*}
\bibliography{\jobname}
\end{document}

错误的输出是,在点 i 上有重音符号没有点

是否有一个解决办法可以修复输出而不用重新编码我所有的旧 bib 文件?

答案1

像您这样的命令\'i是由 xunicode 提供的(通常由 fontspec 加载)。您可以自行加载:

\documentclass{article}
\usepackage[EU1]{fontenc}
\newcommand\UTFencname{EU1}
\usepackage{xunicode}

\begin{document}
Metaf{\'i}sica,
\end{document}

在此处输入图片描述

答案2

首先,您不应该将 BibTeX8 与 UTF-8 文件一起使用。

我认为没有必要用 和 来做杂技fontencxunicode让我们运行您的文件,假设该.bbl文件尚未创建,因此不会发生任何错误。

我们收到一些来自 LaTeX 的警告:

LaTeX Font Warning: Font shape `EU1/cmr/m/n' undefined
(Font)              using `EU1/lmr/m/n' instead on input line 23.

LaTeX Font Warning: Font shape `EU1/cmr/bx/n' undefined
(Font)              using `EU1/cmr/m/n' instead on input line 27.

如果加载了,则会添加另一个.bbl

LaTeX Font Warning: Font shape `EU1/cmr/m/it' undefined
(Font)              using `EU1/cmr/m/n' instead on input line 5.

(行号可能不一致)。这是什么意思?很简单:EU1编码建立了字体替换

\DeclareErrorFont{EU1}{lmr}{m}{n}{10}
\DeclareFontSubstitution{EU1}{lmr}{m}{n}

因此 LaTeX 将使用lmr系列。然而,这是仅有的替换规则,因此您将不会得到粗体、斜体、小型大写字母、无衬线字体等等。

\expandafter\show\the\font如果你在文件中插入以下行,\begin{document}编译将停止并显示以下消息

> \EU1/lmr/m/n/10=select font "[lmroman10-regular]:mapping=tex-text".
<inserted text> \EU1/lmr/m/n/10 

l.25 \expandafter\show\the\font

现在,改成\usepackage[EU1]{fontenc}\usepackage{fontspec}你将不会收到任何警告,并且编译将停止并显示

> \EU1/lmr/m/n/10=select font "[lmroman10-regular]:mapping=tex-text".
<inserted text> \EU1/lmr/m/n/10 

l.25 \expandafter\show\the\font

并且没有其他字体警告。

寓意在于,加载fontspec完全按照您的意愿进行,无需任何技巧。由于fontspec自动加载,因此在运行时转换为xunicode没有任何问题。\'ií

相关内容