xelatex的生僻字处理

本文介绍了在 LaTeX 中处理中文生僻字的三种方法:直接安装字体、录制播放(图片插入)和仓颉造字。详细阐述了每种方法的操作步骤,并通过实例展示了如何利用 LaTeX 的图形处理功能创建和组合汉字。此外,还探讨了字体选择和排版原则,以及如何优化左右结构和上下结构汉字的组合。最后提出了半包围结构汉字的排版思考及宏定义的进阶应用。
摘要由CSDN通过智能技术生成

直接方法:安装字体

比如思源宋体。

间接方法

http://blog.chinaunix.net/uid-736168-id-376014.html
在使用latex进行中文排版时,难免遇到生僻字。如果处理不好,则会降低排版者的成就感、加重挫折感,阅读者也会心生不爽,暗怨排版者偷懒。排版 装帧精良、品相完好的电子书是每个LaTeX爱好者的追求,而生僻字的处理这一细节也不容小觑。这里我分享一下自己在对付生僻字方面的一些心得,抛出这块 板砖,但愿能引出玉石。希望高手不吝赐教,晒出各自的实践经验,以便大家共同提高。

一、原装正版方案:安装字库
最直接,同时也是最有效的处理方法,莫过于安装大字库。这里的大字库包括两方面,简单来说就是,源文件的字库和PDF的字库。

源文件的字库是为了让排版者看清楚所要处理的内容是什么。生僻字在tex文件中一抹黑全是乱码,在生成的PDF中却是可读汉字,这样的事情 不是不可能。这说明源文件所依赖的计算机环境中,字体信息不全。而PDF所使用的字体却可以与计算机环境字体相对独立,因此出现上面所说的怪事。

我安装了GB18030 Support Package的SimSun18030.ttc以及方正超大字符集。这样一来,在计算机中,只要选中了编码和字体,就不存在无法显示的小方框了。

但是,即使能在计算机中正常显示,也未必能在生成的PDF中正常显示。这是因为,latex系统依赖额外的字型描述信息,才能画出正确的汉字。

由于latex的两种字体中,GBK家族字体丰富,字型饱满,虽然支持的汉字有限,但是仍然是主流选择。而utf8家族里,尤其Unicode超大字符集字体,虽然支持更多的汉字,但是由于字体选择少,字型不丰满,较少人选择。

推荐文章:
二、枪版方案:录制播放
方法要领:使用其它工具画出汉字,保存成图片格式,以便调用。高手可以使用EPS图,中手们使用jpg或png就可以了。

假设要生成左”扌”右”中”这个字,(表示我们要将生僻字握在手中),其字体代码为AA220。
环境:windowsxp+方正超大字符集+office2003+Photoshop CS9.0+CTEX

注意,需要加入\usepackage{graphicx}才能正确编译。

打开word2003,新建文档,插入->符号,在下方的输入框中输入22AA0,如果所示,就会出现左”扌”右”中”这个字,如图所示:
点击插入,就会在word中出现该字。如图:

选择并复制该字备用。

打开PS,新建文档,参数如图所示:
点击”好”按钮。由于72X72较小,需调整显示比例到看着顺眼的比例。
然后选择”横排文字工具”,点击图像的左中部,显示出跳跃的光标。此时选择”simsun funder extended”字体,字号选72点,其余默认。

在图像中粘贴,如图:
选择图层->栅格化->文字,使文字融入图层。
保存为22aa0.jpg图像备用。
在latex中加入适当语句显示该图片。
latex语句:左手\lower0.15ex\hbox{\includegraphics[width=.85em]{22aa0ps.jpg}}右中
效果如图:
三、DIY方案:仓颉造字
众所周知,汉字是由笔画、偏旁部首等零部件攒成的。找到正确的零部件,再以适当的方式组合在一起,就可以定制特殊的汉字。此方案为上两种方案的补充。仍以左手右中这个生僻字为例。

