Wie verwende ich \checkmark und Cambria Math?

Wie verwende ich \checkmark und Cambria Math?

In einem Dokument muss ich Cambria Math verwenden, gleichzeitig aber auch \checkmarkeine itemizeUmgebung nutzen können. Sobald ich es lade, unicode-mathverschwindet das Häkchen. Gibt es dafür eine Lösung?

Ich kompiliere das folgende MWE mit 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}

Antwort1

Bildbeschreibung hier eingeben

Wenn Sie das AMS-Häkchen zurückhaben möchten, können Sie einfach die Schriftart laden. Am einfachsten geht das als Textschriftart. Außerdem unicode-mathverzögert sich dadurch einige ihrer Definitionen, begin{document}sodass Sie die (Neu-)Definition bis dahin verzögern müssen.

\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}

Antwort2

Ich habe kein Cambria, aber die Symptome deuten auf ein fehlendes Glyph hin. Die Verwendung amsfontswird nicht empfohlen: Die Symbole sollten bereits in einer guten Unicode-Mathematikschriftart verfügbar sein.

Sie können eine andere Schriftart für das Symbol auswählen, indem Sie beispielsweise sagen:

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

Dies liefert das Symbol jedoch nur in der Mathematik, da \checkmarkeinfach das Zeichen ✓ (Unicode U+2713) gedruckt wird.

Sie können also auch hinzufügen

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

und dann würde die Neudefinition funktionieren.

Hier ist ein Beispiel:

\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}

Bildbeschreibung hier eingeben

Wie Sie sehen, \checkmarkwird eine andere Schriftart verwendet (in diesem Fall Asana Math).

Antwort3

Ich habe zusätzlich zu den anderen Antworten diese drei Problemumgehungen gefunden:

1) Einfache Problemumgehung (mithilfe eines Pakets und eines anderen Befehls)

Als Workaround verwende ich das \Checkmarkaus dem bbdingPaket wie aus dieser Antworthttps://tex.stackexchange.com/a/10194/1871. Leider ist es nichtgenaugleich dem checkmarkvon amsfonts.

bbd

\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“-konsistente Antwort (Schriftart Wingdings verwenden)

Itemize in MSWord verwendet die Schriftart Wingdings für Häkchen, daher ergibt sich ein einheitliches Erscheinungsbild (den Rest des Codes finden Sie in Davids Antwort).

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

Flügel

3) Armer Mann (verwende vorhandene Unicode-Glyphen in Cambria)

Ein weiterer reiner Cambria-Workaround (der jedoch schrecklich ist) besteht darin, ein anderes Symbol für das Häkchen zu verwenden (das natürlich eher wie eine Quadratwurzel aussieht):

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

armer Mann

verwandte Informationen