这个问题类似于LaTeX 文档中的段落随机着色,但我想用独特的颜色(颜色列表)为段落着色,有什么办法吗?(我想对原始问题的答案进行评论,但我没有足够的声誉。
答案1
当然还有改进的空间(例如,可以将颜色列表定义为逗号分隔的列表),但你可以使用下面的代码,厚颜无耻地基于egreg 的回答回答您链接的问题。
\documentclass{article}
\usepackage{everyhook,xcolor,lipsum}
\newcounter{cyclecolor}
\newcommand*{\cyclecolor}{%
\stepcounter{cyclecolor}%
\ifcase\value{cyclecolor}%
\or\color{red}%
\or\color{orange}%
\or\color{teal}%
% add further colors here
\or\color{blue}%
\setcounter{cyclecolor}{0}% the last one in the list must reset the counter
\fi}
\PushPostHook{par}{\cyclecolor} % https://tex.stackexchange.com/a/157158/82917
\begin{document}
\section{First}
\lipsum[66]
\lipsum[75]
\lipsum[66]
\lipsum[75]
\lipsum[66]
\lipsum[75]
\end{document}
或者,您可以定义两个用户宏\cyclecolor
,并\nocyclecolor
在文档中间切换行为
\documentclass{article}
\usepackage{everyhook,xcolor,lipsum}
\newcounter{cyclecolor}
\makeatletter
\def\@cyclecolor{\relax}
\newcommand*{\cyclecolor}{\def\@cyclecolor{\@@cyclecolor}}
\newcommand*{\nocyclecolor}{\color{black}\def\@cyclecolor{\relax}}
\newcommand*{\@@cyclecolor}{%
\stepcounter{cyclecolor}%
\ifcase\value{cyclecolor}%
\or\color{red}%
\or\color{orange}%
\or\color{teal}%
% add further colors here
\or\color{blue}%
\setcounter{cyclecolor}{0}%
\fi}
\PushPostHook{par}{\@cyclecolor}
\makeatother
\begin{document}
% start with normal black
\lipsum[66]
\cyclecolor % cycles through colors
\lipsum[75]
\lipsum[66]
\lipsum[75]
\lipsum[66]
\lipsum[75]
\lipsum[75]
\nocyclecolor % restores normal black
\lipsum[66]
\lipsum[75]
\end{document}
答案2
尚未经过全面测试但是...
\documentclass{article}
\usepackage{lipsum}
\usepackage{xcolor}
\definecolorseries{parrafo}{rgb}{last}{blue}{red}
\resetcolorseries[3]{parrafo}
\let\oldpar\par
\def\par{\oldpar\color{parrafo!!+}}
\begin{document}
\section{Test}
\lipsum[1][1-5]\par
\lipsum[2][1-5]\par
\lipsum[3][1-5]\par
\lipsum[4][1-5]\par
\lipsum[3][1-5]\par
\lipsum[4][1-5]\par
\section{More test}
\lipsum[1][1-5]\par
\lipsum[2][1-5]\par
\lipsum[3][1-5]\par
\lipsum[4][1-5]\par
\lipsum[3][1-5]\par
\lipsum[4][1-5]\par
\end{document}