在语雀中输入汉语拼音

在语雀中,无法使用HTML中的<ruby>标签来输入拼音,但是语雀可以支持latex公式块的插入,所以我们可以借助公式中的latex来做汉语拼音的输入,具体来说也就是通过latex中的overset指令来输入上下并排的字符。

先举一个简单的例子

\overset{bái}{白}\overset{rì}{日}\overset{yī}{依}\overset{shān}{山}\overset{jìn}{尽},\overset{huáng}{黄}\overset{hé}{河}\overset{rù}{入}\overset{hǎi}{海}\overset{liú}{流}

然后可以让这个字稍微大一些,比如(通过\small,\large,\huge等命令来控制字体)

\huge{\overset{bái}{白}\overset{rì}{日}\overset{yī}{依}\overset{shān}{山}\overset{jìn}{尽},\overset{huáng}{黄}\overset{hé}{河}\overset{rù}{入}\overset{hǎi}{海}\overset{liú}{流}}

也可以通过\text来设置不使用斜体来渲染拼音:

\huge{\overset{\text{bái}}{白}\overset{\text{rì}}{日}\overset{\text{yī}}{依}\overset{\text{shān}}{山}\overset{\text{jìn}}{尽},\overset{\text{huáng}}{
黄}\overset{\text{hé}}{河}\overset{\text{rù}}{入}\overset{\text{hǎi}}{海}\overset{\text{liú}}{流}}

如果直接编辑latex公式的话,确实是一个非常痛苦的过程。我们使用pypinyin这个工具,把成句或者成段的文字在加上拼音之后翻译成latex公式的形式(注意,受限于pypinyin的词库,自动匹配的拼音并不一定是正确的,还需要自己进行手动调整):

import pypinyin

def get_latex_pinyin(s, text=False):
    chars = []
    for group in pypinyin.core.seg(s):
        p = pypinyin.lazy_pinyin(group, style=pypinyin.Style.TONE)
        if p[0] == group:
            chars.extend(list(zip(group, group)))
        else:
            chars.extend(list(zip(list(group), p)))
    def to_latex(char, pinyin):
        if char == pinyin:
            return char
        elif text:
            return '\overset{\\text{%s}}{%s}' % (pinyin, char)
        else:
            return '\overset{%s}{%s}' % (pinyin, char)
    return ''.join([to_latex(char, pinyin) for (char, pinyin) in chars])

使用get_latex_pinyin这个函数的方式如下:

>>> print(get_latex_pinyin('白日依山尽,黄河入海流', text=True))
\overset{\text{bái}}{}\overset{\text{}}{}\overset{\text{}}{}\overset{\text{shān}}{}\overset{\text{jǐn}}{},\overset{\text{huáng}}{}\overset{\text{}}{}\overset{\text{}}{}\overset{\text{hǎi}}{}\overset{\text{liú}}{}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

socratescli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值