- 速览:解决前后图片对比
 - 拟解决的问题
 - 问题描述
 - Latex高亮的一般做法
 - 段内有命令时候的高亮报错
 
- 问题原因
 
- 解决方案——在导言区为 `\cite` 等命令“注册”
 - 解决方案简要描述
 - 详细解释
 - 其他情况
 
速览:解决前后图片对比
解决前:
 
 解决后:
 
拟解决的问题
问题描述
Latex高亮的一般做法
给Latex段落高亮的时候,一般会采用下面命令
\usepackage{soul}         % 用于文本荧光标记
\sethlcolor{yellow}       % 设置高亮颜色为黄色
\hl{In this study}        %段落中
 
当段落中没有其他命令的时候,可以正常高亮
 
段内有命令时候的高亮报错
可当段落中出现了其他命令,比如参考文献、图、表格,则会出现各种问题,比如对下面代码
\hl{In this study, the analysis of Table \ref{tab2} and Figure \ref{fig:Fig3} demonstrates that the method proposed in \cite{bib35} exhibits significant effectiveness.}
 
结果图如下,可以看到表格处和图序号没有正常显示,参考文献[35]及之后都没能正常显示
 
问题原因
使用
soul宏包的\hl{...}来高亮一大段文本时,如果中间包含了\cite、\ref、\footnote
等命令,往往需要一些额外处理,否则就可能导致高亮“断开”或报错。这是因为soul
默认对这些命令的解析不完整,需要“注册”或手动保护它们。
解决方案——在导言区为 \cite 等命令“注册”
 
解决方案简要描述
在开头加上
\soulregister\cite7、\soulregister\ref7这类命令即可
详细解释
soul 宏包提供了 \soulregister 命令,可以让 soul 正确识别某些命令,从而在高亮时避免被截断或报错。
 正确代码如下所示:
\usepackage{soul}         % 用于文本荧光标记
\sethlcolor{yellow}       % 设置高亮颜色为黄色
\soulregister\cite7
\soulregister\ref7
 
\soulregister\cite7的含义是:告诉soul,\cite这个命令包含 7 个字符(大多数情况下写 7
就够了),并允许它在高亮时正常显示。
正文和之前一样:
\hl{In this study, the analysis of Table \ref{tab2} and Figure \ref{fig:Fig3} demonstrates that the method proposed in \cite{bib35} exhibits significant effectiveness.}
 
正确的效果如下:
 
其他情况
如果段落中还有其他命令,比如\footnote 等,需要一并注册:
\soulregister\footnote7
 
如果依旧不成功,或者文本特别长且包含复杂命令,或需要跨页,最好使用 \colorbox{yellow}{\begin{minipage}{...} ...\end{minipage}} 方式,避免冲突和断开。



















