UTF8 在 TeXLive 2010 中的 LuaTeX 中不起作用

UTF8 在 TeXLive 2010 中的 LuaTeX 中不起作用

我一直在尝试使用 TeXLive 2010 安装中的 lualatex 设置文档。不幸的是,非 ASCII 字符被遗漏在输出中。以下最小文档生成一个没有警告或错误的 PDF,但它只包含第二行。使用 inputenc 包会导致错误Unicode char ... not set up for use with LaTeX.

\documentclass{minimal}
\begin{document}
číčí
abcd
\end{document}

pdflatex 可以很好地处理文档。我的 lualatex 版本是

This is LuaTeX, Version beta-0.60.2-2010071421 (Web2C 2010) (rev 3736)

谢谢您的指点。

编辑:为了获得加分,我该如何使用 Bitstream Charter 字体?我使用 mathdesign 包,但使用它们时(甚至在加载fontspecfontenc和/或 时luaotfload),非 ASCII 字符会丢失 :/

\usepackage[bitstream-charter]{mathdesign}

答案1

您实际上需要加载包含这些字符的字体。默认情况下,lualatex 使用计算机现代字体。您可以使用包选择字体fontspec。只需加载fontspec而不明确设置字体,lualatex 就会使用包含字符的拉丁现代字体。

\documentclass{minimal}
\usepackage{fontspec}
\begin{document}
číčí
abcd
\end{document}

给出拉丁现代

您可以使用包加载任何 OTF 或 TTF 字体fontspec。有关详细信息,请参阅fontspec 手册我不知道是否有支持 Unicode 的 Bitstream Charter 版本,但你可以使用查里斯·西尔,其基于此:

\documentclass{minimal}
\usepackage[charter]{mathdesign}  % sets the math font
\usepackage{fontspec}
\setmainfont{Charis SIL}          % sets the document font
\begin{document}
číčí abcd $abcd$
\end{document}

Charis SIL 和数学设计

请注意,您必须mathdesign先将其包含在内\setmainfont,以便它不会覆盖文档字体。

答案2

除非您想享受 Unicode 和 OpenType 的好处,否则您不能使用任何字体包fontspec。免费提供的 Charter 版本是非 Unicode Type 1 字体,因此您不应该使用它。例如,使用基于 Charter 的 Charis SIL。

相关内容