记一次Latexdiff无法换行的修复过程

时间: 2023年9月

前言

  • 本文旨在记录如何解决latexdiff无法换行的修复教程.
  • 此博客当中提供的方法也可用于解决ulem包的生成的下划线, 在中文模板当中无法换行的问题
  • 如果你不想看问题产生的原因可以直接跳到最后的解决方案

问题复现

我在使用latexdiff生成修改记录的时候发现, 下划线和删除线会超出页面范围. 具体如图所示
在这里插入图片描述

问题产生的原因

经过分析我发现latexdiff会在生成的文档当中加入如下的代码
在这里插入图片描述
实际上latexdiff包是调用了ulem包来生成下划线的. 其中\sout是删除线, \uwave是波浪线. 而ulem包貌似在中文的环境下会出现不能换行的问题.

解决方案

我在网上查找了一圈, 发现有推荐将ulem换成Cjkulem的, 但是我实际尝试过后发现并没有用. CJKulem这个包貌似已经过时了.
真正的做法是将ulem包替换成xeCJKfntef

具体做法如下:
latexdiff生成的对比文件当中引用xeCJKfntef包,然后删除对ulem的引用, 具体代码如下

\usepackage{xeCJKfntef}  % 加入xeCJKfntef包

%DIF PREAMBLE EXTENSION ADDED BY LATEXDIFF
%DIF UNDERLINE PREAMBLE %DIF PREAMBLE
% \RequirePackage[normalem]{ulem} %将ulem包的引用删除或注释掉

\RequirePackage{color}\definecolor{RED}{rgb}{1,0,0}\definecolor{BLUE}{rgb}{0,0,1} %DIF PREAMBLE
\providecommand{\DIFadd}[1]{{\color{blue}\uwave{#1}}} %DIF PREAMBLE
\providecommand{\DIFdel}[1]{{\protect\color{red}\sout{#1}}}                      %DIF PREAMBLE
%DIF SAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddbegin}{} %DIF PREAMBLE
\providecommand{\DIFaddend}{} %DIF PREAMBLE
\providecommand{\DIFdelbegin}{} %DIF PREAMBLE
\providecommand{\DIFdelend}{} %DIF PREAMBLE
\providecommand{\DIFmodbegin}{} %DIF PREAMBLE
\providecommand{\DIFmodend}{} %DIF PREAMBLE
%DIF FLOATSAFE PREAMBLE %DIF PREAMBLE
\providecommand{\DIFaddFL}[1]{\DIFadd{#1}} %DIF PREAMBLE
\providecommand{\DIFdelFL}[1]{\DIFdel{#1}} %DIF PREAMBLE
\providecommand{\DIFaddbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFaddendFL}{} %DIF PREAMBLE
\providecommand{\DIFdelbeginFL}{} %DIF PREAMBLE
\providecommand{\DIFdelendFL}{} %DIF PREAMBLE
%DIF END PREAMBLE EXTENSION ADDED BY LATEXDIFF
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值