
Esta pregunta es similar aColorea aleatoriamente párrafos en un documento LaTeX, pero quiero colorear los párrafos con un color único (lista de colores), ¿hay alguna forma de hacerlo? (Quiero comentar sobre la respuesta de la pregunta original, pero no tengo suficiente reputación.
Respuesta1
Seguro que hay margen de mejora (por ejemplo, se podría definir la lista de colores como una lista separada por comas), pero se puede utilizar el siguiente código, basado descaradamente enla respuesta de egrega la pregunta que vinculó.
\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}
Alternativamente, puede definir dos macros de usuario \cyclecolor
y \nocyclecolor
cambiar el comportamiento a mitad del documento.
\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}
Respuesta2
No completamente probado pero...
\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}