热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LaTex中关于字体的一些问题(针对ubuntu系统,中文字体)

LaTex使用之关于中文字体的一些问题(针对ubuntu系统)文章目录LaTex使用之关于中文字体的一些问题(针对ubuntu系统)0.基础一些文件格式一些程序1.字体的设置&#x
LaTex 使用之关于中文字体的一些问题(针对 ubuntu 系统)

文章目录

  • LaTex 使用之关于中文字体的一些问题(针对 ubuntu 系统)
    • 0. 基础
      • 一些文件格式
      • 一些程序
    • 1. 字体的设置(针对中文)
      • 1.1 一些基础
      • 1.2 自定义字体
        • 1.2.1 使操作系统的 fontconfig 库找到 TeX 附带字体
        • 1.2.2 设置 TeX 可以根据字体名找到相应字体


0. 基础


一些文件格式


  • DVI : 最初 TeX 输出格式,不能嵌入字体和图形。也是后来PS、PDF的中间格式。
  • PS : PostScript
  • PDF : 文档

一些程序

关于文件格式转换

  • dvips : 将 DVI 文件转化为 PS 文件
  • ps2pdf : 将 PS 文件转为 PDF 文件
  • dvipdf : 将 DVI 转为 PDF 文件
  • dvipdfm/dvipdfx : dvipdf 的扩展,支持更多的 pdf 功能和字体

关于 TeX 引擎

  • TeX : 最早的 TeX 程序,功能和输出相对单一;ACSII 编码
  • ϵ−TeX\epsilon - TeXϵTeX : 对 TeX 的扩展
  • pdfTeX : 能够直接输出 PDF 文件,但也保留了输出 DVI 的功能;UTF-8 编码
  • LuaTeX : 将 TeX 和脚本语言 Lua 结合起来;UTF-8 编码
  • XeTeX : 将 DVI 格式扩充为更为强大的 xdv 格式,可以直接生成 pdf 文件;UTF-8 编码

1. 字体的设置(针对中文)


1.1 一些基础

TeX 中对于字体的设定包含五个方面:

  • 字号 (font size):字体的大小
  • 字体编码 (font encoding):字体包含的符号,不常用
  • 字体族 (font family):字体的类型(如默认的罗马字体族、无衬线字体族、打字机字体族三类)
  • 字体形状 (font shape):默认字体形状有直立形状、斜体形状、意大利形状、小型大写形状四类
  • 字体系列 (font series):默认字体系列有中等、加粗加宽两类

而对于中文来说,一般主要设定其字体族。在 TeX 中常使用 xeCJK 或 CJK 宏。选择使用中文字体族可以使用如下命令

% windows 常用四种字体族
\CJKfamily{hei} 黑体
\CJKfamily{kai} 楷书
\CJKfamily{song} 宋体
\CJKfamily{fs} 仿宋
% 或使用 ctex 宏包后简化命令
\heiti 黑体
\kaishu 楷书
\songti 宋体
\fangsong 仿宋
\li 隶书
\you 幼圆

以上都是 windows 中预设的 TeX 常用字体,显然有时是不够用的。因此,有时就需要把安装在系统中的一些字体设定为 TeX 可用字体。如何设定,下面有详细描述。先说设定好后,如何使用。

对于中文而言,使用 xeCJK 宏包。字体使用通过如下命令

% 先设置声明
\setCJKmainfont[<可选选项>]{<字体名>} 正文罗马字体族
\setCJKsansfont[<可选选项>]{<字体名>} 无衬线字体族
\setCJKmonofont[<可选选项>]{<字体名>} 打字机字体族
\setCJKfamilyfont{<中文字体族>}[<可选选项>]{<字体名>} 中文字体族设置声明
% 后使用
\CJKfamily{<字体族名>}

说明&#xff1a; xeCJK 宏使用的是 fontspec 对应的中文字体&#xff0c;也就是系统 fontconfig 库所能找到的所有字体。

1.2 自定义字体


1.2.1 使操作系统的 fontconfig 库找到 TeX 附带字体


  • /usr/local/texlive/2020/texmf-var/texlive-fontconfig.conf 改名为 09-texlive.conf &#xff0c;复制到系统的 /etc/fonts/conf.d/ 下&#xff0c;即

    $ sudo cp /usr/local/texlive/2020/texmf-var/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf

  • 刷新 fontconfig 字体缓存&#xff0c;即

    $ sudo fc-cache -fsv

说明&#xff1a;该操作是全局的&#xff0c;系统中其他程序也将可一使用上述配置的字体。

1.2.2 设置 TeX 可以根据字体名找到相应字体


  • 设置 TeX 中 /usr/local/texlive/2020/texmf.cnf配置文件的 osfontdir 路径

    OSFONTDIR &#61; /usr/share/fonts//;/usr/local/share/fonts//;~/.fonts//

注意&#xff1a;在使用字体时&#xff0c;要正确书写字体族名称&#xff0c;而所有字体族名称可以用以下命令列出

fc-list 列出所有&#xff08;输出显示格式为&#xff1a; 字体族中文名&#xff0c;字体族英文名&#xff1a;变体&#xff09;
fc-list :lang&#61;zh 列出中文字体
fc-list -f "%{family}\n" 只列出字体族名


推荐阅读
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本教程详细介绍了如何使用 Spring Boot 创建一个简单的 Hello World 应用程序。适合初学者快速上手。 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
author-avatar
jimmy岁月_929
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有