我想制作类似 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
,,,像这样commentstyle
stringstyle
keywordstyle
\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}