LuaLaTex - 德语字符问题

LuaLaTex - 德语字符问题

我从 LaTex 切换到了 LuaLaTex。这是我的基本前言:

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{lmodern}

由于某种原因,使用 LuaLaTex 时,像 这样的字符ß会显示为 ,SS而德语字形/引号会显示错误。我仍然不知道如何打印这些符号。有时我会遇到“' 或 ''(甚至无法在此编辑器中正确显示这些符号)。,, / ''到目前为止,使用 LaTex 时,符号确实有效,但使用 LuaLaTex 时则无效。

是否有一些重新推荐的通用强健方法来做到这一点,可以与 LaTex 和 LuaLaTex 一起使用而无需摆弄并且不会产生其他副作用?

答案1

正如你提问的评论所指出的那样,人们应该不是使用 LuaLaTeX 时,请加载fontencinputenc包。相反,请习惯使用fontspec包。或者,如果您的文档包含数学部分,请加载unicode-math包,它会fontspec自动加载。

修改前言(如下所示)可让您在 pdfLaTeX 和 LuaLaTeX 之间来回切换。在您完全适应 LuaLaTeX 之前,这可能是您的最佳选择。

在此处输入图片描述

上面的屏幕截图是使用 LuaLaTeX 编译以下测试文档的结果。观察字符ß在小写和大写字母中的使用情况。在 pdfLaTeX 下编译同一文档会产生几乎相同的结果,只是它会为罗马字体和无衬线字体形状生成SS大写变体ß,而等宽字体形状则什么都没有。

\documentclass{article} % or some other suitable document class

\usepackage[ngerman]{babel}
\usepackage{amsmath,amssymb} % no need to load 'amsfonts' explicitly
\usepackage{graphicx}

\usepackage{ifluatex}
\ifluatex
   \usepackage{unicode-math}
   \setmainfont{Latin Modern Roman}
   \setsansfont{Latin Modern Sans}
   \setmonofont{Latin Modern Mono}
   \setmathfont{Latin Modern Math} 
\else % pdflatex
   \usepackage[utf8]{inputenc}
   \usepackage[T1]{fontenc}
   \usepackage{lmodern}
\fi

\begin{document}
äöü ÄÖÜ ß \MakeUppercase{ß}

\textsf{äöü ÄÖÜ ß \MakeUppercase{ß}}

\texttt{äöü ÄÖÜ ß \MakeUppercase{ß}}
\end{document}

相关内容