含有中文标签的mp文件在CTeX环境下编译成功,但在TeXLive环境下编译失败

发布于 2025-04-06 11:45:15

比如这个网上经典的mp图片,在CTeX环境下正常,但在TeXLive环境中就无法通过:

verbatimtex                                          
%&latex 
\documentclass{article}
\usepackage{CJK}       
\begin{CJK}{GBK}{song}
\begin{document}      
etex            

beginfig(1);
drawarrow origin--(0,100);
drawarrow origin--(100,0);
drawdot origin withpen pencircle scaled 2pt;
label.bot(btex 原点 etex, origin);
label.lft(btex $y$ etex, (0,100));
label.lrt(btex $x$ etex, (100,0));
endfig;

verbatimtex
\end{CJK}
\end{document}
etex

end

查看更多

关注者
0
被浏览
132
2 个回答
远方不远
远方不远 1天前
Hello, LuaLaTeX!

创建mwe.mp文件,输入下方代码后保存:

verbatimtex                                          
%&latex 
\documentclass{article}
\usepackage{CJK}       
\begin{CJK}{UTF8}{gbsn}
\begin{document}      
etex            

beginfig(1);
drawarrow origin--(0,100);
drawarrow origin--(100,0);
drawdot origin withpen pencircle scaled 2pt;
label.bot(btex 原点 etex, origin);
label.lft(btex $y$ etex, (0,100));
label.lrt(btex $x$ etex, (100,0));
endfig;

verbatimtex
\end{CJK}
\end{document}
etex

end

然后在win10+TL2025的电脑上,命令行输入mptopdf mwe.mp进行编译,得到mwe-1.pdf

image.png

其中使用的汉字是gbsn,但TL上貌似不能任意更换字体。

image.png

Sagittarius Rover
我要成为Typst糕手/(ㄒoㄒ)/~~

Claim: 我不太清楚CTeX套装的编译原理,基于cct或者直接显式调用CJK宏包的中文处理方式从目前来看已经过时了。

如果没有中文数学期刊/某些古早模板的投稿/编译需求,请使用新的发行版TeXLive或者MikTeX,并且使用ctex宏包而不是CJK宏包自带的CJK环境,OP提供的这一网上经典的mp图片似乎有些过时:

这里暂时没有直接回答你的问题,但我探索了一个可行的方案(也应该是比较现代的方案),可以使用luamplib包直接导出为.pdf

注意此时文件应该保存为test.tex而不是test.mp

\documentclass[border=5mm]{standalone}
\usepackage{ctex}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);

% 坐标轴绘制
drawarrow origin -- (0,100);  % Y轴(向上)
drawarrow origin -- (100,0);  % X轴(向右)

% 原点强化显示
drawdot origin withpen pencircle scaled 2pt;

% 中文标签系统
label.bot(btex 原点 etex, origin);       % 原点标注
label.lft(btex $y$ etex, (0,100));       % Y轴标签
label.rt (btex $x$ etex, (100,0));       % X轴标签

endfig;
\end{mplibcode}
\end{document}

TeXLive下直接使用lualatex test.tex编译可以得到图片。

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览