前言
最近在看LaTeX的内容,遇到的第一个问题就是输入中文不显示。为了解决这个问题,查了资料才知道是没有使用中文处理的宏包CJK,导入包之后就可以正常的显示了。
问题代码
\documentclass{article}
\usepackage{CJK}
\begin{document}
测试中文显示
\end{document}
这个代码运行之后是不能显示中文的,需要改成下面的代码:
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{gkai}
测试中文显示
\end{CJK*}
\end{document}
这样运行之后就可以显示了,如下:
那么细心的朋友可能就要问了,你这显示的是楷体啊,如果我要用宋体怎么办?这肯定是有办法的,只要你的系统里有宋体,那么就一定可以显示出来。然后问题来了,怎么知道系统里的字体库呢?下面就说说怎么得到系统里的字体库。
因为我使用的Ubuntu系统,所以这里我就只说说Ubuntu下的方式。我们可以在终端使用dpkg -l|grep latex命令来得到字体库,如下:
可以看到,有gbsn,gkai,bkai,bsmi等字体可以是用,我们来测试一下:
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{UTF8}{gkai}
测试中文显示
\end{CJK*}
\begin{CJK*}{UTF8}{gbsn}
测试中文显示
\end{CJK*}
\begin{CJK*}{UTF8}{bkai}
测试中文显示
\end{CJK*}
\end{document}
运行结果如下:
能够看到的是gkai和gbsn都可以正常使用,但是bkai却不能使用,具体的原因我还没找到,毕竟刚开始接触。
这样支持的字体类型也太少了,能不能像LibreOffice那样使用系统提供的字体呢,就是下面的字体:
这样的话灵活性就会很大了,我们安装了什么字体就可以使用什么字体,到底该怎么实现呢?不抛弃不放弃的我终于找到了,那就是使用包{fontspec}。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{SimSun} %宋体
\newfontfamily\huawenxingkai{华文行楷} %华文行楷
\newfontfamily\youyuan{幼圆} %幼圆
\newfontfamily\huawenhupo{华文琥珀} %华文琥珀
\begin{document}
我是正文,我使用的是宋体,我是正文,我使用的是宋体,我是正文,我使用的是宋体,
重要的事情说三遍!\\
{\huawenxingkai 这里使用华文行楷}\\
{\youyuan 这里使用幼圆}\\
{\huawenhupo 这里使用华文琥珀}
\end{document}
运行如下;
可以看到,我们可以使用\newfontfamily设置自己的字体,很方便。需要注意的是使用fontspec的话需要使用xelatex编译。