最近用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. Spring Boot整合actuator实现监控管理

    Spring Boot使用actuator监控管理 1.在pom文件中导入相关的依赖 <dependency> <groupId>org.springframework.boo ...

  2. Hive分区表创建、分类

    一.分区表创建与说明 必须在表定义时创建partition a.单分区建表语句:create table day_table (id int, content string) partitioned ...

  3. deep_learning_Function_matpotlib_scatter()函数

    plt.scatter()函数用于生成一个scatter散点图. matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, ...

  4. Linux搭建局域网yum源和后期在yum源中更新rpm包方法

    在内网中搭建自己的yum源,可以方便在内网中使用,下面简单介绍搭建局域网yum源的方法和后期更新yum源rpm包的方法. 一.搭建局域网yum源 1.需要在局域网访问,首先需要一个web服务器,比如a ...

  5. Linux :file、which 、whereis、locate、find

    1 file 观察文件类型 file  文件 2 which 寻找文件 选项与参数: -a : 将所有由PATH目录中可以知道的指令列出,而不止一个被找到的指令名称 3 whereis 寻找特定文件 ...

  6. shell 获取结果中的第n列,第n行

    ls -l | awk '{print $5}' | sed -n '2p' awk 是很实用的文本处理命令,print 到后带的是你要获取第几列,sed -n 是指定第几行.

  7. 使用rpm安装mysql5.6(简单安装 实验使用)

    [root@localhost mysql]# cd /usr [root@localhost mysql]# mkdir mysql [root@localhost mysql]# cd mysql ...

  8. python fc21~fc29踩坑记录

    最近在公司的linux fc21上安装python和anaconda, 直接mintmenu给挂掉了. 真是弱爆了. 后来,升级终于来了, 升到了fc29.好,再看看, python2.7还在, py ...

  9. Acwing-121-赶牛入圈(二分, 二维前缀和,离散化)

    链接: https://www.acwing.com/problem/content/123/ 题意: 农夫约翰希望为他的奶牛们建立一个畜栏. 这些挑剔的畜生要求畜栏必须是正方形的,而且至少要包含C单 ...

  10. vue启动问题(You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.)

    解决vue启动出现: 在build/webpack.base.conf.js文件中,把...(config.dev.useEslint ? [createLintingRule()] : [])注释或 ...