Metapost画图添加中文字体问题

最近一直在弄论文里面的插图,并且在实验室例会上做了一个用Metapost画图的经验报告,结果让实验室的某些同学抓住要求帮忙做某个很水的课的beamer答辩插图,昨天晚上有空准备就地解决,结果却碰了一鼻子灰,太他妈蛋疼了,和latex对中文的支持一样,metapost对中文的支持简直到了无法忍受的地步,所以,一晚上我果断没搞定那几张插图,整个晚上尽在查资料,幸好今天周末,所以有时间继续搞定这个问题,不过幸好现在基本搞定了,想想大周末的,我也算是蛮拼的,下面介绍具体的解决方案。

在网上查了不少资料,看了王垠的主页,也看了唐老师的学习资料,到此为止我能解决的问题是编译能通过了,其实很简单,就是用label的时候使用命令行指定使用的tex引擎就行了,具体命令如下:

mpost -tex=latex yourfile.mp

编译通过后能生成eps文件,但是打开发现中文是乱码,由于我使用的是GSview预览的,最后发现是GS缺少中文字体的问题,于是我就准备自己安装中文字体,就在此时,我看到了另一个说法,只需要在安装CTEX的时候手动设置一下字体就行了,具体的不多说了,直接上图

这里说明一句,如果你的CTEX文件夹没有图上这么多子文件夹,尤其是没有FontSetup,很可能你安装的不是full版本,所以在此建议大家直接选择full版本的ctex,也就1.3G左右,避免后续的很多麻烦,运行FontSetup,就能看到这样的界面

然后选择生成Type1字库和使用Type1字库,点击安装就可以了,只不过这里的等待时间稍微有点长,不过没关系,能解决问题就行了。

插一段话,介绍的是这两种字体的区别,Type 1字体是Adobe公司随着页面描述语言PostScript一起推出的。页面描述语言对图形描述的一大特点是不采用设备像素进行,而是抽取图形实体描述。因此,这种描述方法经济而有效,并且和设备无关。PostScript语言把文字也看成为图形,可对它施加任何类型的图形操作,从而能够产生高质量的、既符合使用要求又丰富多彩的文字输出。
  PostScript语言的字体结构在LEVEL1时推出2种格式,分别是Type1和Type3。Type3是用户自定义字体。两者具有相似的结构,均是一段PS程序。但还是有区别的,Type3字体给出仅仅是一个框架,不包括数据和字体技术;Type1字体包含了一套完整的字体技术,包括字形设计、数据加密等。
  Type1字形设计,1、比划:在任何Type1字体程序中,字符描述总是核心部分。每个字符形状都由一系列PS程序语句描述路径组成。字符主要垂直比划通常被看做是垂直笔段,主要水平比划被看做水平笔段,笔段能直能弯。2、宽度方向的尺寸参数:西文字符控制比中文字符更加困难,因为不像中文字体框框结构,西文每个字符高度和宽度可能都不相同。西文字符宽度方向上参数有字符原点、字符宽度、左边界和左边界点。3、高度方向的尺寸参数有基线、基线越界位置、顶高、顶高越界位置、X-高度、X-高度越界位置。
  TrueType字体是继Adobe Type 1后又一种典型的曲线字体描述方法,是由Apple和Microsoft公司于1991年联手推出。TrueType字体技术是TrueImage页面描述语言中的字形描述部分。TrueType字体由于没有什么特色,所以并未流行,但TrueType字体是windows系统一级使用的字体,因而开始受到越来越多人的关注。

好吧,科普类的东西就介绍到这里吧,接着讲正题,直接上代码吧,我写了一个test.mp,代码如下:

prologues:=3;

filenametemplate "%j-%c.eps";

verbatimtex

%&latex

\documentclass{article}

\usepackage{CJK}

\begin{CJK*}{GBK}{kai}

\begin{document}

etex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

beginfig(0)

label.lft(btex 我就是要用中文 etex,(0,0));

endfig

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

verbatimtex

\end{CJK*}

\end{document}

etex

end

命令行运行mpost -tex=latex test.mp,于是我就得到了一个test-0.eps,用GSView打开是这样的

然后我选择用acrobat X pro把它转成PDF,方便查看,结果类似

好啦,就写到这里吧,我把代码传个附件吧,方便大家查看,也方便自己以后翻出来看,各位看官,再见,我吃饭去啦!

尼玛不上上传mp文件,只好打包了

时间: 2024-10-29 04:29:48

Metapost画图添加中文字体问题的相关文章

添加中文字体

