Linux下的TeXlive 2015 中文问题

据说可实现Linux下TeXlive中英混排的方法:

1. 本方法来自http://seisman.info/mini-template-for-xeCJK.html

xeCJK + xeLaTeX,这大概是目前为止最优的中文解决方案。

\documentclass{article}
\usepackage{xeCJK}

xeCJK将默认使用TeXLive自带的Fandole字体。要能够编译通过,需要将TeXLive自带的中文字体安装到系统中,最简单的办法是在~/.fonts目录下建一个软链接:

ln -s /opt/texlive/2014/texmf-dist/fonts/opentype/public/fandol ~/.fonts/

然后使用xelatex命令编译foo.tex即可。

2.本方法来自http://www.cnblogs.com/lienhua34/p/3675027.html。相比方法1,这大概是较旧的TeXlive实现中英文混排的的方式(?)。

在一份文档foo.tex中:

\documentclass{ctexart}
\begin{document}
你好,\LaTeX!
\end{document}

如果直接编译会出现错误:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "SimSun" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.5
{SimSun}
?

这 是 因 为 ctex 宏 包 默 认 使 用 的 是 windows 系 统 的 字 体, 而 在Linux下 没 有 windows 系 统 的 字 体或者字体名字已经不是SimSun, 所 以 这 里 报 了 找 不 到 宋 体(SimSun)的错误。

ctex 宏包提供了三个字体选项:nofonts、adobefonts 和 winfonts,默认使用的是 winfonts。

如果在 tex 源文件中没有使用其他选项修改字体配置,则需要操作系统中安装有中文 Windows 操作系统自带的四种 TrueType 字体:宋体(simsun)、黑体(simhei)、仿宋体(simfang)、楷体(simkai)。如果使用 adobefonts 选项,则需要操作系统中安装有 Adobe 公司的四款 OpenType 字体:Adobe 宋体、Adobe 黑体、Adobe 仿宋、Adobe 楷体。

eg如下:

思路一:让cTeX使用 nofonts 选项,然后通过 CJK 中文方案将系统自带的中文字体设置成中文的默认字体。

  第一步:通过命令 fc-list :lang-zh 查看 ubuntu 系统自带的中文字体

  $ fc-list :lang-zh | sort
  AR PL UKai CN:style=Book
  AR PL UKai HK:style=Book
  AR PL UKai TW MBE:style=Book
  AR PL UKai TW:style=Book
  AR PL UMing CN:style=Light
  AR PL UMing HK:style=Light
  AR PL UMing TW MBE:style=Light
  AR PL UMing TW:style=Light
  ...
  文泉驿等宽微米黑,文泉驛等寬微米黑,WenQuanYi Micro Hei Mono:style=Regular
  文泉驿等宽正黑,文泉驛等寬正黑,WenQuanYi Zen Hei Mono:style=Regular
  文泉驿点阵正黑,文泉驛點陣正黑,WenQuanYi Zen Hei Sharp:style=Regular
  文泉驿微米黑,文泉驛微米黑,WenQuanYi Micro Hei:style=Regular
  文泉驿正黑,文泉驛正黑,WenQuanYi Zen Hei:style=Regular

  第二步:在文档开头即可使用如下字体设置:

  

  \documentclass[nofonts]{ctexart}
  \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体
  \setCJKsansfont{WenQuanYi Zen Hei} %设置文泉驿正黑字体作为中文无衬线字体
  \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置文泉驿等宽正黑字体作为中文打字机字体
  \begin{document}
  你好,\LaTeX!
  \end{document}

  然后即可使用xeLateX编译。

  通过 setCJKmainfont 等命令我们可以使用 texlive 处理中文字符了,但是要在每个中文文档都写这么一段命令,确实是个烦人的事情。

  于是有了思路二。

思路二:通过将上述设置字体的这段命令写入到自定义的宏包文件 mylinuxfonts.sty 中,然后在文档中以命令 \usepackage{mylinuxfonts} 使用这个自定义宏包即可。

新建mylinuxfonts.sty,内容参考如下:

  

  \ProvidesPackage{mylinuxfonts}
  \setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN} %设置中文默认字体
  \setCJKsansfont{WenQuanYi Zen Hei} %设置中文无衬线字体为文泉驿正黑
  \setCJKmonofont{WenQuanYi Zen Hei Mono} %设置中文打字机(等宽)字体为文泉驿正黑
  \endinput

然后在文档中使用如下:

  

\documentclass[nofonts]{ctexart}
\usepackage{mylinuxfonts}
\begin{document}
你好,\LaTeX!
\end{document}

texlive 提供一个变量 TEXMFHOME(默认为~/texmf),给用 户 存 放 自 己 独 立 安 装 的 宏 包、 字 体 等。 宏 包 文 件 需 要 放 置 到 目 录TEXMFHOME/tex/latex 或 者 它 的 子 目 录  下。 我 们 将 mylinuxfonts.sty放到目录~/texmf/tex/latex 下,然后编译 foo.tex 文件即可。texlive 另外提供了一个变量 TEXMFLOCAL(默认为 /usr/local/texlive/texmf-local),给系统管理员用来安装供整个系统使用的额外的宏包或者字体。宏包文件需要放到目录 TEXMFLOCAL/tex/latex 或者它的子目录下。我们将 mylinuxfonts.sty 文件放到这个目录下:

  sudo cp mylinuxfonts.sty /usr/local/texlive/texmf-local/tex/latex/local

   TEXMFLOCAL 目录需要一个保持更新的文件名数据库,否则新增的文件就无法找到。我们通过命令 mktexlsr 来更新它。

  原作者提供的优化配置:

