奇数行和偶数行的替代文本样式

奇数行和偶数行的替代文本样式

我想制作类似 lstlinebgrd 包的东西来创建斑马效果。

\documentclass{article}
\usepackage{lstlinebgrd}
\usepackage[english]{babel}%If not an error occurs
\begin{document}
\begin{lstlisting}[language=C,basicstyle=\ttfamily,linebackgroundcolor={\ifodd\value{lstnumber}\color{green}\fi}]
    First line
    Second line
    Third line
    Fourth line
\end{lstlisting}

但奇数行和偶数行的替代文本样式,如这段不起作用的代码:注意basicstyle={\ifodd\value{lstnumber}\it\fi}

\documentclass{article}
\usepackage{lstlinebgrd}
\usepackage[english]{babel}%If not an error occurs
\begin{document}
\begin{lstlisting}[language=C,basicstyle={\ifodd\value{lstnumber}\it\fi},linebackgroundcolor={\ifodd\value{lstnumber}\color{green}\fi}]
    First line : normalfont
    Second line : italic
    Third line : normal font
    Fourth line : italic
\end{lstlisting}

我曾尝试修改代码:使用列表创建斑马效果(导致包 lstlinebgrd)没有成功。

我知道 listing 包和 lstlinebgrd 包都不是为此而设计的。我的 latexfuu 不足以破解解决方案。也许你可以帮助我,或者给我一个方向?也许是其他包。解决方案不必针对代码,而要针对文本。

答案1

而不是将basicstyle其应用于所有列表代码,您可以修改identifierstyle,,,像这样commentstylestringstylekeywordstyle

\documentclass{article}
\usepackage{lstlinebgrd}
\usepackage[english]{babel}%If not an error occurs

\def\oddtest{\ifodd\value{lstnumber}\normalfont\else\itshape\fi}

\begin{document}
\begin{lstlisting}[language=C,
    identifierstyle=\oddtest,
    commentstyle=\oddtest,
    stringstyle=\oddtest,
    keywordstyle=\oddtest,
    linebackgroundcolor={\ifodd\value{lstnumber}\color{green}\fi}]
    First line : normalfont     % comment
    Second line : italic        % comment
    Third line : normal font
    Fourth line : italic
\end{lstlisting}
\end{document}

在此处输入图片描述

相关内容