Caron Accent \v{a} no se procesa sin \usepackage{xeCJK}

Caron Accent \v{a} no se procesa sin \usepackage{xeCJK}

Me encuentro con un problema extraño. Quiero crear personajes compuestos comoǎusando el newunicodecharpaquete. Sin embargo, sólo da resultados en combinación con el xeCJKpaquete.

Este código produce caracteres faltantes:

\documentclass[a4paper,12pt,article,oneside]{memoir}
\usepackage{fontspec}
\usepackage{xunicode}

\usepackage[british]{babel}

\setmainfont[Ligatures=TeX]{Minion Pro}

\usepackage{newunicodechar}
\newunicodechar{ǚ}{\v{ü}}
\newunicodechar{Ǚ}{\v{Ü}}
\newunicodechar{ǎ}{\v{a}}
\newunicodechar{Ǎ}{\v{A}}
\newunicodechar{ǒ}{\v{o}}
\newunicodechar{Ǒ}{\v{O}}


\begin{document}

ǚ Ǚ ǎ


\end{document}

Si cargo el xeCJKpaquete, los caracteres se muestran bien. ¿Porqué es eso? ¿Y cómo generar caracteres compuestos sin el paquete nombrado?

Nota:

  • esto es reproducible con otras fuentes que no contienen caracteres Unicode (por ejemplo, Adobe Garamond Pro)
  • Minion Procontieneun carácter caron (unicode 02C7, índice 136)

Respuesta1

La configuración predeterminada no usa Unicode U+02C7, sino el acento combinado U+030C que falta en su fuente. xecjk contiene algo de código para usar U+02C7 en su lugar, pero parece usar este código solo si xunicode también está cargado, lo cual es un poco molesto, ya que normalmente uno ya no debería usarlo.

Puedes clonar el código xeCJK usando \add@accent. Si hay más fuentes involucradas y algunas tienen acento combinado, probablemente se necesiten algunas comprobaciones adicionales para la existencia de glifos.

\documentclass[a4paper,12pt,article,oneside]{memoir}

\usepackage{fontspec}
\usepackage[british]{babel}

\setmainfont[Ligatures=TeX]{MinionPro-Regular.otf}

\usepackage{newunicodechar}
\makeatletter

\newunicodechar{ǚ}{\add@accent{`^^^^02c7}{ü}}
\newunicodechar{Ǚ}{\add@accent{`^^^^02c7}{Ü}}
\newunicodechar{ǎ}{\add@accent{`^^^^02c7}{a}}
\makeatother
%\newunicodechar{Ǎ}{\v{A}}
%\newunicodechar{ǒ}{\v{o}}
%\newunicodechar{Ǒ}{\v{O}}
%
\begin{document}
abc 

ǚ Ǚ ǎ

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Residencia enun truco de egreg, esto usa la \accentprimitiva. Elegí simplemente redefinir \v.

\documentclass{standalone}
\usepackage{fontspec, newunicodechar}

\usepackage[british]{babel}

\setmainfont[Ligatures=TeX]{Cardo}

\renewcommand\v[1]{\accent\string"02C7 #1}

\newunicodechar{ǚ}{\v{ü}}
\newunicodechar{Ǚ}{\v{Ü}}
\newunicodechar{ǎ}{\v{a}}
\newunicodechar{Ǎ}{\v{A}}
\newunicodechar{ǒ}{\v{o}}
\newunicodechar{Ǒ}{\v{O}}

\begin{document}

ǚ Ǚ ǎ Ǎ ǒ Ǒ

\end{document}

ǚ Ǚ ǎ Ǎ ǒ Ǒ

Elegí Cardo como una fuente común que contiene el acento caron, pero no la ǚ precompuesta.

información relacionada