
In einem Dokument muss ich Cambria Math verwenden, gleichzeitig aber auch \checkmark
eine itemize
Umgebung nutzen können. Sobald ich es lade, unicode-math
verschwindet 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
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-math
verzö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 amsfonts
wird 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 \checkmark
einfach 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}
Wie Sie sehen, \checkmark
wird 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 \Checkmark
aus dem bbding
Paket wie aus dieser Antworthttps://tex.stackexchange.com/a/10194/1871. Leider ist es nichtgenaugleich dem checkmark
von amsfonts
.
\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}}}
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}