Ubuntu下解决LaTeX不显示中文的问题

来源:互联网 发布:双十一淘宝海报素材 编辑:程序博客网 时间:2024/04/28 19:25

前言

  最近在看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编译。

0 0