我怎样才能使文本每行交替显示颜色?

我怎样才能使文本每行交替显示颜色?

我指的不是表格,只是普通的文本段落。例如,我希望每隔一行都用红色绘制,或以其他方式突出显示。

我的用例是为有特殊需要的学生准备考试。

我认为可以想办法在画完线后调用一些 TikZ 代码,类似于类似软件包的做法lineno。但这远远超出了我的 LaTeX 技能。

任何帮助都将受到赞赏。

答案1

这是快速写出来的这个答案作为起点。它适用于纯文本,但不适用于方程式。感谢 TiZ' 模函数,您还可以添加更长的颜色列表并在 n 种颜色之间交替。原则上,这可以在没有 Ti 的情况下完成Z(例如使用 zrefpos)。并且它不需要任何特殊的编译器,例如lualatex

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{soul}
\def\lstcolors{"black","red"}
\newcounter{colorindex}
\makeatletter
\DeclareRobustCommand*\myalternate{%
\begin{tikzpicture}[overlay,remember picture]
\path let \p1=($(0,0)-(current page.south)$) in \pgfextra{
\xdef\lasty{\y1}};
\end{tikzpicture}%
\def\SOUL@everytoken{\begin{tikzpicture}[overlay,remember picture]
\path let \p1=($(0,0)-(current page.south)$) in \pgfextra{
\ifdim\y1<\lasty
 \stepcounter{colorindex}
 \xdef\lasty{\y1}
\fi};
\end{tikzpicture}%
\pgfmathsetmacro{\currentcolor}{{\lstcolors}[mod(\number\value{colorindex},2)]}%
\textcolor{\currentcolor}{\the\SOUL@token}}%
\SOUL@}
\makeatother
\begin{document}
\myalternate{hello hello hello hello hello hello hello hello hello hello
hello hello hello hello hello hello hello hello hello hello hello
hello hello hello hello hello hello hello hello hello hello hello
hello hello hello hello hello hello hello hello hello hello hello
hello hello hello hello hello hello hello hello hello hello hello}
\end{document}

在此处输入图片描述

相关内容