Como usar \checkmark e Cambria Math?

Como usar \checkmark e Cambria Math?

Em um documento preciso usar o Cambria Math mas ao mesmo tempo poder usar \checkmarkpara um itemizeambiente. Mas assim que carrego unicode-matha marca de seleção desaparece. Existe uma solução alternativa para isso?

Estou compilando o seguinte MWE com 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}

Responder1

insira a descrição da imagem aqui

Se você quiser que o AMS volte, basta carregar a fonte, o mais simples é fazê-lo como uma fonte de texto. Também unicode-mathatrasa algumas de suas definições até begin{document}que você precise adiar a (re)definição até depois disso.

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

Responder2

Não tenho Cambria, mas os sintomas apontam para a falta de um glifo. O uso amsfontsnão é recomendado: seus símbolos já devem estar disponíveis em uma boa fonte matemática Unicode.

Você pode selecionar uma fonte diferente para o símbolo dizendo, por exemplo,

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

mas isso fornecerá o símbolo apenas quando estiver em matemática, pois \checkmarksimplesmente imprime o caractere ✓ (Unicode U+2713).

Então você também pode adicionar

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

e então a redefinição funcionaria.

Aqui está um exemplo:

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

insira a descrição da imagem aqui

Como você pode ver, \checkmarkusa uma fonte diferente (Asana Math, neste caso).

Responder3

Encontrei essas três soluções alternativas, além das outras respostas:

1) Solução simples (usando pacote e um comando diferente)

Como solução alternativa, estou usando \Checkmarko bbdingpacote a partir desta respostahttps://tex.stackexchange.com/a/10194/1871. Infelizmente não éexatamenteigual a checkmarkde 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) Resposta consistente com "MSWord" (use a fonte Wingdings)

Itemize no MSWord usa a fonte Wingdings para marcas de seleção, portanto, isso dá uma aparência consistente (procure a resposta de David para o resto do código).

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

asa

3) Pobre homem (use glifos Unicode existentes em Cambria)

Outra solução alternativa pura-Cambria (mas horrível) é usar um símbolo diferente para a marca de seleção (que naturalmente se parece mais com uma raiz quadrada):

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

pobre homem

informação relacionada