LaTeX常见错误与常用Debug方法总结

2023-05-16


tags: LaTeX Debug

前言

在LaTeX中, 常常会出现很多意想不到的错误, 我一开始学习的时候, 就常常被这种看似玄学的错误整的焦头烂额, 常常是打开一堆CSDN界面各处翻找而没有一个合适的解决方案.

之后在不断的使用和摸索中, 我对于 LaTeX 的报错等问题逐渐有了自己的分析解决方法, 在查找新出现的问题时候也已经转向了TeX - LaTeX Stack Exchange了. 下面我总结一下我自己认为好用的debug方法, 希望能帮到正在使用LaTeX的你.

P.S. 方法论有了, 还是需要自己实践, 针对具体问题进行分析解决才能有所提升.

方法

清理辅助文件

对于一些已经修改的没有问题的文档, 如果在编译时还是会出现报错, 那么你可能需要清理一下辅助文件, 一般来说需要清理的文件只有.aux, 对于文献中的错误可能需要清理.bbl文件, 对于目录生成上的错误可能要清理.toc文件, 其他的有beamer中经常用到的导航: .nav文件, 定理生成的.thm文件, 代码环境中的.pyg,.vrb文件等.

不过一般的智能编辑器中都有清理辅助文件的快捷键(例如我用的Sublime的LaTeXTools插件,就是用Command+L Backspace进行清理, 你也可以自己编写脚本一键清理).

总之, 如果你实在想不到问题出在哪, 没准清理辅助文件这个方法能救你于水火…

注释法

对于一个长而复杂的.tex文档, 我们常常会遇到一些奇奇怪怪的错误, 比如之前我常常遇到的就是missing $insert, 这样的错误常常是一些特殊字符导致的.

例如, 在正文文档中出现了一个_, 却没有加上\转义. 这样的错误在TeX引擎编译之后常常不会精确定位到错误出现的行, 所以我们就需要采取退而求其次的方法, 注释掉报错行附近的段落. 直到没有编译错误, 就能在注释掉的行中查找错误了. 将报错控制在较小的范围内, 再处理起报错就显得容易很多了.

修改编码

如果报错中有很多乱码, 那么肯定存在由 GBK 或者 GB2312 到 utf8 或者 ANSI 编码的不完整转换了, 这就需要记事本+另存为大法了

具体操作为:

用记事本打开乱码文件, 另存为新的 tex 文件, 并将编码设置 为 utf8, 这样就好了. 不过前提是记事本打开的时候文件中没有乱码, 如果记事本不能正确打开可以试试 vscode 或者 sublime 了.

其他常见问题

  1. 字体未找到问题

    这个问题主要出现在macOS上, 一般常见的模板主要在Windows平台上进行, 但是在模板的制作中作者可能没有考虑到字体的标识符问题, 于是对macOS用户来说, 像隶书, 雅黑等字体就需要额外安装了.

    或者说, tex 中的字体的名称并不是系统下真正的字体名称, 这也会导致错误, 关于这个问题, 大家可以看我之前的文章, 在 Windows 和 MacOS 下都给出了解决方案.

  2. 找不到 \begin{document}

    这个问题其实是细节照顾不到导致的, 需要仔细检查一下\begin{document}附近有没有多余的字符, 有的话赶紧删掉, 要不然编译错误根本无法理解…

  3. 未定义的控制序列

    这个问题可能需要你导入一些需要的包, 或者打错了一些常用的宏命令, 都会出现这个问题.

    遇到这个问题, 其实是比较宽泛了, 需要具体问题具体分析, 多注意一下报错所在行上面的几行中是不是有不熟悉的命令.

  4. ccmap 以及 cchead 等的一系列问题

    这个问题可以说是由来已久, 或者说是一个历史遗留问题了, 只有用过 ctex 或者旧版的中文期刊模板才可能会有这个问题, 不要慌, 先把文档类改成新式的 ctex 即可:

    例如: ccbook -> ctexbook

    其他同理. 然后注释掉文档类中所有的 CJK 包, 如果需要的话, 还是加上 ctex 包(此 ctex 非彼 ctex 了), 这是作为宏包支持的.

小结

本文相当于是一个引子, 并没有全面介绍LaTeX的报错以及解决(这个是LaTeX文档的事), 遇到这些问题时, 一开始的办法当然是在网上胡乱搜索一通, 但是,如果你能冷静下来分析报错的原因, 也许你会有更大的收获.

