Ubuntu16.04配置Latex+中文字体

  • Latex安装
    • 先前安装版本的卸载
      • apt-get安装包的深度卸载
      • 通过安装器“install-tl”安装的texlive卸载
    • 通过安装器的安装方法
  • Latex中使用中文的两种方法: ctex类或CJKutf8包
    • Ctex类
      • 配置Ctex
        • 字体配置:源文件中配置
        • 字体配置:建立字体配置文件,源文件调用
        • 配置默认字体配置选项
      • 安装中文字体
    • CJKutf8包

Latex安装

先前曾通过apt-get的方式装过texlive包(sudo apt-get install texlive-full)。此次通过查阅texlive的官网,重新选择了官方建议的安装方式,具体是下载并使用官方提供的一个安装器 install-tl,内含安装的主脚本和相关配置文件。在安装之前我要先卸载此前安装的texlive包,那这里先记录一下卸载。

先前安装版本的卸载

apt-get安装包的深度卸载

在卸载之前用"tex --version"查看了当前安装的texlive版本是2015年的版本;用“which tex”查看了安装的路径,路径是“/usr/bin”,进一步查看发现与“tex”一同安装在这个路径的工具包很多,足足有几十个,处理bib、dvi、postscript、pdf的都安装在这个路径中,个人不是很喜欢在这样一个主目录下安装很多很杂的工具包。那么现在开始卸载。

sudo apt --purge remove texlive-full

这个命令执行完后发现“tex”竟然还在,然后通过“Tab”对“tex”名称的补全查到很多相关的包,然后执行:

sudo apt --purge remove textlive*

这样删除所有“texlive”的包,再继续执行:

sudo apt autoremove

这样删除因依赖而安装的包,此时“tex”已经被完全删除,接下来可以参照博客对软件包进行清理:

# apt的底层包是dpkg,此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

辅助链接:awk是一种数据和文本处理的命令语言, xargs是给命令传递参数的过滤器。

通过安装器“install-tl”安装的texlive卸载

执行删除命令:

sudo rm -rf /usr/local/texlive/2018
sudo rm -rf ~/.texlive2018

通过安装器的安装方法

  • 安装之前的下载
    下载方式链接
    下载器的链接
  • 运行安装器(Running the installer)
    第一步,解压:
tar xzvf /path-to-installer/install-tl-unx.tar.gz

第二步,运行安装脚本:

sudo ./install-tl.sh

有一个提示,一般情况输入“i”就可以,等待安装完成。

  • 安装后设置PATH
    linux系统PATH设置有专门的文档说明,这里我用的方法是在用户根目录下的“.bashrc”中添加,然后更新PATH。
    在“.bashrc”中添加以下语句:
export PATH=/usr/local/texlive/2018/bin/x86_64-linux:$PATH

注意x86_64-linux要根据自己的路径名字来改,然后执行“source ~/.bashrc”,更新用户环境变量。更新完成后可以测试能否输出“tex”版本,命令是“tex --version”,如果有版本输出,说明安装成功。

  • 测试(Testing)
    用自己擅长的编辑器建立一个“test.tex”文件,输入以下内容:
\documentclass{article}
\begin{document}
Hello \LaTeX!
\end{document}

保存。
在“test.tex”路径中输入tex的编译命令:

xelatex test.tex

将输出包含以下内容的pdf。

至此,texlive套装安装完成并测试成功。还有一种先下载源文件再安装的方法,参照博客

Latex中使用中文的两种方法: ctex类或CJKutf8包

既试用Linux也试用Windows
参考博客1
参考博客2

Ctex类

配置Ctex

