最近用latex写文章,要用到修订模式,于是采用latexdiff命令生成修订版pdf。这原本是一个非常简单方便的方法,却隐藏着字符编码的问题,初次用可能会遇到意想不到的问题,让人很烦,比如,生成出来的.tex文档,不是UTF-8编码,而是UTF-16,这导致latex无法编译(本人是采用的Windows10+TeXLive 2019+VS CODE)。通过notepad将其转换成UTF-8编码,会出现奇奇怪怪的字符,如下:

Package inputenc: Unicode character 贸 (U+8D38)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 铆 (U+94C6)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 啪 (U+556A)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 谩 (U+8C29)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 酶 (U+9176)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 氓 (U+6C13)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 鈥 (U+9225)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 擳 (U+64F3)
(inputenc) not set up for use with LaTeX.
Package inputenc: Unicode character 枚 (U+679A)
(inputenc) not set up for use with LaTeX.
 
经过仔细检查,这些都是因为参考文献中的人名中含有希腊字母、北欧字母等奇奇怪怪的字母,以及特殊的字符组合,如“-T”、“r's”等。由于latex文本非常长,无法通过肉眼找到错误,而且VS CODE不会在乱码处标红,但可以采用以下方法找错:
1、将.tex文件改成UTF-8编码后,直接编译,让其报错;
2、查看VS CODE的错误提示,里面会写明所有的乱码,将其一条一条copy出来,如上所示,再在.tex文件中一个一个find到,直到所有的报错都消失;
 
除了乱码和特殊字符,图片的修改貌似行不通,编译不通过,直接去掉就好,就这么无赖。

latexdiff中的大坑:字符编码问题的更多相关文章

  1. Java web应用中的常见字符编码问题的解决方法

    以下是 Java Web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...

  2. [转载]Java web应用中的常见字符编码问题的解决方法

    以下是 Java web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...

  3. Python 2中万恶的字符编码

    Python2中如果文件存在中文,必须要指定#-*- coding:utf8 -*-或#coding:utf8,否则会报错.那这是为什么呢? 一.原理解析 我们知道,在计算机发展初期,计算机只能识别字 ...

  4. Java中常用的字符编码-解析

    ASCII字符编码 美国信息互换标准代码,为罗马字母编制的一套编码,主要用于表达现代英语和其他西欧语言中的字符,1字节的7位表示一个字符. ISO-8859-1字符编码 ISO为西欧语言中的字符制定的 ...

  5. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode

    摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码 ...

  6. 关于web.xml中配置Spring字符编码过滤器以解决中文乱码的问题

    当出现中文乱码问题,Spring中可以利用CharacterEncodingFilter过滤器解决,如下代码所示: <!-- Spring字符编码过滤器:解决中文乱码问题 --> < ...

  7. mysql中设置默认字符编码为utf-8

    使用过Linux的同志就知道,在Linux下安装mysql,尤其是使用yum安装的时候,我们是没法选择其默认的字符编码方式.这个就是一个比较头痛的问题,如果Linux数据库中使用到中文的时候,乱码问题 ...

  8. Unity3d发布的iOS产品中使用GB2312字符编码(CP936)

    最近在开发中要用到GB2312字符编码(CP936),在C#代码中便有了如此代码 System.Text.Encoding.GetEncoding() 这在Unity3d 编辑器下运行没有任何问题,打 ...

  9. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

随机推荐

  1. window.location.href 与 window.location.href 的区别

  2. Delphi 数组与记录类型

  3. 六,k8s集群service资源

    目录 Service简介 ClusterIP Headless(无头service) NodePort Service简介 service的基本说明: Service 是作用于客户端可服务端(Pod) ...

  4. 10个不为人知的 Python 冷知识

    转载: 1. 省略号也是对象 ...这是省略号,在Python中,一切皆对象.它也不例外. 在 Python 中,它叫做 Ellipsis . 在 Python 3 中你可以直接写…来得到这玩意. 而 ...

  5. 关于maven的repositories

    在maven repositories视图中,有local repositories和global repositories两种. local repositories是本地的库,默认目录在C:\Us ...

  6. docker查看容器IP地址

    docker inspect 容器名称或 id 命令:docker inspect redismaster 结果:

  7. hadoop namenode切换

    hdfs haadmin -transitionToActive --forcemanual nn1 将nn1强制转换为Active hdfs haadmin -transitionToStandby ...

  8. 利用rand7() 产生rand10()(腾讯)

    题目1:已知rand7() 可以产生 1~7 的7个数(均匀概率),利用rand7()  产生rand10()   1~10(均匀概率) int rand10() { int temp; int te ...

  9. 在echart组件下用canvans画三角形

    //使用的canvans绘制的三角形 drawArrow(){ var canvas = document.createElement('canvas');//创建一个元素 canvas.width ...

  10. PyCharm控制台输出乱码

    IDE Encoding设置为GBK后,在运行程序,中文就显示正常了 据说是因为ide编码不能设置为utf-8,需要设置为gdb,因为这个控制台的代码需要和windows保持一致. 另外还有一个问题就 ...