
Этот вопрос похож наСлучайным образом раскрасить абзацы в документе 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}