ctex 宏包提供了三个字体选项:nofonts、adobefonts 和 winfonts,默认使用的是 winfonts。如果在 tex 源文件中没有使用其他选项修改字体配置,则需要操作系统中安装有中文 Windows 操作系统自带的四种 TrueType 字体:宋体(simsun)、黑体(simhei)、仿宋体(simfang)、楷体(simkai);如果使用adobefonts选项,则需要操作系统中安装有 Adobe 公司的四款 OpenType 字体:Adobe 宋体、Adobe 黑体、Adobe 仿宋、Adobe 楷体。
此处我们打算使用 nofonts 选项(也可以将nofonts设置为默认选项),然后通过CJK中文方案将ubuntu自带的中文字体设置成中文的默认字体。

字体配置:源文件中配置

我们先通过命令 fc-list :lang-zh 查看 ubuntu 系统自带的中文字体,为下一步通过CJK中文方案将ubuntu自带的中文字体设置成中文的默认字体做准备:

fc-list :lang=zh

在得到的字体中选择一种或几种字体用作latex中中文的字体,我的选择如下:

\setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN}  %设置中文默认字体,宋体
\setCJKsansfont{AR PL UKai CN} %设置中文无衬线字体,楷体
\setCJKmonofont{Noto Sans Mono CJK SC} %设置中文打字机(等宽)字体,这个字体不好看。。

如果不喜欢自己系统中自带的中文字体可以参考下面手动安装自己喜欢的字体。
那么建立一个简单的tex文件“test.tex”如下:

\documentclass[nofonts]{ctexart}
\setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN}  %设置中文默认字体,宋体
\setCJKsansfont{AR PL UKai CN} %设置中文无衬线字体,楷体
\setCJKmonofont{Noto Sans Mono CJK SC} %设置中文打字机(等宽)字体,这个字体不好看。。
\begin{document}
你好!\Latex
\end{document}

字体配置:建立字体配置文件,源文件调用

建立“myubuntufonts.sty”文件(文件名自己定),内容如下:

% mylinuxfonts.sty
\ProvidePackage{myubuntufonts}
\setCJKmainfont[ItalicFont={AR PL UKai CN}]{AR PL UMing CN}  %设置中文默认字体,宋体
\setCJKsansfont{AR PL UKai CN} %设置中文无衬线字体,楷体
\setCJKmonofont{Noto Sans Mono CJK SC} %设置中文打字机(等宽)字体,这个字体不好看。。
\endinput

保存这个文件。现在要将myubuntufonts.sty放的位置告知texlive。texlive 提供一个变量 TEXMFHOME(需要给这个环境变量设定值,也就是绝对路径,我是在“~/.bashrc”中添加了“export TEXMFHOME=~/.texmf-var/fonts”,然后执行“source ~/.bashrc”更新环境变量),给用户存放自己独立安装的宏包、字体等。宏包文件需要放置到目录TEXMFHOME/tex/latex或者它的子目录 下。我是将myubuntufonts.sty放到目录“~/.texmf-var/fonts”下,然后重新编译如下“test.tex”文件。

\documentclass[nofonts]{ctexart}
\usepackage{myubuntufonts}
\begin{document}
你好!\Latex
\end{document}

这里创建的“myubuntufonts”宏包只限对当前用户可见,如果要设置全局可见的宏包,请继续参照博客

配置默认字体配置选项

参照博客
在我的ubuntu下也没有安装 windows 系统的字体。而 ctex默认是使用的字体配置选项是winfonts,那么我们每个要使用 ctex宏包的tex文档中都要设置nofonts 选项。
ctex 宏包提供了一个配置文件 ctexopts.cfg,该文件中的代码会在ctex宏包的开头(选项定义后面)执行。我们可以使用此文件设置 ctex 宏包的默认选项。我的ubuntu16.04使用“install-tl”安装器安装的配置文件的地址是“/usr/local/texlive/2018/texmf-dist/tex/latex/ctex/config”,读者可以自行查找。

cd /usr/local/texlive/2018/texmf-dist/tex/latexctex/config
sudo cp ctexopts.cfg.template ctexopts.cfg #备份
sudo vi ctexopts.cfg

在配置文件最后输入以下内容

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

