我发现 lualatex 有两个问题,仅使用 latex 时不会出现这些问题:
其中的文本
{\em ...}
没有以斜体显示(如果我使用 latex 而不是 lualatex 进行编译,则会正确显示)。连字符规则
\hyphenation{...}
似乎不起作用,并且一些文本超出了边距(使用乳胶时不会出现此问题)。
这是一个最小工作示例:
\documentclass[preprint, 11pt, times, letterpaper, authoryear, review]{elsarticle}
\usepackage[margin=1in]{geometry}
\newcommand*{\useLuatex}{} % comment this line to compile with latex instead of luatex.
\ifdefined\useLuatex
\usepackage{xcolor,luacolor,lua-ul}
\LuaULSetHighLightColor{yellow}
\fi
\hyphenation{ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-long-word-that-needs-hy-phens}
%Uncommment the following two lines to solve the problem with italics.
%\usepackage{fontspec}
%\setmainfont{Times New Roman} % Replace with a font that has an italic variant
\begin{document}
First, the following word is in italics: {\em italics}.
This is an example with a veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongwordthatneedshyphens.
\end{document}
在示例中,非常长的单词超出了边距,并且单词“italics”未以斜体显示。我通过添加以下两行解决了斜体问题:
\usepackage{fontspec}
\setmainfont{Times New Roman} % Replace with a font that has an italic variant
但是,我不知道这是否是正确的方法。我想保留使用 latex 编译时使用的相同默认字体,并且没有包含这两行。
显而易见的解决方案是使用 latex 而不是 lualatex。但是,我需要使用 lualatex 才能使用 lua-ul 包的可靠高亮显示。有什么办法可以解决这个问题吗?
答案1
times
该类的选项会elsarticle
加载已弃用的txfonts
软件包。请避免使用它。
相反,加载newtx
支持 OpenType Times 文本字体。
在示例中,我表明已找到所有连字点。
\documentclass[
preprint,
11pt,
letterpaper,
authoryear,
review
]{elsarticle}
\usepackage[margin=1in]{geometry}
\usepackage{iftex}
\usepackage{newtxtext,newtxmath}
\ifluatex
\usepackage{xcolor,luacolor,lua-ul}
\LuaULSetHighLightColor{yellow}
\fi
\hyphenation{ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-ve-ry-long-word-that-needs-hy-phens}
\begin{document}
First, the following word is in italics: \textit{italics}.
Then, the following word is emphasized: \emph{emphasis}.
This is an example with a veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongwordthatneedshyphens.
\parbox[t]{0pt}{\linespread{1}\tiny
This is an example with a veryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongwordthatneedshyphens.}
\end{document}
顺便说一下{\em ...}
,不是获得斜体的方法。如果您想要强调,请使用\emph{...}
,如果您确实想要斜体,请使用\textit{...}
。它们可能渲染相同,但语义不同。
您可能想要加载一些“非 LuaLaTeX”的包,但如果您的文档依赖于lua-ul
,则只需无条件加载这些包。