为何我的斜体不起作用?

为何我的斜体不起作用?

为什么我的 XeLaTeX 文档没有将这个词变成斜体?我实在想不通。

\documentclass[12pt,letterpaper]{article}
\usepackage{ifpdf}
\usepackage{mla}
\usepackage[T2A]{fontenc}
\usepackage{setspace}
\usepackage[utf8]{inputenc}
\singlespacing
\usepackage{endnotes}
\usepackage{hyperref}
\begin{document}
\emph{hi}
\end{document}

答案1

让我们来看看为什么它不起作用。

包裹mla上写着\usepackage{times}不是推荐),因此默认字体系列用 LaTeX 术语来说是 ,ptm与 Times 相对应。

然而,以这种方式选择的 Times 字体系列T2A 编码版本(即西里尔文),因此当您排版文档时,您会得到

LaTeX Font Warning: Font shape `T2A/ptm/m/n' undefined
(Font)              using `T2A/cmr/m/n' instead on input line 10.

由于该系列没有定义 T2A(西里尔文)编码的字体ptm,因此 LaTeX 切换到默认字体。这种情况发生在\begin{document}. Later, when找到 \emph` 时,会发出以下消息

LaTeX Font Warning: Font shape `T2A/ptm/m/it' undefined
(Font)              using `T2A/ptm/m/n' instead on input line 11.

原因是一样的:T2A 系列中不存在 T2A 编码斜体字体。由于T2A/ptm/m/n已被定义为 的别名T2A/cmr/m/n,因此您将获得直立形状。

如果你想在文档中使用标准的 Computer Modern 字体,只需在 之后输入\usepackage{mla}

\renewcommand{\sfdefault}{cmss}
\renewcommand{\rmdefault}{cmr}
\renewcommand{\ttdefault}{cmtt}

使用 XeLaTeX。pdflatex你必须记住添加

\usepackage[utf8]{inputenc}

如果您想直接输入西里尔字母(或使用另一种西里尔字母输入编码)。

使用 XeLaTeX 您无需加载fontencinputenc。您必须使用fontspec选择具有西里尔字母覆盖的系统字体。

更新

现在有一种支持西里尔编码的 Times 类字体,特别是 T2A,也适用于pdflatex。该软件包称为tempora

\documentclass[12pt,letterpaper]{article}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{ifpdf}
\usepackage{mla}
\usepackage{tempora} % override \usepackage{times} of mla

\usepackage{setspace}
\usepackage{endnotes}
\usepackage{hyperref}

\singlespacing

\begin{document}
\emph{hi}
\end{document}

答案2

您永远不应该使用 XeTeX 或 LuaTeX 加载该包。除非您知道自己在做什么,否则inputenc您也不应该加载该包。请改用该包。请参阅fontencfontspec使用 XeLaTeX 代替 pdfLaTeX更多细节。

相关内容