保存,然后运行“texhash”(teTeX、TeXLive、fpTex用texhash;web2c用mktexlsr,参考博客)命令。此时ctex宏包默认的字体选项便改为nofonts了。

安装中文字体

查看已经安装好的中文字体
fc-list :lang=zh
查看是否存在具体字体的详细信息
fc-match -v “AR PL UKai CN”
安装字体,以安装windows字体为例,参考博客:

  • 在/usr/share/fonts/下新建文件夹,如“winFonts”目录,把从windows下拷贝过来的字体都放在这个目录里,这里就是把雅黑字体Yahei.ttf 放进来:
sudo mkdir -p /usr/share/fonts/winFonts
sudo cp Yahei.ttf /usr/share/fonts/winFonts/
  • 改变字体文件权限:
sudo chmod 644 /usr/share/fonts/winFonts/Yahei.ttf

注:改成755也没问题的,但起码要444;这里修改雅黑字体文件的权限为644,即当前用户读写,当前组用户只读,其他用户只读。

  • 安装字体
cd /usr/share/fonts/winFonts/
sudo mkfontscale #创建雅黑字体的fonts.scale文件,它用来控制字体旋转缩放
sudo mkfontdir #创建雅黑字体的fonts.dir文件,它用来控制字体粗斜体产生
sudo fc-cache -fv #建立字体缓存信息,也就是让系统认识认识雅黑
  • 删除字体,直接删除“yehei”文件夹,然后执行“sudo fc-cache -fv”。
  • 批量安装字体。
    在主目录下建立一个字体Fonts文件夹,将需要安装的字体拷贝过来。
    sudo mkdir -p /usr/share/fonts/Fonts
    sudo cp *.ttf /usr/share/fonts/winFonts/
    然后,修改权限,全部安装:
