如何在乳胶中突出显示“枚举”环境?

如何在乳胶中突出显示“枚举”环境?

这是这个问题

以下代码可以很好地突出显示段落(以及内联文本)。

\makeatletter
\newcommand{\hl}[1]{%
    \setbox\@tempboxa\hbox{#1}%
    \ifdim\wd\@tempboxa>\linewidth
    \noindent
    \colorbox{pink}{%
        \parbox{\dimexpr\linewidth-2\fboxsep}{#1}%
    }%
    \else
    \colorbox{pink}{#1}%
    \fi}%Highlighter.
\makeatother

但是当我们将其用于 enumerate环境时会出现以下错误。

出了点问题 — — 也许缺少了 \item。}

作为菲利佩·奥莱尼克提到此评论 \trivlist不允许段落分隔,因此我很好奇如何破解这种行为并给出一个全局解决方案,即使我无论使用什么环境(例如theorem)都会突出显示页面(例如 Microsoft Word、Libre office writer 等)。

如何破解enumeration以突出显示枚举列表?


最小工作示例:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\makeatletter
\newcommand{\hl}[1]{%
    \setbox\@tempboxa\hbox{#1}%
    \ifdim\wd\@tempboxa>\linewidth
    \noindent
    \colorbox{pink}{%
        \parbox{\dimexpr\linewidth-2\fboxsep}{#1}%
    }%
    \else
    \colorbox{pink}{#1}%
    \fi}%Highlighter.
\makeatother

\begin{document}
\hl{\lipsum[2]}

\lipsum[1]

Some inline \hl{ text} need to be highlighted. 

\hl{
\begin{enumerate}
    \item  This enumeration gives error
\end{enumerate}
}



\end{document}

答案1

为什么不嵌套enumerateshaded*环境中?这样可以跨页面拆分。下面是带有framedenumitem包的代码:

\documentclass{article}
\usepackage{xcolor}
\usepackage{lipsum}
\makeatletter
\newcommand{\hl}[1]{%
    \setbox\@tempboxa\hbox{#1}%
    \ifdim\wd\@tempboxa>\linewidth
    \noindent
    \colorbox{pink}{%
        \parbox{\dimexpr\linewidth-2\fboxsep}{#1}%
    }%
    \else
    \colorbox{pink}{#1}%
    \fi}%Highlighter.
\makeatother
\usepackage{framed}
\usepackage{enumitem}

\begin{document}
\hl{\lipsum[2]}

\lipsum[1]

Some inline \hl{ text} need to be highlighted.

\colorlet{shadecolor}{pink}
\begin{shaded*}
\begin{enumerate}[wide = 0pt, before=\vspace*{-\dimexpr\topsep+\partopsep+1.5ex}, after=\vspace*{-\dimexpr\topsep+\partopsep+1.5ex}]
    \item This enumeration gives no error
    \item This enumeration gives no error
\end{enumerate}
\end{shaded*}
 Some normal text.

\end{document} 

在此处输入图片描述

相关内容