当前位置: 首页 > news >正文

珠海网站建设专业公司邯郸兄弟建站

珠海网站建设专业公司,邯郸兄弟建站,本地wordpress后台,网站建设设计服务公司摘要: 本文旨在解决在 XeLaTeX 环境下,为中文文本添加删除线时遇到的无法自动换行的普遍问题。文章对比了 ulem 和 soul 等常见方案的局限性,并最终提出并详细解释了使用 ulem 宏包结合 xeCJKfntef 宏包的稳定解决方案。 1. 问题描述 在 XeLa…

摘要: 本文旨在解决在 XeLaTeX 环境下,为中文文本添加删除线时遇到的无法自动换行的普遍问题。文章对比了 ulemsoul 等常见方案的局限性,并最终提出并详细解释了使用 ulem 宏包结合 xeCJKfntef 宏包的稳定解决方案。

1. 问题描述

在 XeLaTeX 环境下使用 ctexxeCJK 宏包处理中文文档时,一个常见的需求是为文本(如修订稿中的删除内容)添加删除线。理想的效果是,当这段文本过长需要换行时,删除线也能随之在行末断开,并在下一行继续。

然而,标准的解决方案往往无法满足这一需求。

2. 常见方案及其局限性
2.1 ulem 宏包

ulem 宏包提供的 \sout 命令是添加删除线的常用方法。

  • 问题: 该命令不支持自动换行。其原理是将内容放置于一个不可断开的盒子(box)中,导致长文本和删除线一起溢出页面边界。
2.2 soul 宏包

为解决 ulem 的换行问题,soul 宏包应运而生。它的 \st 命令支持文本换行。

  • 问题: soul 宏包在处理中文环境时表现不稳定。当删除线内的文本包含由 ctexxeCJK 处理过的中文标点(如 )时,极易触发 Package soul Error: Reconstruction failed 的编译错误。这是因为 soul 的文本扫描机制无法处理 xeCJK 为优化排版而生成的复杂内部结构。
3. 推荐解决方案:ulem + xeCJKfntef

经过测试,目前在 XeLaTeX 环境下最稳定、轻量的解决方案是联合使用 ulem 宏包与 xeCJKfntef 宏包。

  • 工作原理:

    1. ulem 宏包提供基础的删除线命令 \sout
    2. xeCJKfntef 宏包作为 xeCJK 环境的增强工具集,它包含一个关键功能:修正 ulem 的内部机制,使其能够识别中文字符的边界并正确处理断行。
    3. 此外,xeCJKfntef 还提供了一个增强版的删除线命令 \CJKsout,它不仅解决了换行问题,还允许对删除线和文本的格式进行分别定制。
  • 核心优势:

    • 稳定性高: 专门为 CJK 环境设计,与中文标点兼容性好,不会出现 soul 包的崩溃问题。
    • 功能强大: \CJKsout 命令提供了 format(定义删除线格式)和 textformat(定义文本格式)等选项,方便进行颜色等样式的定制。
    • 轻量级: 无需引入 tikz 等大型绘图引擎,编译速度快。
4. 代码实现

以下是一个完整的最小工作示例(MWE),展示了如何定义一个满足需求的修订命令 \ruixu

% !TEX program = xelatex\documentclass{ctexart}% --- 导言区 ---% 1. 颜色支持
\usepackage{xcolor}% 2. 解决方案的核心:
%    首先加载 ulem 作为基础。
\usepackage{ulem}
%    然后加载 xeCJKfntef 对其进行中文环境下的修正和增强。
\usepackage{xeCJKfntef}% 3. 定义自定义修订命令 \ruixu
%    用法: \ruixu{被删除的旧文本}{新增的新文本}
\newcommand{\ruixu}[2]{%% 使用 \CJKsout 命令处理删除文本% 它接受一个可选参数用于格式化:%   - format:     定义删除线本身的格式。这里设置为红色。%   - textformat: 定义被划掉的文本的格式。这里也设置为红色,以符合视觉习惯。{\CJKsout[format=\color{red}, textformat=\color{red}]{#1}}%% 在删除内容和新增内容之间加一个空格\ %% 新增的文本使用 \textcolor 设置为蓝色\textcolor{blue}{#2}%
}% --- 文档主体 ---
\begin{document}\section{方案效果展示}\subsection{长句换行测试}
\noindent % 取消段首缩进以便观察
\ruixu{前述实验结果系统性地验证了XXX框架,特别是其核心的XXXX机制,在XXX方面的有效性与鲁棒性。}{前述实验结果已系统性验证了XXXX 框架(尤其其XXXX机制)在抑制XXXX方面的有效性与鲁棒性。}\vspace{1cm}\subsection{包含多种标点的长句测试}
\noindent
\ruixu{这是一个非常长的、用来演示的句子,目的是为了确认 \texttt{xeCJKfntef} 宏包提供的删除线功能是否真的可以像普通文本那样,在到达页面边界时自动地、优雅地进行换行处理(即使包含括号)。它能处理“中文引号”吗?答案是肯定的!}{与此同时,这是新增的文本部分,它应该能够和前面的删除文本和谐地共存并一起参与排版。}\end{document}
5. 效果展示

在这里插入图片描述

6. 总结

对于需要在 XeLaTeX 环境下实现可自动换行的中文删除线功能的用户而言,ulemxeCJKfntef 宏包的组合提供了一个稳定、高效且易于定制的解决方案。

http://www.dtcms.com/a/583405.html

相关文章:

  • 建个什么网站怎么建设属于自己的网站
  • PNP机器人在乌镇互联网大会上的发言
  • 怎么做社交网站引流到亚马逊没有服务器怎么做网站
  • NumPy -数组索引与切片
  • 【Delphi】更换和提取exe文件主图标小工具
  • 个人艺术作品网站建设策划书上海 网站设计公司
  • 贵阳网站制作贵阳网站建设哪家好网站接广告能赚多少钱
  • UV快速入门
  • 基于ROS2的语义格栅地图导航
  • 常熟做网站公司排名博客网
  • 广东建设职业技术学院网站国人wordpress企业主题
  • solidity中的接口和继承
  • 网站建设与维护高职wordpress站群主题
  • 网站改版 翻译制作网站用什么语言
  • 网页代理网站wordpress插件的页面文件
  • 咸阳做网站公司网站首页设计费用
  • 品牌网站如何建设大学生建设什么网站好
  • 哈尔滨+做网站公司有哪些wordpress自定义DIV样式
  • 电子商务网站建设汇报PPT网站右下角广告代码
  • 在凡科上做的网站无法加载出来网站开发的缓存技术
  • GUI自动化测试--自动化测试的意义和应用场景
  • ZCC7151S替代LTC7151S:高效静默,赋能未来电源设计——20V/15A同步降压稳压解决方案​
  • cocos打包的web-mobile(web手机端)在浏览器无法运行的原因和解决方法
  • 多种时间序列预测算法的MATLAB实现
  • 营销网站和展示型网站昆明做网站哪家公司好
  • 网站建设w亿玛酷1负责手机做炫光图头像的网站
  • 【JAVA虚函数与多态的底层实现】
  • 只做男士衬衫的网站建设网站公司怎么分工
  • 麦德龙网站建设目标网站页面布局用什么做
  • 3.1、Python-列表