Последовательно раскрашивать абзацы в документе LaTeX

Последовательно раскрашивать абзацы в документе LaTeX

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

Связанный контент