编译utf8编码的tex文件使用中文truetype

转载 2012年03月22日 19:18:31
发信人: aickgaven (Michael), 信区: TeX
标 题: 编译utf8编码的tex文件使用中文truetype
发信站: 水木社区 (Fri Apr 21 12:51:50 2006), 站内

要从truetype安装新的中文GBK字体,使用hooklee的xGBKfonts
xGBKfonts -usesys -o c:\Downloads HWXW.ttf xinwei
将产生的文件移到localtexmf相应的位置。然后在updmap.cfg中加入关于type1
信息的map文件
initexmf -u initexmf --mkmaps
这样latex没有问题,dvips可以使用type1字体,dvipdfmx可以使用type1或者直
接使用truetype字体,只要编译使用
dvipdfmx -f cid-x.map *.dvi
就可以,pdflatex可以使用type1字体,若要直接使用truetype,在preamble中
加入\pdfmapfile{=cjk_ttf.map}。但是奇怪的是使用simsun或者华文的ttf编译
通过,使用方正的ttf产生的enc和map就始终出错……而dvipdfmx使用方正的ttf却
没有问题。

倘若tex文件是utf8编码的,也可以使用CJK。需要把
\begin{CJK}{GBK}{kai}
之类的改为
\begin{CJK}{UTF8}{}
当然也可以在最后一个花括号里加入song,kai之类的,但是如果文件中含有其
他语言编码的话会出错,可行的方法是
\begin{CJK}{UTF8}{cyberb}
不过里面的中文字体非常难看,可以在中文的地方改为
\CJKfamily{kai}
之类的。比如下面这个例子
----------------------------------------------------------------------------------------------
\documentclass[a4paper,11pt]{article}
\usepackage{CJK}
%\pdfmapfile{=cyberbit.map}
%\pdfmapfile{=ttf-unixinwei.map}
\begin{document}
\begin{CJK*}{UTF8}{}
\CJKfamily{kai}%中文
机遇与挑战并存,新的世界商务体系对并不成熟的中国服务业提出了新的要求。
当今中国服务业的国际化程度如何?从历史数据中又能否推测出中国服务业发展
国际化怎样的趋势?本文收集了近20年来中国的国际收支平衡表和其它相关数据
进行分析,并借鉴已有的研究成果,来浅谈这个问题。

\CJKfamily{cyberb}
%韩语
일부 시스템에서 Gabest Filter들이 연결되지 않던 문제

%德语
Alle Produkte werden auf einer größtmöglichen Anzahl von Plattformen
(Windows, Mac, Linux, Unix-Varianten, Mainframes) und
Entwicklungsumgebungen (COM, C, C++, Java, Perl, PHP, Python, Cobol,
RPG, and Tcl) angeboten.

%日语
PDFlib GmbH社は、ウェブサーバやデータベースサーバ上でオンデマンドのPDF
処理を可能にする、最先端のソフトウェア開発ツールを提供します。

%法语
Le Centre du cancer Roger Maris à Fargo, Dakota du Nord
\end{CJK*}
\end{document}
-------------------------------------------------------------------------------------
将上面的文件保存为utf8编码,用latex编译可以通过。注意需要有
c70cyberb.fd和c70kai.fd两个文件,如果没有可以参考下面aloft的例子,放在
localtexmf\tex\latex\CJK\UTF8\下
-------------------------------------------------------------------------------------
% This is the file c70kai.fd of the CJK package
% for using Asian logographs (Chinese/Japanese/Korean) with LaTeX2e
%
% created by Aloft <aloft@ctex.org>
%
% Version 4.6.0 (26-Nov-2005)

\def\fileversion{4.6.0}
\def\filedate{2005/11/25}
\ProvidesFile{c70kai.fd}[\filedate\space\fileversion]


% character set: Unicode U+0080 - U+FFFD
% font encoding: Unicode

\DeclareFontFamily{C70}{kai}{\hyphenchar \font\m@ne}

\DeclareFontShape{C70}{kai}{m}{n}{<-> CJK * unikai}{}
\DeclareFontShape{C70}{kai}{bx}{n}{<-> CJKb * unikai}{\CJKbold}
\DeclareFontShape{C70}{kai}{m}{sl}{<-> CJK * unikaisl}{}
\DeclareFontShape{C70}{kai}{bx}{sl}{<-> CJKb * unikaisl}{\CJKbold}
\DeclareFontShape{C70}{kai}{m}{it}{<-> CJK * unikaisl}{}
\DeclareFontShape{C70}{kai}{bx}{it}{<-> CJKb * unikaisl}{\CJKbold}

\endinput
---------------------------------------------------------------------------------
当然还要有tfm文件,一般在\localtexmf\fonts\tfm\bitstrea\cyberbit\和
\localtexmf\fonts\tfm\chinese\unikai(sl)下,如果没有可以参考下文自己产
生。这样产生的dvi文件可以用dvipdfmx编译为pdf,需要在cid-x.map中加入
unikai@Unicode@ UniGB-UTF16-H :0:simkai.ttf
unikaisl@Unicode@ UniGB-UTF16-H :0:simkai.ttf -s .167
cyberb@Unicode@ Identity-H :0:cyberbit.ttf
通过以上步骤就可以编译多语言的utf8 tex文件为pdf。

