发行版:texlive2025(overleaf)
编译方式:xelatex(或者 lualatex)
问题:想要在 elegantbook 文档类中实现行内盒子断行,但是 tcolorbox 行内盒子无法自动断行?
效果如下:
盒子实现如下:
% 英文单词背景框(微调内边距,更舒展美观)
\newtcbox{\englishbox}{
on line,
boxrule=0pt,
boxsep=1.5pt, % 盒内文字与边框的间距(比1pt舒展、比2pt紧凑)
top=1pt,
bottom=1pt,
left=3pt, % 盒左侧内边距(比2pt更舒展)
right=3pt, % 盒右侧内边距(比2pt更舒展)
colback=cyan!10,
colframe=cyan!10,
arc=3pt,
enhanced jigsaw
}
% 核心命令(保留你原有的写法)
\newcommand{\wordbox}[2]{%
\englishbox{\textbf{#1}}%
\textcolor{blue!70!black}{(#2)}%
}
感谢 Explorer 老师 Eureka 老师在 QQ 群(604354275)里的关注:
Explorer 最开始给出如下实现方案 这种问题的最佳实践是 xeCJKfntef xeCJK 宏包
或者luacolor+lua-ul lua-ul.pdf
(在 elegantbook 中不太好的实现,在本地貌似编译不了)
在使用xeCJKfntef包排版高亮文字时,footnote无法正常显示,如何解决? - LaTeX问答
最终的实现为
% ===== 方案 1 需要使用 lualatex 编译,在 elegantbook 内不推荐 =====
% \usepackage{luacolor}
% \usepackage[soul]{lua-ul}
% \newcommand{\wordbox}[2]{%
% \highLight[cyan!10]{\textbf{#1}}%
% \textcolor{blue!70!black}{(#2)}%
% }
% ===== 方案 2 xelatex =====
\usepackage{xeCJKfntef}
\NewDocumentCommand{\wordbox}{ m m }{%
{\bfseries\CJKunderanyline*{0.5ex}{\color{cyan!10}\rule{2pt}{2.5ex}}{#1}\textcolor{blue!70!black}{(#2)}}%
}方案1
\documentclass[lang=cn,14pt]{elegantbook}
\usepackage{zhlipsum}
\usepackage{luacolor}
\usepackage[soul]{lua-ul}
\newcommand{\wordbox}[2]{%
\highLight[cyan!10]{\textbf{#1}}%
\textcolor{blue!70!black}{(#2)}%
}
\begin{document}
\hl{\zhlipsum[1]}
\highLight[cyan!10]{\zhlipsum[1]}
\wordbox{\zhlipsum[1]}{\zhlipsum[1]}
\end{document}方案2
\documentclass[lang=cn,14pt]{elegantbook}
\usepackage{xcolor}
\usepackage{xeCJKfntef}
\NewDocumentCommand{\wordbox}{ m m }{%
{\bfseries\CJKunderanyline*{0.5ex}{\color{cyan!10}\rule{2pt}{2.5ex}}{#1}}%
\textcolor{blue!70!black}{(#2)}%
}
\begin{document}
\wordbox{劳仑衣普桑,认至将指点效则机,最你更枝。劳仑衣普桑,认至将指点效则机,最你更枝。劳仑衣普桑,认至将指点效则机,最你更枝。}{劳仑衣普桑,认至将指点效则机,最你更枝。劳仑衣普桑,认至将指点效则机,最你更枝。劳仑衣普桑,认至将指点效则机,最你更枝。}
\end{document}
额外的问题
\textcolor命令导致无法断行?这个问题与

elegantbook的无关,故测试中使用的ctexart。此外设置
注释掉就没有这个问题了(或者说问题不大?)

测试代码如下