latex 对中文字体设置的一些解决

如下也能够看做是本文的心路历程windows

动机:使用 TeX 编排文档虽不能像 Word 等所见即所得,但它能够知足你几乎任何版式要求,让你有更多时间专一于内容而不是格式。编辑器

手段:经过任何纯文本编辑器或者 TeX 编辑器,将你的内容按规定格式写入 .tex 文件。再根据排版引擎编译 .tex 文件,最终获得目标文档。字体

阻碍:直接使用 Xelatex其余引擎编译带中文的文件时,会出现乱码,这是由于 latex 默认的字体不支持中文,这时能够 一、把默认字体更改为支持中文的字体; 二、使用 CTex 文档类ctex 宏包xeCJK 宏包使得 latex 支持中文输出。而设置中文字体可经过如下实现:   (英文默认字体为:Computer Modern Roman [CMR],由Donald Knuth建立,可是不支持中文,须要设置成支持中文的字体 - {来自:Egg's Blog}。既然要应用于中文环境,排版格式等要求也应符合中文习惯,仅仅改变字体是不够的。spa


 

<center>使用CTeX文档类\ctex宏包</center>

 

此部份内容来自CTeX宏集手册code

%在导言区使用如下代码,得到中文支持
\documentclass[utf8,a4paper,12pt] {ctexart}
%或者
\usepackage {ctex}

设置完成后,中文默认字体为 宋体,如需改变,可使用表格中的命令对中文字体进行设置,windowsnew 的字库中包括如下字体:blog

字体 命令1 命令2
宋体 \songti \CJKfamily{zhsong}
黑体 \heiti \CJKfamily{zhhei}
仿宋 \fangsong \CJKfamily{zhfs}
楷书 \kaishu \CJKfamily{zhkai}
隶书 \lishu \CJKfamily{zhli}
圆体 \youyuan \CJKfamily{zhyou}
微软雅黑 \yahei \CJKfamily{zhyahei}

\CJKfamily{family}:切换CJK字体族为 〈family〉  文档

使用以下代码:

\documentclass[12pt,a4paper,utf8]{ctexart}
\begin{document}
\noindent 中文字体(默认宋体)\\
\fangsong 中文字体(仿宋) \songti 中文字体(宋体) \lishu 中文字体(隶书) \heiti 中文字体(黑体)\\
\CJKfamily{zhkai} 中文字体(楷书) \CJKfamily{zhyou} 中文字体(幼圆) \CJKfamily{zhyahei} 中文字体(微软雅黑)\\
\end{document}

-------------- 人为分界线 ----------------get

不建议使用 \textrm{},\textsf{},\texttt{} 来改变中文的字体,**中文字体的选择与西文字体是分离的**。
如下内容只是我无聊的实验而已,目前还解释不清:

\textrm{} 至关于默认字体,即中文宋体,英文罗马
\textit{}   默认中文楷书,若前面定义过下文中文字体,则为定义字体,英文斜体
\textsf{}  中文微软雅黑,英文无衬线体
\texttt{}  中文仿宋,英文等宽字体
注意 textsf 会改变中文标点符号
但常规的字体加粗如 \textbf{} 能够互用

 

<center>使用xeCJK宏包</center>

 

始终的博客里,一份其实很短的 LaTeX 入门文档中提到,大多数状况下不推荐使用xeCJK宏包   知乎有相关讨论 处理中文时应该用ctex宏包仍是应该用xeCJK宏包?博客

打个比方说的话,ctex包如果一辆车,xeCJK就是个轮子。轮子是车子的重要零件,但我仍是建议你开车,把装轮胎的事交给工程师。
----- 来自知乎用户

xeCJK是一个Xelatex宏包,前面使用CTeX文档类或者ctex宏包时,若经过Xelatex编译则会自动配置xeCJK宏包来排版字体,这一步骤已经封装好,且够用。(-车子轮胎- 的大意,若想实现某些操做,则可查阅xeCJK的使用)it

xeCJK只提供了字体和标点控制等基本CJK语言支持。在这里,对xeCJK宏包的字体设置进行简单说明,引入xeCJK宏包只要在导言区使用:

\usepackage {xeCJK}

\setCJKmainfont {font name}
% 设置正文罗马族的CJK字体,影响\rmfamily和\textrm 的字体
\setCJKsansfont {font name}
% 设置正文无衬线族的CJK字体,影响\sffamily和\textsf 的字体
\setCJKmonofont {font name}
% 设置正文等宽族的CJK字体,影响\ttfamily 和 \texttt 的字体

  windows下预装的中文字体有:

  • Arial Unicode MS
  • FangSong,仿宋
  • KaiTi,楷体
  • Microsoft YaHei,微软雅黑
  • MingLiU,细明体
  • NSimSun,新宋体
  • PMingLiU,新细明体
  • SimHei,黑体
  • SimSun,宋体

只要将font name改成上述字体名称(英)便可


 

最后更新于 2019年12月25日 --- 最初发表于 2019年12月20日 本文采用 BY-NC-SA协议,转载请注明出处。

相关文章
相关标签/搜索