如何使用 \checkmark 和 Cambria Math?

如何使用 \checkmark 和 Cambria Math?

在文件中,我需要使用 Cambria Math,但同時能夠用於\checkmark環境itemize。但一旦我加載,unicode-math複選標記就會消失。有解決辦法嗎?

lualatex我正在使用(TeX Live 2013/dev)編譯以下 MWE :

\documentclass{article}
\usepackage{amsfonts} % for the \checkmark command 
\usepackage{unicode-math} % hides \checkmark? 
\usepackage{fontspec}
\setmainfont{Cambria}
\setsansfont{Calibri}
%\setmathfont{Cambria Math}


\begin{document} 
$a + b$
\begin{itemize}
\item[\checkmark] a
\item[\checkmark] b 
\item[\checkmark] c
\end{itemize}

\end{document}

答案1

在此輸入影像描述

如果您希望 AMS 勾選回來,您只需加載字體即可,最簡單的方法是將其作為文字字體。也會unicode-math延遲其某些定義,直到begin{document}您需要將(重新)定義延遲到此後。

\documentclass{article}

\usepackage{unicode-math} 
\usepackage{fontspec}
\setmainfont{Cambria}
\setsansfont{Calibri}
\setmathfont{Cambria Math}


%%\DeclareFixedFont\amsa{U}{msa}{m}{n}{10}
%%\AtBeginDocument{\renewcommand\checkmark{{\amsa \char"58}}}

\AtBeginDocument{\renewcommand\checkmark{\usefont{U}{msa}{m}{n}X}}

\begin{document} 


$a + b$
\begin{itemize}
\item[\checkmark] a
\item[\checkmark] b 
\item[\checkmark] c
\end{itemize}

\end{document}

答案2

我沒有 Cambria,但症狀表明缺少字形。不建議使用amsfonts:它的符號應該已經在良好的 Unicode 數學字體中可用。

您可以為符號選擇不同的字體,例如,

\setmathfont[range=\checkmark]{Asana Math}

但這僅在數學中提供符號,因為\checkmark只是列印字元 ✓ (Unicode U+2713)。

所以你還可以添加

\AtBeginDocument{%
  \renewcommand\checkmark{\ensuremath{\char\string"2713}}%
}

然後重新定義就可以了。

這是一個例子:

\documentclass{article}
\usepackage{unicode-math}
\setmainfont{XITS}
\setmathfont{XITS Math}
\setmathfont[range=\checkmark]{Asana Math}

\AtBeginDocument{%
  \renewcommand\checkmark{\ensuremath{\char\string"2713}}%
}

\begin{document}

A checkmark in the main font, just to show the difference: \char"2713 
\begin{itemize}
\item[\checkmark] a
\item[\checkmark] b
\item[\checkmark] c
\end{itemize}

\end{document}

在此輸入影像描述

如您所見,\checkmark使用不同的字體(在本例中為 Asana Math)。

答案3

除了其他答案之外,我發現了這三個解決方法:

1)簡單的解決方法(使用套件和不同的命令)

作為解決方法,我正在使用此答案中的包\Checkmark中的bbdinghttps://tex.stackexchange.com/a/10194/1871。不幸的是它不是確切地等於checkmarkamsfonts.

BB丁

\documentclass{article}
\usepackage{bbding} % for the \Checkmark command 
\usepackage{unicode-math} 
\usepackage{fontspec}
\setmainfont{Cambria}
\setsansfont{Calibri}
\setmathfont{Cambria Math}


\begin{document} 
$a + b$
\begin{itemize}
\item[\Checkmark] a
\item[\Checkmark] b 
\item[\Checkmark] c
\end{itemize}

\end{document}

2)「MSWord」一致的答案(使用Wingdings字體)

MSWord 中的 Itemize 使用 Wingdings 字體作為複選標記,因此這提供了一致的外觀(其餘程式碼請尋找 David 的答案)。

\newfontfamily\wingdingsfont{Wingdings}
\newcommand\wingdings[1]{{\wingdingsfont\symbol{#1}}}
\AtBeginDocument{\renewcommand\checkmark{\wingdings{252}}}

翅膀

3) Poor's man(使用 Cambria 內現有的 unicode 字形)

另一個純 Cambria(但可怕)的解決方法是使用不同的符號作為複選標記(它自然看起來更像平方根):

\begin{itemize}
\item[$⎷$] a
\item[√] b 
\item[\checkmark] c (for comparison) %using solution #2
\end{itemize}

悲慘的人

相關內容