我正在使用 LaTeX beamer 创建德语演示文稿。
我读过关于 Umlaute 的这个答案:德文字符无法转换为 PDF
但我仍然有一些问题。
这是我的 LaTeX 文档:
\documentclass[aspectratio=169]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\begin{document}
\section{äöüßÄÖÜ "a"o"u"s"A"O"U}
\begin{frame}{ä ö ü ß Ä Ö Ü "a "o "u "s "A "O "U}
\tableofcontents
\Huge
ä ö ü ß Ä Ö Ü "a "o "u "s "A "O "U
\end{frame}
\end{document}
这是使用 LuaLaTeX 翻译后的 PDF:
如您所见,存在两个问题:
- UTF-8
ß
始终被解析为 SS,而所有其他 Umlaute 都可正确呈现。 - PDF 内容视图永远无法正确呈现 UTF-8 变音符。
我的乳胶版本是:
$ lualatex --version
This is LuaTeX, Version beta-0.80.0 (TeX Live 2015/Debian) (rev 5238)
除了将所有变音符号改为其原有的"x
形式外,我还能怎样解决变音符号问题?
[编辑] 这里给出的答案使用 LuaTeX 替代 pdfTeX解决了这个问题,但没有明确解决“变音符号”问题,所以我无法找到它。
答案1
书签是用
hyperref
选项unicode
或固定的pdfencoding=auto
。可以将选项赋予类hyperref
的选项,然后类的beamer
选项将选项传递给包hyperref
。假设文本以 UTF-8 编写,则
inputenc
必须删除 LuaLaTeX 或 XeLaTeX 的包。两者都已在使用 UTF-8。字体编码比非 Unicode TeX 编译器
T1
更好,因为它支持一些重音字母(变音符号)。LuaTeX 或 XeTeX 的推荐是 package ,因为它们支持 TrueType 和 OpenType Unicode 字体。默认字体是 Latin Modern,它源自 Computer Modern 字体(例如,支持更大范围的重音字符)。OT1
fontspec
完整示例:
\documentclass[aspectratio=169,hyperref={unicode}]{beamer}
\usepackage{fontspec}
\usepackage[german]{babel}
\begin{document}
\section{äöüßÄÖÜ "a"o"u"s"A"O"U}
\begin{frame}{ä ö ü ß Ä Ö Ü "a "o "u "s "A "O "U}
\tableofcontents
\Huge
ä ö ü ß Ä Ö Ü "a "o "u "s "A "O "U
\end{frame}
\end{document}
答案2
如果你使用路拉泰克斯但您不打算通过加载包来使用 unicode 字体fontspec
,您应该加载
\usepackage[utf8]{luainputenc}
代替inputenc
。
如果您确实想使用 unicode 字体,则加载fontspec
就足够了,luainputenc
不需要fontenc
。
除此之外,我不同意经常给出的一般建议不加载 fontenc
如果使用 lualatex。*
因为这个包的必要性并不取决于使用的编译器,而是取决于是否fontspec
加载这个包。
大多数人使用 lualatex 是因为这个fontspec
包,因为它允许使用Unicode 字体。但是有些人,比如我,使用 lualatex 是因为它能够处理 lua 代码(以及其他优点……),但不喜欢使用 unicode 字体(因为它很慢,还有其他缺点……)。在后一种情况下,您仍然可能需要fontenc
。