
この質問は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}
あるいは、2つのユーザーマクロを定義して\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}