以下两个例子的代码定义相同literate
,文字A!
用于通过颜色和大小来强调某些代码,文字!A
用于恢复颜色。
pt
在第一个例子中,我想要强调代码,而且它确实可以正常工作。
在第二个例子中,我想要强调代码\expandafter\@firstoftwo
,但是红色延伸到末尾,并且\huge
表现得很奇怪。
为什么?我的代码有什么问题?
\documentclass{article}
\usepackage{listings,xcolor}
\begin{document}
Exp 1:
\begin{lstlisting}[literate={A!}{{\huge\color{red}\bfseries}}0{!A}{{\normalcolor}}0]
\ifdim \stwo A!pt!A >\sone pt $<$\else $\geq$\fi
\end{lstlisting}
Exp 2:
\begin{lstlisting}[literate={A!}{{\huge\color{red}\bfseries}}0{!A}{{\normalcolor}}0]
\makeatletter
\newcommand\myConditionTF[1]{%
#1% or something like \ifx..., \if\empty..., and so on.
A!\expandafter\@firstoftwo!A
\else
\expandafter\@secondoftwo
\fi
}
\makeatother
\end{lstlisting}
\end{document}