Как использовать \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

Я нашел эти три обходных пути, помимо других ответов:

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 для отметок флажками используется шрифт Wingdings, что обеспечивает единообразный вид (обратитесь к ответу Дэвида по поводу остальной части кода).

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

крыло

3) Бедняк (используйте существующие глифы Unicode в Cambria)

Еще один чисто Cambria (но ужасный) способ обхода проблемы — использовать другой символ для галочки (который, естественно, больше похож на квадратный корень):

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

бедный человек

Связанный контент