现在我们的 texlive 已经支持中文了,但我们还可以再优化一下我们的ctex 配置。

上面提到,ctex 默认是使用的字体配置选项是 winfonts,那么我们每个要使用 ctex 宏包的 tex 文档中都要设置 nofonts 选项。

ctex 宏包提供了一个配置文件 ctexopts.cfg,该文件中的代码会在 ctex宏包的开头(选项定义后面)执行。我们可以使用此文件设置 ctex 宏包的默认选项。

lienhua34:text$ cd /usr/local/texlive/2015/texmf-dist/tex/latex/ctex/cfglienhua34:cfg$ sudo cp ctexopts.cfg.template ctexopts.cfg
lienhua34:cfg$ sudo vi ctexopts.cfg

然后输入一下内容

% ctexopts.cfg: set default options
\ExecuteOptions{nofonts}
\endinput

保存,然后运行 mktexlsr 命令。ok,此时 ctex 宏包默认的字体选项便改为nofonts 了。

时间: 2024-10-12 01:24:11

Linux下的TeXlive 2015 中文问题的相关文章

JFreechart在linux下不显示及中文乱码问题

一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库提供...... 一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉,原因是jfreechart的在linux系统中需要访问java awt库提供的图形功能,而linux下的绝大多数版本的java awt类库都需要x serv

Linux下关于解决JavaSwing中文乱码的情况

1.下载simsun.ttc(宋体).http://download.csdn.net/detail/lazy_p/4436971 2.linux中跳转到JDK安装目录 ..../jre/lib/fonts 3.sudo mkdir fallback  然后将Windows所拷贝的字体放到fallback中 相关解决网址 http://www.linuxidc.com/Linux/2009-10/21991.htm http://www.cnblogs.com/zhangyongli2011/a

Linux下PHP+MySQL+CoreSeek中文检索引擎配置

说明: 操作系统:CentOS 5.X 服务器IP地址:192.168.21.127 Web环境:Nginx+PHP+MySQL 站点根目录:/usr/local/nginx/html 目的:安装coreseek中文检索引擎,配置MySQL数据库访问接口,使用PHP程序实现中文检索. CoreSeek官方网站: http://www.coreseek.cn/ http://www.coreseek.cn/products/=%22/products-install/step_by_step/ h

Linux 下 man 手册显示中文

Linux 下 man 手册显示中文 获取源码中文包 wget https://src.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz/13275fd039de8788b15151c896150bc4/manpages-zh-1.5.1.tar.gz 解压 tar zxvf manpages-zh-1.5.1.tar.gz 进入解压后的目录执行配置 ./configure --disable-zhtw 执行

linux下sublime text的中文输入问题

晚上经过参照网上的解决方法,实践了一下,解决了sublime 在linux下的中文输入问题 1:切换到~目录,然后新建一个sublime_imfix.c的文件 touch sublime_imfix.c       2:编辑sublime_imfix.c文件   gedit sublime_imfix.c 将下面的代码复制到打开的gedit中 #include <gtk/gtkimcontext.h> void gtk_im_context_set_client_window (GtkIMCo

Linux下sublime 无法输入中文的解决

个人认为linux下的编辑器,对于小白来说,最好用的就是sublime了,但是,安装之后敲代码无法输入中文 ,很尴尬. 百度后,发现了解决方法. 项目链接:https://github.com/lyfeyaj/sublime-text-imfix 解决过程: 安装 Sublime Text 3 安装 Fcitx 输入法 + 皮肤 修复 Sublime Text 2/3's 在 Ubuntu(Debian) 系统下的无法输入中文(CJK 字符)输入法的问题 方法如下: sudo apt-get u

JFreechart 在linux下不显示及中文乱码问题

一.使用JFreeChart建的报表,在window下能正常显示,但是放到linux下就报错,而且有时候会把tomcat挂掉, 原因是jfreechart的在linux系统中需要访问java awt库提供的图形功能,而linux下的绝大多数版本的java awt类库都需要x server提供的一些功能.而基本上作服务器的系统都没有启动x server(甚至根本没安装). 报错如下: X connection to localhost:11.0 broken (explicit kill or s

Linux下Steam中支持中文的办法

搜索过好几个解决方案,诸如添加skin等等,在我的ARCH机器上似乎都不行然后在搜索linux steam cjk时, 发现一个链接中有解决DOTA2显示中文不正确的问题,感觉可能有用,就参考着搞定了这个事情 链接: https://cubarco.org/blog/2015/05/dota2-blocky-cjk-fonts-workaround/#fn:1 解决办法: 创建xxx-font-config.conf,内容见下 <?xml version="1.0"?> &

linux下mysql环境支持中文配置步骤

sql脚本执行前加上: CREATE DATABASE IF NOT EXISTS mydatabase DEFAULT CHARSET utf8 COLLATE UTF8_GENERAL_CI; use broadleaf; 替换原备份中建表编码: ENGINE=MyISAM DEFAULT CHARSET=latin1 全局替换为: ENGINE=InnoDB DEFAULT CHARSET=utf8 这个仅仅是将mysql的database和table支持到中文 建议让mysql全局支持到