Caron Accent \v{a} não renderiza sem \usepackage{xeCJK}

Caron Accent \v{a} não renderiza sem \usepackage{xeCJK}

Estou encontrando um problema estranho. Quero criar personagens compostos comoǎusando o newunicodecharpacote. No entanto, só produz resultado em combinação com o xeCJKpacote.

Este código produz caracteres ausentes:

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

Se eu carregar o xeCJKpacote, os caracteres serão renderizados perfeitamente. Por que é que? E como gerar caracteres compostos sem o pacote nomeado?

Observação:

  • isso é reproduzível com outras fontes que não contêm caracteres unicode (por exemplo, Adobe Garamond Pro)
  • Minion Procontémum caractere caron (unicode 02C7, índice 136)

Responder1

A configuração padrão não usa unicode U+02C7, mas o acento combinador U+030C que está faltando na sua fonte. xecjk contém algum código para usar U + 02C7, mas parece usar esse código apenas se o xunicode também estiver carregado - o que é um pouco chato, já que normalmente não se deve mais usá-lo.

Você pode clonar o código xeCJK usando \add@accent. Se mais fontes estiverem envolvidas, algumas com acento combinado, provavelmente serão necessárias algumas verificações adicionais para a existência 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}

insira a descrição da imagem aqui

Responder2

Baseado emum truque de Egreg, isso usa o \accentprimitivo. Eu escolhi simplesmente 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}

ǚ Ǚ ǎ Ǎ ǒ Ǒ

Escolhi Cardo como uma fonte comum que contém o acento caron, mas não o ǚ pré-composto.

informação relacionada