Ich habe ein seltsames Problem. Ich möchte zusammengesetzte Zeichen erstellen, wieǎVerwendung des newunicodechar
Pakets. Es führt allerdings nur in Kombination mit dem xeCJK
Paket 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 xeCJK
Paket 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}
Antwort2
Bezogen aufein Trick von Egreg, hier wird das \accent
Primitiv 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 ǚ.