我使用的 MWE 字体通常是希腊文。我目前正在用英文撰写文档,需要连字符,因此我尝试使用\usepackage[english]{babel}
。这样做时出现很多错误。我做错了什么,为什么它不起作用?如何才能使连字符起作用?
\documentclass[12pt]{article}
\usepackage[top=0.7in, bottom=1.2in, left=0.8in, right=0.8in]{geometry}
\setlength{\parindent}{0cm}
\usepackage[english]{babel}
\setmainfont[Mapping=tex-text]{GFSArtemisia.otf}
\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}
\setmainfont[
Ligatures=TeX,
Extension=.otf,
UprightFont=*,
BoldFont=*Bold,
ItalicFont=*It,
BoldItalicFont=*BoldIt,
]{GFSArtemisia}
\usepackage[fleqn]{amsmath}
\usepackage{unicode-math}
\everymath{\displaystyle}
\begin{document}
Text Here!
\end{document}
答案1
您需要加载fontspec
。fontspec
是 XeLaTeX 和 LuaLaTeX 的一个软件包,它使使用这些引擎选择和使用字体变得更加容易。特别是,它定义了命令\setmainfont
和\setsansfont
。如果您不加载该软件包,TeX 不知道这些命令的含义,它会抱怨它们是undefined control sequences
。因此,如果您希望使用这些命令选择字体,您需要先加载该软件包。
此外,最好加载parskip
而不是手动设置parindent
为零。并且最好指定british
或american
避免可能的失望。
\documentclass[12pt,british]{article}% or american
\usepackage[top=0.7in, bottom=1.2in, left=0.8in, right=0.8in]{geometry}
\usepackage{parskip}
\usepackage{babel}
\usepackage{fontspec}
\setsansfont[Mapping=tex-text]{GFSArtemisia.otf}
\setmainfont[
Ligatures=TeX,
Extension=.otf,
UprightFont=*,
BoldFont=*Bold,
ItalicFont=*It,
BoldItalicFont=*BoldIt,
Mapping=tex-text,
]{GFSArtemisia}% fontspec will substitute this value for the * in the definitions you specify. So you must omit the .otf extension or else TeX will look for e.g. GFSArtemisia.otfBold which you likely do not have!
\usepackage[fleqn]{amsmath}
\usepackage{unicode-math}
\begin{document}
Text Here!
\end{document}