Caron Accent \v{a} wird ohne \usepackage{xeCJK} nicht gerendert

Caron Accent \v{a} wird ohne \usepackage{xeCJK} nicht gerendert

Ich habe ein seltsames Problem. Ich möchte zusammengesetzte Zeichen erstellen, wieǎVerwendung des newunicodecharPakets. Es führt allerdings nur in Kombination mit dem xeCJKPaket zu einem Ergebnis.

Dieser Code erzeugt fehlende Zeichen:

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

Wenn ich das xeCJKPaket lade, werden die Zeichen einwandfrei dargestellt. Warum ist das so? Und wie erzeuge ich zusammengesetzte Zeichen ohne das benannte Paket?

Notiz:

  • Dies ist mit anderen Schriftarten reproduzierbar, die keine Unicode-Zeichen enthalten (z. B. Adobe Garamond Pro).
  • Minion Proenthältein Caron-Zeichen (Unicode 02C7, Index 136)

Antwort1

Die Standardeinstellung verwendet nicht Unicode U+02C7, sondern den kombinierenden Akzent U+030C, der in Ihrer Schriftart fehlt. xecjk enthält etwas Code, um stattdessen U+02C7 zu verwenden, scheint diesen Code aber nur zu verwenden, wenn auch xunicode geladen ist – was ein wenig nervig ist, da man es normalerweise nicht mehr verwenden sollte.

Sie können den xeCJK-Code mithilfe von klonen \add@accent. Wenn mehrere Schriftarten beteiligt sind, von denen einige den kombinierenden Akzent haben, sind wahrscheinlich einige zusätzliche Prüfungen auf das Vorhandensein von Glyphen erforderlich.

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

Bildbeschreibung hier eingeben

Antwort2

Bezogen aufein Trick von Egreg, hier wird das \accentPrimitiv verwendet. Ich habe mich für eine einfache Neudefinition entschieden \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}

ǚ Ǚ ǎ Ǎ ǒ Ǒ

Ich habe Cardo als gängige Schriftart ausgewählt, die den Caron-Akzent enthält, aber nicht das vorkomponierte ǚ.

verwandte Informationen