将自己下载的 ttf字体导入到 untiy 菜单 ->ngui->open -> font maker 窗口 点击 左侧的 sourc 弹出的 选框中选 刚加入的 字体 回到font maker 窗口后 在characters下 选择  dynamic 之后就可以在label中使用该prefab代表的中文字体

Linux CentOS 7 安装字体库 & 中文字体

最近用CentOS上,用phantomjs把html生成pdf,但是生成多次虽然文件生成了,但是内容一直是空的. 找来找去,发现和系统上支持的字体有关系. 运行了下面的命令后: yum install cabextract xorg-x11-font-utils -y 如果是英文字符,就可以生成了,但是中文还是不行. 最后参考了下面的文章终于搞定. 原文地址:http://blog.csdn.net/wlwlwlwl015/article/details/51482065 前言 报表中发现有中文

CentOS 7 部署中文字体环境

1.    安装环境包: # yum -y install fontconfig 这时在/usr/shared目录就可以看到fonts和fontconfig目录 #  ll /usr/share/font* /usr/share/fontconfig: /usr/share/fonts: 2.    添加中文字体           在CentOS中,字体库的存放位置正是上图中看到的fonts目录,所以我们首先要做的就是找到中文字体文件放到该目录下,而中文字体文件在我们的windows系统中就可

CentOS 7 安装字体库 & 中文字体

前言 报表中发现有中文乱码和中文字体不整齐(重叠)的情况,首先考虑的就是操作系统是否有中文字体,在CentOS 7中发现输入命令查看字体列表是提示命令无效:  如上图可以看出,不仅没有中文字体,连字体库都没有,那么接下来就记录一下在Linux CentOS7中如何安装字体库以及中文字体. 安装字体库 在CentOS 4.x开始用fontconfig来安装字体库,所以输入以下命令即可: yum -y install fontconfig 这时在/usr/shared目录就可以看到fonts和fon

ubuntu 16.04 + python + matplotlib下画图显示中文设置

一.需求 因为在python画图显示的时候,经常需要展示一些中文,但是ubuntu系统下按照默认安装方式安装的时候,一般是不能显示中文的,当强行给legend.xlabel.ylabel赋予中文的时候,会显示为方块 二.参考 http://blog.csdn.net/onepiece_dn/article/details/46239581 三.配置方法 (1)  显示本机的同时可用的中文和西文字体 def dispFonts(): #显示可用的中文字体,同时支持英文的 from matplotl

Gitbook 生成 pdf 中文字体错乱问题解决办法

Gitbook 生成 pdf 中文字体错乱问题解决办法 用过 Gitbook 的都知道, Gitbook 会自动生成 pdf 以提供下载, 但十分遗憾的是自动生成的 pdf 对中文的支持并不好, 经常出现字体不一致的现象, 影响阅读, 强迫症更是难以忍受. 示例: 下面针对这一问题提供简单的解决办法: 本地命令行生成 pdf 文件. 当然这种方法有一定局限性, 你需要找到托管在 github 对应的源码仓库且转换过程中不出错. (由于水平有限未能解决在线生成的pdf中文字体错乱问题, 见谅. 也

odoo报表字体-文泉译中文字体-freebsd

来源: Odoo8.0中使用文泉译中文字体         http://blog.csdn.net/vnsoft/article/details/40056935 FreeBSD wkhtmltopdf安装             http://www.2cto.com/os/201306/220710.html Odoo8.9打印中文字体配置分析详解  http://www.3e3c.com/erp/odoo/230.html 1.安装文泉驿系列字体 cd /usr/ports/x11-fo

css中文字体与英文写法对应列表

css中文字体与英文写法对应列表:在写css代码的时候,如果需要中文字体,当然可以直接写中文字体的名称,但是在IE6下可能会出现问题,所以最好要用英文名称,下面就是主要中文字体对应的英文名称列表.中文字体对应的英文写法: 华文细黑:STHeiti Light [STXihei] 华文黑体:STHeiti 华文楷体:STKaiti 华文宋体:STSong 华文仿宋:STFangsong 俪黑 Pro:LiHei Pro Medium 俪宋 Pro:LiSong Pro Light 标楷体:Biau

python matplotlib.plot画图显示中文乱码的问题

在matplotlib.plot生成的统计图表中,中文总是无法正常显示.在网上也找了些资料,说是在程序中指定字体文件,不过那样的话需要对plot进行很多设置,而且都是说的设置坐标轴标题为中文,有时候图例的字体也无法改正. 原因:matplotlib默认字体并不是中文字体. 解决方法:将某中文字体设为默认首选字体,本文拟将默认字体设为 微软雅黑 . 环境:win7 x64, python2.7 过程: 在python的安装目录中找到配置文件:%Python_Home%\Lib\site-packa