关于其他详细的内容, 可以参考刘海洋老师的LaTeX入门, 这也是我一直在反复查看的一本书, 确实能在使用LaTeX的过程中给予我非常大的帮助(99%的问题都能从书中得到解决方案).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LaTeX常见错误与常用Debug方法总结 的相关文章

  • 树莓派启动——安装+无显示器使用+自启动VNC

    目录 硬件准备软件准备写入系统启动树莓派换源VNC自启动 时隔一年多 xff0c 拿起树莓派却忘记如何使用了 本想用作自己搭建git服务器 xff0c 后续再完成了 在此记录一下使用流程 硬件准备 树莓派 3b 43 TF卡和读卡器 xff
  • Debain 10(Buster)换源

    Debain 10 Buster 换源的操作步骤 必要条件 xff1a 已经安装好的Debain 10 Buster 开始 Debain 10 Buster 换源的操作步骤步骤一 备份原始的源文件用户切换到root下 进行源文件备份 二 换
  • 使用nginx反向代理突然失灵

    之前使用nginx反向代理还好好的 xff0c 后来再启动项目时突然失灵 xff0c 浏览器显示如下 然后开始排查错误 xff0c 首先直接使用ip地址访问是正常的 xff0c 然后使用hosts中映射的域名访问是无效的 xff0c 这说明
  • win10 安装 Linux子系统(WSL)

    序 xff1a 前段时间字节不是发布了 modernJS 的开源项目吗 xff1f 大概看了一部分的内容 xff0c 这些的东西就不一一列出来了 xff0c 本来想尝一口的 xff0c 在环境准备的系统那里就先折了一下 xff08 目前支持
  • Java 集合

    ArrayList 默认长度为10 indexOf lastIndexOf 通过equals方法判断索引 span class token keyword public span span class token keyword int s
  • Java 多线程知识

    参考链接 xff1a https www cnblogs com kingsleylam p 6014441 html https blog csdn net ly0724ok article details 117030234 https
  • Java I/O

    参考链接 xff1a https blog csdn net m0 71563599 article details 125120982 https www cnblogs com shamo89 p 9860582 html https
  • 最小生成树 prim算法(附代码)

    prim算法是以一个根节点开始慢慢往下延伸 xff0c 不断寻找距生成树最短的距离的节点 xff0c 然后将该节点纳入生成树的集合中 xff0c 然后再将该节点影响的其他未纳入生成树节点的距离更新 xff08 缩小与生成树的距离 xff09
  • cdr x4检测显示软件产品已被禁用警告弹窗,如何解决教程分享

    偶尔翻开移动硬盘 xff0c 找到这货 xff0c CorelDraw X4简体中文正式版 网上现在比较难下载得到了 xff0c X4是我最常用的一个 现在把它分享出来 xff0c 有需要的可以去下载使用 orelDRAW X4打开显示被禁
  • 数据结构与算法题目集(中文) 6-1 单链表逆转 (20 分)

    本题要求实现一个函数 xff0c 将给定的单链表逆转 函数接口定义 xff1a List Reverse List L 其中List结构定义如下 xff1a typedef struct Node PtrToNode struct Node
  • HTML5 Table 布局实现 商品列表

    运行结果如上 下面说说设计过程 xff1a 一开始试探的做的时候 xff0c 是建立了一个table xff0c 这个table里面放一本图书的信息 然后建立了一个列 xff0c 然后建立了个td xff0c td里面放图片 xff0c t
  • POJ 1050 To the Max(动态规划)

    Given a two dimensional array of positive and negative integers a sub rectangle is any contiguous sub array of size 1 1
  • web前端 背景色属性bgcolor

    通过 lt body gt 元素中的bgcolor属性来设定网页的背景颜色 其语法格式如下 xff1a lt body bgcolor 61 34 value 34 gt 颜色是属性值的设定有三种方法 xff1a 1 颜色名称 规定颜色值为
  • java连接数据库步骤

    1 加载驱动 Class forname 数据库驱动名 2 建立数据库连接 使用DriverManager类的getConnection 静态方法来获取数据库连接对象 xff0c 其语法格式如下所示 Connection conn 61 D
  • 怎么从零开始运行github / 现成的项目

    这篇博客是作为非计软科班出身的我记录的一些经验 xff0c 希望得到交流和批评 目录 环境配置 通过文件命名了解项目 demo 代码运行的入口 设定参数的文件 build 通过代码了解项目 64 装饰器 一些交流时用到的术语 API 交流或
  • 生产环境中使用Kolla部署OpenStack-allinone云平台(红帽8版本)

    CentOS8系统中使用Kolla部署OpenStack allinone云平台 Kolla概述和openstack所有结点linux系统初始配置 kolla是openstack下面用于自动化部署的一个项目 xff0c 它基于docker和
  • vue2项目-request配置put请求Content-Type为x-www-form-urlencoded

    在项目中遇到需要使用put请求的接口 使用的方式是x www form urlencoded 步骤梳理 在项目的request js文件是默认配置了json方式的 span class token keyword import span a
  • STM32学习第一课——新建工程与点亮LED灯

    第一次接触到32位的MCU与之前所学的51单片机和430单片机都是有所不同的 xff0c STM32是用库函数来写程序的这样一来不管是从代码的编写和移植都会方便很多 以下是今天所学的东西 xff1a 1 新建工程 个人觉得不用去新建一个工程
  • 基于arm架构的ubuntu18 .04安装Anaconda3 + pytorch+python3.9

    记录一下项目踩坑经历 xff08 查了很多资料 xff0c 感觉都是对有基础的人来说的 xff0c 对于刚接触深度学习环境的小白并不友好 xff0c 很多细节并没有 xff0c 各种坑无数 xff0c 我也是花了好长时间才弄清楚 xff09
  • MathType7应用中文版特色功能介绍

    MathType 是由美国Design Science公司开发的功能强大的数学公式编辑器 xff0c 它同时支持Windows和Macintosh 操作系统 xff0c 与常见的文字处理软件和演示程序配合使用 xff0c 能够在各种文档中加

随机推荐