如何在 XeLaTeX 中使用标准 TeX 字体

如何在 XeLaTeX 中使用标准 TeX 字体

使用 XeLaTeX 和 fontspec 时,如何使用内置的 LaTeX 标准字体(在本例中,Times 为罗马字体、Helvetica 为无衬线字体、Courier 为单声道字体)?

我努力了:

\documentclass[journal, a4paper]{IEEEtran}

\usepackage{fontspec}
\renewcommand\rmdefault{ptm}
\renewcommand\sfdefault{phv}
\renewcommand\ttdefault{pcr}

\begin{document}
     “Touché,” \textsf{he} \texttt{said}.
\end{document}

没有成功。请注意,我希望能够直接输入 utf8 非英语字符,因此我使用了 fontspec。

答案1

@Sverre 写的文档,但使用 LuaLaTeX 给出了正确的输出。然而,正如 @UlrikeFischer 所说,它似乎在很多方面都是“错误的”。

%!TEX TS-program = lualatex
\documentclass{article}
\usepackage[utf8]{luainputenc}
\usepackage[T1]{fontenc}
\usepackage{mathptmx} % Times font
\usepackage{helvet} % Helvetica font
\usepackage{courier} % Courier font
\begin{document}
“Touché,” \textsf{he} \texttt{said}
\end{document}

在此处输入图片描述

编辑:

如果你希望能够在不改变输入的情况下在 pdfLaTeX 中进行编译,你可以

\usepackage{ifluatex}
\usepackage[utf8]{\ifluatex lua\fi inputenc}

PS:我添加了fontenc之前错过的包,文档似乎与 OT1 的工作方式相同。

答案2

有很多方法可以用你喜欢的字体书写。这里举一个简单的例子,使用 XeLaTeX/LuaLaTeX

% !TEX program = xelatex
% !TEX encoding = utf8

\documentclass[journal,a4paper]{IEEEtran}

\usepackage{fontspec}
\defaultfontfeatures+[\sffamily,\ttfamily]{Scale=MatchLowercase}
\setmainfont{FreeSerif}
\setsansfont{FreeSans}
\setmonofont{FreeMono}

\begin{document}
“Touché,” \textsf{he} \texttt{said}.
\end{document}

另一种方法是基于TeX Gyre字体

\setmainfont{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}
\setmonofont{TeX Gyre Cursor}

如果您需要数学支持,您可以使用STIX Math带有包的字体unicode-math

相关内容