若要使用pdflatex编译utf8编码tex文件使用truetype字体需要有enc文件。将
\texmf\ttf2tfm\base下的Unicode.sfd以及ttf文件拷贝到
c:\temp
运行ttf2tfm
ttf2tfm simkai.ttf -w unikai@Unicode@
ttf2tfm simkai.ttf -w -s 0.167 unikaisl@Unicode@
ttf2tfm cyberbit.ttf -w cyberb@Unicode@
将产生的*.enc文件放入相应目录,如果没有tfm文件的也把tfm文件放入相应目
录,然后自己创建map文件,比如叫ttf-unikai.map和cyberbit.map,文件中是
类似
unikai00 <unikai00.enc <simkai.ttf
unikai01 <unikai01.enc <simkai.ttf
unikai02 <unikai02.enc <simkai.ttf
unikai03 <unikai03.enc <simkai.ttf
unikai04 <unikai04.enc <simkai.ttf
unikai20 <unikai20.enc <simkai.ttf
unikai21 <unikai21.enc <simkai.ttf
unikai22 <unikai22.enc <simkai.ttf
的内容。在tex文件的preamble中加入
\pdfmapfile{=cyberbit.map}
\pdfmapfile{=ttf-unixinwei.map}
这样就可以使用pdflatex编译了。产生utf8的type1字体没有试过。不知道在linux下怎么样
--

※ 来源:·水木社区 http://newsmth.net·[FROM: 162.105.106.*]

【LaTeX 中文乱码,不能正常显示的解决方案,编码的常见问题和解决方案】

答:目前的模板支持GBK/UTF8两种源代码编码方式,支持latex/pdflatex/xelatex等多种编译排版命令,如下表所示。但我们主要推荐采用“UTF8编码+xelatex编译”这种组合,这...
  • MineralterMan
  • MineralterMan
  • 2013年05月27日 00:12
  • 16743

VC++下处理UTF8编码的字符串

在windows下打开一个记事本,保存文件,下面有四种编码选择。ANSI,也就是多字节字符集,在VC中也就是CHAR(char)字符串。Unicode,就是UTF16,在VC中也就是WCHAR(wch...
  • xuexiiphone
  • xuexiiphone
  • 2016年04月26日 18:13
  • 2717

iOS开发笔记之UTF8编码

今天博主有一个字符转码的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.以下是个人的总结,有需要的可以借鉴下: ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串...
  • qq_32744055
  • qq_32744055
  • 2016年07月22日 20:48
  • 1537

关于TrueType字体

关于TrueType字体结构的文章  分类: C/C++ TrueType字体通常包含在单个TrueType字体文件中,其文件后缀为.TTF。OpenType字体是以类似   于Tr...
  • fengxiaochenduanduan
  • fengxiaochenduanduan
  • 2013年12月22日 22:32
  • 1262

UTF-8和中文字符编码(GB2312、GBK、GIB5、GB18030)的识别

1、编码方式介绍 了解一种字符集编码主要是要了解该编码的编码范围,编码对应的字符集(都包含哪些字符),和其他字符集编码之间的关系等。 ASCII ASCII码是7位编码,编码范围是0...
  • u013093948
  • u013093948
  • 2016年01月18日 11:34
  • 2451

UTF8编码和正则表达式

转自:http://www.iteye.com/topic/369753 ruby的编码问题是每一个ruby初学者的最大困扰。下面把我的总结和大家分享一下,希望对大家有帮助。  注:系统windows...
  • dazhi_100
  • dazhi_100
  • 2013年09月17日 21:56
  • 4153

VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符

VS2015支持UTF-8 with BOM编码格式处理中文、西班牙文、法文等非英文字符 Detail: 在使用VS2015编译ImageMagicK库时,由于其中源码文件带有非英文字符串,导致VS编...
  • SkylineV
  • SkylineV
  • 2017年05月24日 16:17
  • 999

编译.java文件时的编码问题

如《字符编码略谈》所述 在编译.java文件生成.class文件的时候,首先要解码.java文件存储的字节流,这需要我们正确指定编码字符流生成该字节流过程中使用的编码方案,否则会出现意想不到的错误。 ...
  • DSLZTX
  • DSLZTX
  • 2015年07月22日 16:12
  • 2200

Unity3D 脚本UTF-8编码/Unity3D 脚本支持中文

Unity3D脚本支持中文解决办法/Unity3D脚本编码格式设置: 1》进入unity安装目录\Unity\Editor\Data\Resources\ScriptTemplates,这个文件夹...
  • laipixiaoxi
  • laipixiaoxi
  • 2016年06月22日 13:48
  • 2527

文件转换为utf-8编码(python小脚本)

本人windows环境,平时从数据库导出数据或者从网上下载csv或txt数据后,会发现各种编码格式。导致有时候打开文件会乱码。为了方便,把文件统一改为utf-8编码,这样就减少了很多麻烦。故写个pyt...
  • csqazwsxedc
  • csqazwsxedc
  • 2017年03月01日 22:57
  • 5476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编译utf8编码的tex文件使用中文truetype
举报原因:
原因补充:

(最多只允许输入30个字)