注意,需要加入\usepackage{graphicx}才能正确编译。

LaTeX语句:\hbox{\scalebox{0.7}[1]{扌}\kern-.3em\scalebox{0.6}[1]{中}}

语法要点:

hbox{}:插入一个水平盒子
\scalebox{水平缩放因子}[垂直缩放因子]{对象}
kern:水平方向平移一个对象。与之对应,可以使用lower在垂直方向平移对象。
整句话的意思是,插入一个水平盒子,里面先排版一个”扌”字符,它的宽度缩小到70%,高度不变。之后再排版一个”中”字符,其宽度为60%,高度为普通高度,再将这个”中”向左平移0.3em个单位。

为什么”扌”的宽度为60%呢?这是因为,它的右侧是空白的,占了一部分空间,如果分配的宽度太小,会使提手旁太难看。另外,由于0.6+0.7==1.3,所以需要使之重合0.3,才能使之正好占100%的一个字的空间,no more, no less。

我们看一下对比效果:

可以看出仓颉版的更自然一些。再来补充几句。

左右结构的汉字要求”左收右放“,即,左边的字要瘦些,右边的字要肥些,搭配才好看。请看图中的“黑猫”两字的比例。

对应语句为{特立独行的小\hbox\scalebox{0.4}[1]{黑}\kern-.05em\scalebox{0.55}[1]{猫}}真好看

左边为0.4,右边为0.55,缩进了0.05。如果不信可以看看”林”字,左边的”木”是不是比右边的”木”要瘦小,而且一捺也缩成了点。这种情况,如果没有合适的偏旁,用两个”木”生造出来的”林”字会很难看的。

反转、倒立、上下结构的也可以制作,例如:

对应语句为:

\hbox{\scalebox{-1} [1]{特}\lower-1.6ex\hbox{\scalebox{1}[-1]{立}}}独行的\hbox{\scalebox{0.5} [0.5]{小}\lower-1.0ex\hbox{\scalebox{1}[0.4]{黑}}\lower.1ex\hbox{\kern-1em \scalebox{1}[0.5]{猫}}}真好看

好了,如果您受累读了这篇文章,欢迎进行这样的思考,权作作业:

半包围的字如何进行排版?例如”边”字。提示:使用kern与lower进行平移。
进阶作业:如何把左右结构、上下结构的模式作成宏,以便快速造字?例如:\leftright{扌}[0.7]{手}[0.6],(表示左边缩至70%,右边缩至60%,同时右边向左边平移0.6+0.7-1=0.3)。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在LaTeX中显示生僻字有几种方法。一种方法是使用系统中已有的字体,通过设置字体来显示生僻字。例如,在Windows系统中,可以打开Windows设置,搜索"字体",选择中文简体,然后选择任意字体,比如楷体,然后键入生僻字,就可以正常显示了。\[1\]另一种方法是使用TeXLive和XeLaTeX编译,通过引入ctex宏包和设置CJKfamilyfont来显示生僻字。具体的解决方法是使用以下代码:\usepackage{ctex} \setCJKfamilyfont{myfont}{SimSun.ttc} \newcommand{\SetFont}{\CJKfamily{myfont}} \SetFont{生僻字}。\[2\]还有一种方法是使用xeCJK宏包,在正常内容中使用\CJKfontspec命令来显示生僻字。具体的解决方法是使用以下代码:\usepackage{xeCJK} \CJKfontspec{楷体} \fontsize{5.0pt}{\baselineskip}\selectfont{生僻字}。\[3\]这些方法可以根据具体的需求选择使用。 #### 引用[.reference_title] - *1* [关于Latex生僻字显示问题](https://blog.csdn.net/FallyJ/article/details/119786761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [LaTeX中文生僻字显示](https://blog.csdn.net/YK_math/article/details/123942320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [学位论文Latex生僻字显示问题](https://blog.csdn.net/u013613100/article/details/124775086)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值