
Em um documento preciso usar o Cambria Math mas ao mesmo tempo poder usar \checkmark
para um itemize
ambiente. Mas assim que carrego unicode-math
a 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
Se você quiser que o AMS volte, basta carregar a fonte, o mais simples é fazê-lo como uma fonte de texto. Também unicode-math
atrasa 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 amsfonts
nã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 \checkmark
simplesmente 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}
Como você pode ver, \checkmark
usa 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 \Checkmark
o bbding
pacote a partir desta respostahttps://tex.stackexchange.com/a/10194/1871. Infelizmente não éexatamenteigual a checkmark
de 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) 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}}}
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}