xpinyin 更改字体

xpinyin 更改字体

我正在使用显示拼音的包xpinyin,拼音是汉字上方的汉语拼音文字。这似乎很有效,但我想更改拼音文字的字体。我在包装文档,尽管那一个只有中文:

\xpinyinsetup{ratio=0.5, vsep=1em, multiple={\color{red}}, font=Liberation Sans}

文档中的中文对我来说还是太高级了,所以我只是猜测它的作用是这样的:

  1. 使拼音字体大小与主字体大小相同
  2. 垂直间距1em,拼音与下方汉字间距1em
  3. 如果一个字符有多个拼音(多音字),则拼音将是最可能的拼音,并显示为红色
  4. 使用字体Liberation Sans

但是,我不知道是否可以简单地在Liberation和之间留一个空格Sans。主要问题是以下结果:

人声缺失

(在这张图片中我使用了它,Arial因为它的名字足够短,容易阅读。)所以我想:“这一定是字体问题。”我尝试Liberation Sans在 Libre Office 中使用该字体,检查它是否可以显示带有音调的缺失人声。在那里,它能够显示它而不指示字体的变化,但我不知道它是否隐藏了这些信息,也许字体真的无法显示那些人声。

还要注意字体名称是如何添加到语音脚本中的。这可能是故意的,尽管它看起来像是一个错误。但我不明白文档。

第一个字符的拼音中没有字体名称,如何才能使 xpinyin 正确显示?

以下是一些示例代码:

\documentclass[10pt, a4paper, parskip=full]{article} % twoside can be added if two sided margin layout is desired
\usepackage[a4paper,vmargin={30mm, 20mm},hmargin={30mm, 25mm},includeheadfoot]{geometry}
\usepackage{amsmath}

\usepackage[UTF8]{ctex}
\usepackage{xpinyin}
\xpinyinsetup{ratio=0.5, vsep=1em, multiple={\color{red}}, font=Liberation Sans}

\usepackage{fontspec,xunicode}
\setCJKmainfont[]{WenQuanYi Micro Hei}

\defaultfontfeatures{Mapping=tex-text, Scale=MatchLowercase} % what does this do? -- influences how quotes are rendered
\setmainfont[Scale=1]{Open Sans}
\setmonofont{Liberation Mono}
\DeclareMathSizes{10}{10}{8}{7}

\usepackage[english, ngerman]{babel}
\selectlanguage{ngerman}

\begin{document}

\begin{pinyinscope}
我有一个送给你的礼物.
\end{pinyinscope}

\end{document}

答案1

我找到了一种解决方法,也许这可以看作是一个解决方案:

\usepackage{xpinyin}
\xpinyinsetup{ratio={.7}, hsep={.5em plus .1em}, vsep={1.1em}, multiple={\color{red}}}

% redefine the pinyinscope environment, so that it uses a font which can display all pinyin syllables and vocals with diacritics
\newenvironment{pinyinscopeboxed}%
{\setmainfont{DejaVu Sans}\begin{pinyinscope}}%
{\end{pinyinscope}\setmainfont{Open Sans}}

这会将字体更改为一种字体,该字体可以在环境pinyinscopeboxed开始时显示拼音的所有变音符号,并在环境结束时将其更改回另一种字体。特定的字体必须根据需要进行配置,并且可以通过某种方式在更改之前使用变量来包含主字体,然后使用该变量切换回来,但我现在还不知道如何做到这一点。我将非常感激有关如何做到这一点或如何总体上改进解决方案的建议。

font这也避免了错误行为,因为它不使用选项,导致字体名称显示在红宝石中xpinyin

编辑#1

李青告诉我一种正确的做法。

不要更新环境,但是如果您使用该fontspec包,则可以执行以下操作:

\usepackage{fontspec}
\newfontfamily{\DVS}{DejaVu Sans}
\usepackage{xpinyin}
\xpinyinsetup{ratio={.7}, hsep={.5em plus .1em}, vsep={1.1em}, multiple={\color{red}}, pysep={.2em}, font=\DVS}

(除此以外的其他值font=仅供举例。)

相关内容