我从 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 时,请加载fontenc
和inputenc
包。相反,请习惯使用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}