
En un documento necesito usar Cambria Math pero al mismo tiempo poder usarlo \checkmark
para un itemize
entorno. Pero tan pronto como cargo, unicode-math
la marca de verificación desaparece. ¿Hay una solución para esto?
Estoy compilando el siguiente MWE con 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}
Respuesta1
Si desea que AMS vuelva a marcar, puede simplemente cargar la fuente; lo más sencillo es hacerlo como fuente de texto. También unicode-math
retrasa algunas de sus definiciones hasta begin{document}
que necesite retrasar la (re)definición hasta después de eso.
\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}
Respuesta2
No tengo Cambria, pero los síntomas apuntan a que falta un glifo. No se recomienda su uso amsfonts
: sus símbolos ya deberían estar disponibles en una buena fuente matemática Unicode.
Puede seleccionar una fuente diferente para el símbolo diciendo, por ejemplo,
\setmathfont[range=\checkmark]{Asana Math}
pero esto proporcionará el símbolo sólo en matemáticas, porque \checkmark
simplemente imprime el carácter ✓ (Unicode U+2713).
Entonces también puedes agregar
\AtBeginDocument{%
\renewcommand\checkmark{\ensuremath{\char\string"2713}}%
}
y entonces la redefinición funcionaría.
He aquí un ejemplo:
\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 ves, \checkmark
utiliza una fuente diferente (Asana Math, en este caso).
Respuesta3
Encontré estas tres soluciones, además de las otras respuestas:
1) Solución alternativa simple (usando un paquete y un comando diferente)
Como solución alternativa, estoy usando \Checkmark
el bbding
paquete a partir de esta respuesta.https://tex.stackexchange.com/a/10194/1871. Lamentablemente no lo esexactamenteigual a la 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) Respuesta coherente con "MSWord" (use la fuente Wingdings)
Itemize en MSWord usa la fuente Wingdings para las marcas de verificación, por lo tanto, esto le da una apariencia consistente (busque la respuesta de David para el resto del código).
\newfontfamily\wingdingsfont{Wingdings}
\newcommand\wingdings[1]{{\wingdingsfont\symbol{#1}}}
\AtBeginDocument{\renewcommand\checkmark{\wingdings{252}}}
3) El hombre pobre (use los glifos Unicode existentes en Cambria)
Otra solución alternativa pura de Cambria (pero horrible) es usar un símbolo diferente para la marca de verificación (que naturalmente se parece más a una raíz cuadrada):
\begin{itemize}
\item[$⎷$] a
\item[√] b
\item[\checkmark] c (for comparison) %using solution #2
\end{itemize}