使用 IPA 和希腊语编写的西班牙语文档,在 PDFLaTeX 和 XeLaTeX 中失败

使用 IPA 和希腊语编写的西班牙语文档,在 PDFLaTeX 和 XeLaTeX 中失败

我将一些 HTML 格式的文档转换为 LaTeX 格式,以便打印效果更好。虽然这些文档的主要语言是西班牙语(还有一些是英语),但也有其他语言的片段,包括不使用 Latin-1 的语言,例如希腊语和 IPA 扩展。

这是我正在做的一个最小工作示例。

\documentclass[12pt]{book}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
\Large
El término democracia viene del griego \textit{δημοκρατία} 
(pronunciado \textsf{/ðimokɾatía/}) y que significa gobierno
del pueblo.
\end{document}

该文档以UTF-8正确编码(我已经使用低级工具检查过)。

当尝试使用进行编译时,pdflatex我针对每个非 latin-1 字符收到以下错误。

! Package inputenc Error: Unicode char \u8:δ not set up for use with LaTeX.

事实上,这些字形并没有出现在文档中:民主-pdflatex

据称xelatex应该可以纠正这个问题,因为它据称是支持 Unicode 的,但是,使用相同的代码我得到了以下错误:

! Package inputenc Error: Unicode char \u8:érm not set up for use with LaTeX.
! Package inputenc Error: Unicode char \u8:ðimo not set up for use with LaTeX.
! Package inputenc Error: Unicode char \u8:ía/ not set up for use with LaTeX.

(它不会报告希腊语或 IPA 字符中的错误,只会报告 Latin-1 扩展字符中的错误)

这些报告的字符组和希腊字符都没有出现在生成的文档中:民主-xelatex

我已经将xelatex错误归咎于inputenc包。如果我注释掉该包,文档就可以顺利编译( 也是如此lualatex)。 仍然希腊文和 IPA 字符不会出现。democracia-xelatex 无需输入

(当然,如果没有inputencpdflatex 编译,虽然没有报告任何错误,但表现也不太好,我推测它将每个字节映射到 T1 编码):democracia-pdflatex 无需输入

所以,实际上有两个问题:

  1. 如何使用pdflatex和正确地让希腊语和 IPA(以及可能的其他非拉丁字符)出现在我的文档机器人中(xe/lua)latex

  2. 我怎样才能屏蔽 ,inputenc以便它可以加载pdflatex,但不加载(xe/lua)latex

答案1

您必须教 LaTeX 如何切换到希腊语和 IPA。此外,Unicode 到 IPA 的翻译并不完整,尤其是 ɾ(U+027E 带有鱼钩的拉丁小写字母 R)默认情况下不可用。

greek通过加载模块解决了使用希腊语的问题babel;使用该包支持 IPA tipa;可以使用添加缺失的翻译newunicodechar

\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek,spanish]{babel}
\usepackage{tipa}

\usepackage{newunicodechar}
\newunicodechar{ɾ}{\textfishhookr}

\begin{document}
El término democracia viene del griego
\textit{\foreignlanguage{greek}{δημοκρατία}}
(pronunciado \textsf{\textipa{/ðimokɾatía/}})
y que significa gobierno del pueblo.
\end{document}

在此处输入图片描述

如果您想要一个可以同时使用和编译的文档pdflatex,则xelatex应该为构造定义命令,并根据所使用的引擎提供不同的定义。这里有一种方法。

\documentclass[12pt]{book}
\usepackage{ifxetex}

\ifxetex
  \usepackage{fontspec}
  \setmainfont[Ligatures=TeX]{Linux Libertine O}
  \setsansfont[Ligatures=TeX]{Linux Biolinum O}
\else
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{tipa}
  \usepackage{newunicodechar}
  \newunicodechar{ɾ}{\textfishhookr}
\fi

\usepackage[greek,spanish]{babel}

\newcommand{\GR}[1]{\foreignlanguage{greek}{#1}}

\ifxetex
  \newcommand{\xIPA}[1]{\mbox{\textsf{/#1/}}}
\else
  \newcommand{\xIPA}[1]{\textsf{\textipa{/#1/}}}
\fi

\begin{document}
El término democracia viene del griego 
\textit{\GR{δημοκρατία}}
(pronunciado \xIPA{ðimokɾatía})
y que significa gobierno del pueblo.
\end{document}

相关内容