使用 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
。