hanpin和hanzibox来自latexstudio排版工作室分享的中文解词宏包报错提示是Command '\pinyin' already defined!作者使用的是Windo...
hanpin和hanzibox来自latexstudio排版工作室分享的中文解词宏包
报错提示是
Command '\pinyin' already defined!
作者使用的是Windows 10 操作系统和 TeXLive 2019 版本,编译器是TeXworks
————————————————————————分割线—————————————————————————————
代码如下:
chinese-examination-templates.zip
建议hanpin和xpinyin宏包只用一个,由于hanzibox包中用了hanpin,所以建议只使用hanpin。这个包好像不能够给拼音加下划线,你可以将代码改成:
\question[4]
% 用pifont宏包,使用\Pisymbol{pzd}{51}输出对号,\Pisymbol{pzd}{55}输出错号
给加点字选择正确的读音,画``\Pisymbol{pzd}{51}''%“√”。
\begin{parts}
\part
\CJKunderdot{缝}\pinyin{feng2}\ \pinyin{feng4}补
\part
\CJKunderdot{模}\pinyin{mo3}\ \pinyin{mu2}补
\end{parts}
也就是取消原\CJKunderline命令的使用。另外,你的引号用法不对,对号用的也不好。
-----------------------------------------------------------------------------------
---------------------------------华丽的分割线--------------------------------
-----------------------------------------------------------------------------------
另外一种方案是将hanpin.sty文件第38行中定义的\pinyin宏名称重命名为别的名称,如\zhpinyin,然后将hanzibox.sty文件中的第102和108行中对\pinyin宏的引用改为对\zhpinyin宏的引用。
然后,就可以载入xpinyin宏包,使用其中定义的各种命令了。我发现xpinyin宏包的\pinyin宏可以使用\CJKunderline下划线命令。
另外,在我的ubuntu+texlive2019中,对于ǚ音,hanpin宏包音调和两个点会重合,而xpinyin宏包是正常的。目前,我没有从源码中找到修改的地方。
如果直接修改hanzibox.sty第15行\RequirePackage{hanpin}为\RequirePackage{xpinyin},\pinyin命令不变,则发现通过\hanzibox{pinyin=wo3}{inner=cross}将wo3传入\pinyin时无法正常实现注音,测试发现xpinyin宏包的\pinyin命令无法接收宏命令,只能直接接收类似wo3这样的拼音。这一BUG的MWE如下,期待大佬研究解决!
\documentclass{ctexart}
% 引入拼音宏包
\usepackage{xpinyin}
% 定义拼音宏
\def\zhpinyin{zhong1guo2}
\begin{document}
\pinyin{zhong1guo2} % 正确
\pinyin{\zhpinyin} % 无法使用定义的宏
\xpinyin*{中国} % 正确
\end{document}
-----------------------------------------------------------------------------------
---------------------------------华丽的分割线--------------------------------
-----------------------------------------------------------------------------------
经过在https://github.com/CTeX-org/ctex-kit/issues/447的提问,得到解决xpinyin的问题的方法,因此,可以将hanzibox.sty中第15行对hanpin宏包的引用改为对xpinyin宏包的引用。然后,将第102行和第108行中\pinyin{\mm@pin}改为\expandafter\pinyin\expandafter{\mm@pin}。
这样hanzibox.sty宏包将不依赖于hanpin.sty宏包,在使用中,能够保证各类拼音的排版结果的一致性,并且可以指定需要的拼音字体。
修改后的hanzibox.sty见附件。
hanzibox.zip
一周热门 更多>