zoukankan      html  css  js  c++  java
  • latex容易忽视的编码问题

    系统环境

    Debian stable
    en_US.UTF8

    错误再现和分析

    在此环境下,编辑一个 tex 输入文件,使用中文 CJK 宏包,并选用 GBK/GB 字符集。

    \documentclass[a4paper,12pt]{article}
    \usepackage{CJK}
    \begin{document}
    \begin{CJK*}{GB}{gbsn}
      你好!
    \end{CJK*}
    \end{document}

    然后保存退出,用 pdflatex GB_sample.tex 一下,会发现系统报错,说什么“未定义的字体”之类(当然原文是英文的)。

    出现这一错误的原因是,系统环境是 en_US.UTF8,因此编辑文件时所用的字符都默认为 UTF-8 字符集
    中的文字,而不是 GBK 字符。因此用 pdflatex 想要得到正确的 pdf 文件是不可能的!

    解决之道

    知道了产生错误的原因,就可以很容易地解决它了。一共有两种方法可以解决这个问题。

    方法1

    把文件中的字符从 UTF-8 转换成 gb2312 就可以了。使用的工具是 iconv,这个工具大多数 Linux 发行版都有的。
    iconv -f utf8 -t gb2312 GB_sample.tex > test.tex
    pdflatex test.tex
    这样就能得到正确的 pdf 文件

    方法2

    直接使用 CJKutf8 宏包。由于我的环境是 en_US.UTF8 的环境,所以用 CJKutf8 是最适合我的。这样就免去了再进行编码转化的麻烦。
    而且如果你的 latex 中需要出现一点繁体的话,用这个宏包就再好不过了。

    范例:

    \documentclass[a4paper,12pt]{article}
    \usepackage{CJKutf8}
    \begin{document}
    \begin{CJK*}{UTF8}{gbsn}
      你好!
    \CJKfamily{bsmi}
      中國!
    \end{CJK*}
    \end{document}


    然后保存为 UTF8_sample.tex,再用 pdflatex UTF8_sample.tex 就可以得到正确的 pdf 文件了。
    而且 pdf 文件中,还能看到繁体中文。

    在默认安装 latex-cjk 的情况下,latex 中只有四个免费的中文字体可以用,分别是
    gbsn(简体宋)、gkai(简体楷)、bsmi(繁体宋)、bkai(繁体楷)
    如果想得到黑体输出之类的话,就要自己添加字体了。
  • 相关阅读:
    css 自动调整不同 大小的图片变成一定大小
    myeclipse 修改html 报错
    js 中json的使用
    对比两个文件相似度 余弦算法
    andriod 解包
    http post/get 请求
    VXLAN 静态隧道实现同网段通信
    网络设备巡检命令
    IPv6
    Cisco ASA 调整terminal屏幕
  • 原文地址:https://www.cnblogs.com/machine/p/latex_encoding1.html
Copyright © 2011-2022 走看看