sudo chmod 644 /usr/share/fonts/winFonts/*
cd /usr/share/fonts/winFonts/
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv

CJKutf8包

如果不能使用ctex类(ctexart),比如要使用beamer,那么此时可以使用CJKutf8包来解决中文输入的问题,方法如下:

\documentclass[10pt, mathserif]{beamer} % font and size
...
\usepackage{CJKutf8}    % encode for Chinese
\begin{document}
...
\begin{CJK}{UTF8}{gbsn} % all Chinese should be enclosed between the commands
...
\end{CJK}
\end{document}

注意“\begin{CJK}{UTF8}{gbsn}”中的“gbsn”不是上文中系统字体,是CJKutf8包中自带的字体,具体包含哪些可以从自己的安装目录中查,我查到的CJKutf8字体的路径是“/usr/local/texlive/2018/texmf-dist/tex/latex/cjk/texinput/UTF8”,如下[我的CJK中文字体]:

那就是可以使用的字体有“bkai bsmi gbsn gkai mj”,我的这里面有一个字体不能用“song”,细心的你会发现这个字体少一个文件,我起初看别人的代码都用的这个字体,一直生成不了PDF文件,搞了我几天,刚刚才发现这个问题,换了字体,可能的原因是在这个最新版本中“c70song.fdx”文件缺失了。至于有没有方法自己做CJKutf8字体,我还没有探究,先用这这些字体,TTM心累了,哈哈哈。

ubuntu16.04配置Latex+中文字体相关推荐

  1. linux下latex中文字体,Ubuntu下LaTex中文环境配置

    http://www.cnblogs.com/lienhua34/p/3675027.html --------------------------------------- [转] http://h ...

  2. Ubuntu16.04 配置记录(持续更新)

    Ubuntu16.04 配置记录 1.安装中文输入法 https://www.cnblogs.com/darklights/p/7722861.html 2.修改终端命令行路径长度 https://b ...

  3. Ubuntu16.04配置orb_slam2环境,orb_slam的单目数据集,单目实时运行,RGB-D数据集的运行

    Ubuntu16.04配置orb_slam2环境,orb_slam的单目数据集,单目实时运行,RGB-D数据集的运行 1.运行配置过程中参考链接如下: 1.配置orb_slam2环境 参考链接http ...

  4. ubuntu16.04配置a-loam、lego-loam、lio-sam可能遇到的问题及解决方案

    ubuntu16.04配置a-loam.lego-loam.lio-sam可能遇到的问题及解决方案 1.安装a-loam github网址:https://github.com/HKUST-Aeria ...

  5. Ubuntu16.04配置软raid

    Ubuntu16.04配置软raid 1.查看磁盘情况 这里推荐两种查看磁盘情况的命令: # 1.使用fdisk -l查看磁盘root@txkj:/home/txkj# fdisk -lDisk /d ...

  6. ubuntu16.04 配置显卡驱动+cuda8.0+cudnn+pytorch

    ubuntu1604 配置显卡驱动cuda80cudnnpytorch 在线安装显卡驱动 离线安装cuda 安装cudnn 配置环境变量 离线安装cond 配置pytorch 测试pytorch 感悟 ...

  7. Ubuntu16.04 安装LaTex并配置中文环境

    主要参考:https://blog.csdn.net/qq_41814939/article/details/82288145 LaTeX是一种基于TeX的排版系统,由 美国 计算机学家 莱斯利·兰伯 ...

  8. Ubuntu16.04安装搜狗中文输入法1(安装完成后将英文输入法列为常用输入法,中文列为第二输入法)

    1.系统+搜狗版本 我的环境配置:Ubuntu16.04 32位 查看自己的环境配置: 1查看自己的系统版本: sudo lsb_release -a sudo uname --m 第一条命令是查看系 ...

  9. Ubuntu16.04解决文件名中文变问号

    "测试GZKLLT2022.PDF"文件名显示为: ???GZKLLT2022.PDF Java创建文件到Ubuntu16.04服务器,发现文件名,中文全部为"?&quo ...

最新文章

  1. 感觉 Data Access Application Block(DAAB) 里也有可能写得不太好的地方
  2. go string 换行_从词法分析角度聊 Go 代码组成
  3. The Illustrated Transformer 翻译
  4. aac蓝牙编解码协议_最新的真无线蓝牙耳机选购指南
  5. 人耳识别代码_语音识别之——音频特征fbank与mfcc,代码实现与分析
  6. clickhouse一键登陆
  7. SAP UI5 sap.ui.localResources函数调用的作用
  8. 将万亿以下的阿拉伯数字转为中文金额
  9. MyBatis-Plus_简介
  10. jeecg 分布式部署附件共享问题(linux下配置共享磁盘nfs服务)
  11. SendMessage wMsg常量值参考
  12. 用DELPHI为ASP开发文件上载组件
  13. Qt GUI编程 基础入门
  14. visio各版本下载
  15. duilib开发(十):动态添加控件
  16. 浮山中学2021年高考成绩查询入口,浮山中学2019年高考成绩通报,第二波震撼来袭...
  17. 读中国通史的简注(周朝开始)
  18. RFT(Rational Functional Test)是IBM开发的一套自动化测试工具,可以测试web, GUI和console。
  19. 计算机配置64位几个字节,电脑装32位还是64位系统
  20. android垃圾清理动画,[Android开发实战]金山清理大师(猎豹清理大师)一键加速快捷方式动画实现...

热门文章

  1. 锻造 (forging)
  2. 全媒体群管理平台软件,有哪些功能?
  3. Camtasia2020mac喀秋莎中文免费密钥
  4. C++实现二分法求零点
  5. BeautifulSoup爬取国家政策网目标话题的10篇文章,以及基于jieba的关键字生成
  6. 大佬在线复盘:我在训练 DALL·E 时犯过的错
  7. wordpress建站优化技巧
  8. 你知道mist、fog、haze、smog的区别吗?
  9. 基于QCustomPlot的实时曲线图
  10. C#使用checked检查溢出