hanpin和hanzibox来自latexstudio排版工作室分享的中文解词宏包


报错提示是


Command '\pinyin' already defined!



作者使用的是Windows 10 操作系统和 TeXLive 2019 版本,编译器是TeXworks


————————————————————————分割线—————————————————————————————


代码如下:


chinese-examination-templates.zip

3 回答3

0
<p>第八行添加\let\pinyin\relax,或者\let\pinyin\undefined,对于冲突的定义只需要将其中的定义取消一个即可</p>
0
<p></p><p></p><p></p><p></p><p></p><p>建议hanpin和xpinyin宏包只用一个,由于hanzibox包中用了hanpin,所以建议只使用hanpin。这个包好像不能够给拼音加下划线,你可以将代码改成:</p><p>\question[4]<br/></p><p>% 用pifont宏包,使用\Pisymbol{pzd}{51}输出对号,\Pisymbol{pzd}{55}输出错号</p><p>给加点字选择正确的读音,画``\Pisymbol{pzd}{51}&#39;&#39;%“√”。<br/></p><p>\begin{parts}<br/></p><p>\part<br/></p><p>&nbsp; \CJKunderdot{缝}\pinyin{feng2}\ \pinyin{feng4}补</p><p>\part<br/></p><p>&nbsp; \CJKunderdot{模}\pinyin{mo3}\ \pinyin{mu2}补</p><p>\end{parts}<br/></p><p>也就是取消原\CJKunderline命令的使用。另外,你的引号用法不对,对号用的也不好。</p><p>-----------------------------------------------------------------------------------</p><p>---------------------------------华丽的分割线--------------------------------</p><p>-----------------------------------------------------------------------------------</p><p>另外一种方案是将hanpin.sty文件第38行中定义的\pinyin宏名称重命名为别的名称,如\zhpinyin,然后将hanzibox.sty文件中的第102和108行中对\pinyin宏的引用改为对\zhpinyin宏的引用。</p><p>然后,就可以载入xpinyin宏包,使用其中定义的各种命令了。我发现xpinyin宏包的\pinyin宏可以使用\CJKunderline下划线命令。<br/></p><p>另外,在我的ubuntu+texlive2019中,对于ǚ音,hanpin宏包音调和两个点会重合,而xpinyin宏包是正常的。目前,我没有从源码中找到修改的地方。<br/></p><p>如果直接修改hanzibox.sty第15行\RequirePackage{hanpin}为\RequirePackage{xpinyin},\pinyin命令不变,则发现通过\hanzibox{pinyin=wo3}{inner=cross}将wo3传入\pinyin时无法正常实现注音,测试发现xpinyin宏包的\pinyin命令无法接收宏命令,只能直接接收类似wo3这样的拼音。这一BUG的MWE如下,期待大佬研究解决!<br/></p><p>\documentclass{ctexart}<br/></p><p>% 引入拼音宏包</p><p>\usepackage{xpinyin}</p><p>% 定义拼音宏</p><p>\def\zhpinyin{zhong1guo2}</p><p>\begin{document}</p><p><span style="white-space:pre"></span>&nbsp; \pinyin{zhong1guo2} % 正确</p><p><span style="white-space:pre"></span>&nbsp; \pinyin{\zhpinyin} % 无法使用定义的宏</p><p><span style="white-space:pre"></span>&nbsp; \xpinyin*{中国} % 正确</p><p>\end{document}</p><p style="white-space: normal;">-----------------------------------------------------------------------------------</p><p style="white-space: normal;">---------------------------------华丽的分割线--------------------------------</p><p style="white-space: normal;">-----------------------------------------------------------------------------------</p><p style="white-space: normal;">经过在<a href="https://github.com/CTeX-org/ctex-kit/issues/447">https://github.com/CTeX-org/ctex-kit/issues/447</a>的提问,得到解决xpinyin的问题的方法,因此,可以将hanzibox.sty中第15行对hanpin宏包的引用改为对xpinyin宏包的引用。然后,将第102行和第108行中\pinyin{\mm@pin}改为\expandafter\pinyin\expandafter{\mm@pin}。</p><p style="white-space: normal;"><br/></p><p style="white-space: normal;">这样hanzibox.sty宏包将不依赖于hanpin.sty宏包,在使用中,能够保证各类拼音的排版结果的一致性,并且可以指定需要的拼音字体。</p><p style="white-space: normal;"><br/></p><p style="white-space: normal;">修改后的hanzibox.sty见附件。</p><p style="line-height: 16px;"><img src="https://wenda.latexstudio.net/static/js/neweditor/dialogs/attachment/fileTypeImages/icon_rar.gif"/><a style="font-size:12px; color:#0066cc;" href="/data/ueditor/php/upload/file/20190827/1566915093554754.zip" title="hanzibox.zip">hanzibox.zip</a></p><p style="white-space: normal;"><br/></p><p></p><p></p><p></p><p></p><p></p>
0
<pre class="brush:plain;toolbar:false">\documentclass[12pt,addpoints,answers,marginline]{exam} % 使用的是exam宏包 \usepackage{hanzibox} % 制作汉字田字格 %\usepackage{ctex} % 写中文要用到 \xeCJKsetup{underline={skip=false}} % 设置下划线自动跳过中文标点符号 \usepackage{multirow} % 纵向合并单元格要用到 \usepackage{tabularx} % 制作表格要用到 %\usepackage{xpinyin} % 拼音宏包 %\newfontfamily{\Pinyinfont}{GB Pinyinok-B} % 拼音字体使用的是 GB Pinyinok-B 字体 %\xpinyinsetup{font=\Pinyinfont}   % 自定义带圈数字 \usepackage{NumGoG} \newcommand{\quan}[1]{\numcircle[1.02em][-0.3ex]{#1}} % 白圈 \newcommand{\quanB}[1]{\numcircle[1.02em][-0.3ex][1]{#1}} % 黑圈 \newsavebox{\zdxl} % 左密封线样式 \sbox{\zdxl}{ \begin{minipage}{0.8\paperheight} \begin{center} \kaishu 学校 \underline{\hspace{15ex}} \quad 班级\underline{\hspace{15ex}} \quad 姓名 \underline{\hspace{15ex}} \quad 学号 \underline{\hspace{15ex}} \quad  \\ \vspace{1ex} \dotfill 〇 \dotfill 装 \dotfill 〇 \dotfill 订 \dotfill 〇 \dotfill 线 \dotfill 〇 \dotfill \end{center} \end{minipage} } \newsavebox{\zdxr} % 右密封线样式 \sbox{\zdxr}{ \begin{minipage}{0.8\paperheight} \begin{center} \kaishu  请 \hfill 不 \hfill 要 \hfill 在 \hfill 装 \hfill 订 \hfill 线 \hfill 内 \hfill 答 \hfill 题 \hfill \\ \vspace{1ex} \dotfill 〇 \dotfill 装 \dotfill 〇 \dotfill 订 \dotfill 〇 \dotfill 线 \dotfill 〇 \dotfill \end{center} \end{minipage} } \newcommand{\printmlol}{    \reversemarginpar \marginpar{\rotatebox{90}{\usebox{\zdxl}}} } % 自定义左密封线命令 \newcommand{\printmlor}{    \normalmarginpar \marginpar{\rotatebox{-90}{\usebox{\zdxr}}} } % 自定义右密封线命令 \usepackage{zhnumber} % 可以把题号变为中文  % 设置页眉和页脚 \pagestyle{headandfoot}  % \firstpageheadrule  % \firstpageheader{}{}{\kaishu 某某小学语文期末考试试卷}  % \runningheader{}{}{\kaishu 某某小学语文期末考试试卷}  % \runningheadrule \firstpagefooter{}{\kaishu 第\thepage\ 页(共\numpages 页)}{} \runningfooter{}{\kaishu 第\thepage\ 页(共\numpages 页)}{}  % 定义题的分数的样式 \pointname{ 分} % 显示效果为(多少多少 分) \pointformat{(\thepoints)}  % 显示答案的时候,显示“答:” \renewcommand{\solutiontitle}{\noindent\textbf{答:}}  % 定义多级题号    % 还需要在试卷的左侧制作学校、班级、姓名、考号等考生填写的信息栏,代码暂无 \renewcommand{\thepartno}{\arabic{partno}} \renewcommand{\thequestion}{\arabic{question}} \renewcommand{\thesubpart}{\roman{subpart}} \usepackage{pifont} \begin{document} \printmlol  % 设置试卷的标题 \begin{center} {\Large \heiti 三年级下学期语文期末质量检测卷} {\kaishu 本试卷满分为100分,考试时间为90分钟。} \end{center}  % 这里写卷首语和考试的注意事项 {\fangsong 卷首寄语:同学们,紧张充实的一个学期又结束了。现在就请打开你智慧的头脑,来采摘这些丰收的果实吧!相信只要细心,你一定会完成得很出色的。加油!} {\fangsong 小朋友,做做这份试卷,你会发现自己真的学会了很多知识,有一种成就感。相信你今后一定会更喜欢语文,会把语文学得更好。祝你顺利做完试题,取得好成绩!} 这里写第三个注意事项。  % 在这里制作每一个大题以及总分的总计分表    % 现在这个总计分表的单元格有点小,需要稍微调整一下    % 表格新定义一个命令比较好一些,但是目前还不会 \begin{center} \begin{tabular}{|c|c|c|c|c|c|c|c|}\hline \multirow{2}*{题号} & \multicolumn{5}{c|}{第一部分} & \multirow{2}*{第二部分} & \multirow{2}*{总分}\\\cline{2-6}     & 一 & 二 & 三 & 四 & 五 &   &\\\hline 得分&    &    &    &    &    &   &\\ \hline \end{tabular} \end{center}  % 在这里制作每一个大题旁边的计分表    % 这个大题旁边的计分表需要靠左一点,不要妨碍了大题的题目    % 这里也需要新定义一个表格 \begin{tabularx}{10em}% {|*{2}{>{\centering\arraybackslash}X|}} \hline 得分 & 评卷人 \\ \hline      &        \\ \hline \end{tabularx}\quad{\heiti 一、基础知识。(30分)} % 第一大题  % 这里要制作田字格,暂时不知道如何制作,期待大神 \begin{questions} \question[10] 看拼音,写汉字。    \hanzibox{pinyin=wo3}{inner=cross}\hspace{-0.4pt}%       \hanzibox{pinyin=men2}{inner=cross}\hfill%    \hanzibox{pinyin=da4}{inner=cross}\hspace{-0.4pt}%       \hanzibox{pinyin=jia1}{inner=cross}\hfill    \hanzibox{pinyin=xi3}{inner=cross}\hspace{-0.4pt}%       \hanzibox{pinyin=huan1}{inner=cross}\hfill    \hanzibox{pinyin=tian1}{inner=cross}\hspace{-0.4pt}%       \hanzibox{pinyin=an1}{inner=cross} \hspace{-4pt}%       \hanzibox{pinyin=men2}{inner=cross}\hfill       % 这里同样期待大神 \question[4] 给加点字选择正确的读音,画“\ding{52}”。 \begin{parts} \part \CJKunderdot{缝}\pinyin{feng2}\ \pinyin{feng4}补 \part \CJKunderdot{模}\pinyin{mo2}\ \pinyin{mu2}补 \end{parts}  % 这里要解决带圈数字的问题    % 感谢林木老师的指导,现在已经解决了 \question[4] 一字多解,给加点的字选择正确的意思,只填序号。 \begin{parts} \part 第一小题 \part 第二小题 \end{parts}  % 这里要在给出了题目之后的下一行设置横线效果  % \enspace\hrulefill \question[12] 按要求写句子。 \begin{parts} \part 一个个轻清脆丽的小球像一串美丽的梦。(缩句) \enspace\hrulefill \part 枣核说:“大家都不用愁,我有办法!”(改转述句) \enspace\hrulefill \part 他们高兴极了,\CJKunderline{唱了一首又一首的歌,还围在一起跳舞。}(照样子补充句子) \enspace\hrulefill \part 用修改符号修改病句。 \printmlor \quan{1} 有一条漂亮的红裙子。 % 这里的题号还需要设置一下 \quan{2} 我推测蜜蜂可能一定找不到家。 \end{parts} \end{questions}  % 这里也需要新定义一个表格 \begin{tabularx}{10em}% {|*{2}{>{\centering\arraybackslash}X|}} \hline 得分 & 评卷人 \\ \hline      &        \\ \hline \end{tabularx}\quad{\heiti 二、积累运用。(15分)} % 第二大题 \begin{questions} \question[4] 古诗大盘点。 \begin{parts} \part \fillin[][2in],野渡无人舟自横。(《滁州西涧》) \part 人间四月芳菲尽,\fillin[][2in]。(《大林寺桃花》) \end{parts} \question[3] 单元串串连。 \begin{parts} \part 造纸术是东汉时代的\fillin[][2in]发明的;《清明上河图》是北宋的\fillin[][2in]画的;赵州桥是隋朝的\fillin[][2in]设计并参与建造的。 \end{parts} \end{questions}  % 这里也需要新定义一个表格 \begin{tabularx}{10em}% {|*{2}{>{\centering\arraybackslash}X|}} \hline 得分 & 评卷人 \\ \hline      &        \\ \hline \end{tabularx}\quad{\heiti 三、习作天地。(30分)} % 第三大题  % 这里需要制作作文方格,还没有具体代码 \begin{questions} \question 世界上没有两片完全相同的叶子,同样没有两个完全相同的人。每个人都有不同的性格、爱好、优点、缺点。这次习作,就让我们来写一写自己,向别人展示一个真实的你。标题自拟,记住要抓住自己的特点来写,并且把句子写通顺。300字左右。 \end{questions} \end{document}</pre><p><img src="/data/ueditor/php/upload/image/20190825/1566718203834482.png" title="1566718203834482.png" alt="image.png"></p>

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。