Tufte-book 与 mtpro2 和 fontenc 错误

Tufte-book 与 mtpro2 和 fontenc 错误

mtpro2我想使用包和 xetex以 tufte 风格创建一本希腊语书。

\documentclass[twoside]{tufte-book}
\usepackage{mtpro2}
\usepackage{amsmath}
\usepackage[no-math,cm-default]{fontspec}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{xgreek}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setmainfont[Mapping=tex-text,Numbers=Lining,Scale=1.0]{Times New Roman}
\usepackage{mtpro2}
\begin{document}
Μαθηματικά
\end{document}

我收到以下错误:

Command `\hbar' already defined. ...thSymbol{\hbar} {\mathord}{symbols}{"84}
Option clash for package fontspec. \usepackage

答案1

\hbar宏由包定义xunicode。以下是经过修改的序言,应该可以正常工作:

\PassOptionsToPackage{no-math,cm-default}{fontspec}
\documentclass[twoside,nofonts]{tufte-book}
\usepackage{amsmath}
\usepackage{xgreek}
\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\setmainfont[Mapping=tex-text,Numbers=Lining,Scale=1.0]{Times New Roman}
\let\hbar\relax
\usepackage{mtpro2}
\begin{document}
Μαθηματικά
\end{document}

我在你的序言中修改了以下内容:

  • 将选项从\usepackage[no-math,cm-default]{fontspec}移至\PassOptionsToPackage顶部的行。由于 Tufte-LaTeX 将fontspec自动加载包,因此这将传递您的选项,并且您不会因选项冲突而出现错误。
  • nofonts在该行中添加了\documentclass禁止 Tufte-LaTeX 设置其自己的字体的选项。
  • 删除了第一\usepackage{mtpro2}行。你不需要重复这么做。
  • 删除了\usepackage{xunicode}\usepackage{xltxtra}行,因为 Tufte-LateX 会自动为您加载这些。
  • \let\hbar\relax在加载包之前添加了该行mtpro2。这将“取消定义”\hbar宏,以便mtpro2包可以自行定义它。

相关内容