\checkmark と Cambria Math の使い方は?

\checkmark と Cambria Math の使い方は?

ドキュメントでは Cambria Math を使用する必要がありますが、同時に環境\checkmarkでも使用できる必要がありますitemize。しかし、ロードするとすぐにunicode-mathチェックマークが消えてしまいます。これを回避する方法はありますか?

私は次の MWE をlualatex(TeX Live 2013/dev) でコンパイルしています:

\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

他の回答に加えて、次の 3 つの回避策を見つけました。

1) 簡単な回避策(パッケージと別のコマンドを使用)

\Checkmark回避策として、私はbbdingこの回答のパッケージhttps://tex.stackexchange.com/a/10194/1871残念ながらそうではありませんその通りcheckmarkからに等しいamsfonts

bbding

\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) 貧乏人(Cambria 内の既存の Unicode グリフを使用)

もう 1 つの純粋な Cambria の (しかしひどい) 回避策は、チェックマークに別の記号を使用することです (当然、平方根のように見えます)。

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

貧乏人

関連情報