如何将 `\lit` 与 `\hl` 结合起来?

如何将 `\lit` 与 `\hl` 结合起来?

如果我有以下内容:

\lit*{\char`\\ b}

我如何将其与\hl(突出显示)结合起来以获得突出显示的版本\b

\lit来自包裹syntax\hl来自soul

答案1

对我来说,解决方案通常是改变灵魂如何注册你输入的命令

\documentclass{article}
\usepackage{syntax}
% \usepackage{xcolor} % for colouring
\usepackage{soul}

\soulregister\lit7 % this tells soul to register \lit as non expanded command.
% so the result is \hl{result of lit}
\usepackage{lipsum}
\begin{document}
    Example

    \lit{Example}
    
    \hl{Example}
    
    \hl{\lit{Example}}
\end{document}

更多细节:如何使 \hl(突出显示)自动将不兼容的命令放置在 \mbox 中?

编辑

根据 quark67 的评论,您可以创建一个新命令\newcommand{\newlit}[1]{\lit*{#1}}作为注册该命令

\documentclass{article}
\usepackage{syntax}
\usepackage{xcolor} % for colouring
\usepackage{soul}

\newcommand{\newlit}[1]{\lit*{#1}}
\soulregister\newlit7 % this tells soul to register \newlit as non expanded command. Yes the 7 at the end is what does it!
% so the result is \hl{result of \lit*}
\usepackage{lipsum}
\begin{document}
    Example

    \lit{Example}
    
    \hl{Example}
    
    \hl{\lit{Example}}

    \hl{\newlit{Example}}
\end{document}

相关内容