为什么我的 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 您无需加载fontenc
和inputenc
。您必须使用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
您也不应该加载该包。请改用该包。请参阅fontenc
fontspec
使用 XeLaTeX 代替 pdfLaTeX更多细节。