「\color{red}で文字を赤くした後,\color{black}で文字を黒に戻す」という操作を繰り返すと,途中から\colorが正常に動作しなくなってしまいます.これを解決する方法としてどのような手立てが考えられますでしょうか?
以下に.texファイルの中身を記載し,コンパイルによって出力されたpdfを添付いたします.
(62回目以降の\color{red}から正常に動作していないようです)
\documentclass[dvipdfmx]{jbook}
\usepackage[dvipdfmx]{color} % 色付け
\begin{document}
0
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
10
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
20
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
30
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
40
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
50
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの
60
\color{red}他の\color{black}どの
\color{red}他の\color{black}どの\color{red}他の\color{black}どの\color{red}他の\color{black}どの\color{red}他の\color{black}どの
\end{document}
dvipdfmx の問題のようです:
Provide high level "pushcolor" and "popcolor" to avoid color stack overflow with some engines when changing colors at top level
https://github.com/latex3/latex2e/issues/882
(Jun 28, 2022)
when use lots of \color{} command, can't change color
https://tex.stackexchange.com/questions/427022/when-use-lots-of-color-command-cant-change-color
(asked Apr 17, 2018 at 14:26)
stackexchange での egreg さんのご回答に、問題が発生する理由の
解説と、回避法が書かれていました。
\documentclass[dvipdfmx]{jbook}
\usepackage[dvipdfmx]{color} % 色付け
\begin{document}
0
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
10
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
20
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
30
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
40
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
50
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
60
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\end{document}
Provide high level "pushcolor" and "popcolor" to avoid color stack overflow with some engines when changing colors at top level
https://github.com/latex3/latex2e/issues/882
(Jun 28, 2022)
when use lots of \color{} command, can't change color
https://tex.stackexchange.com/questions/427022/when-use-lots-of-color-command-cant-change-color
(asked Apr 17, 2018 at 14:26)
stackexchange での egreg さんのご回答に、問題が発生する理由の
解説と、回避法が書かれていました。
\documentclass[dvipdfmx]{jbook}
\usepackage[dvipdfmx]{color} % 色付け
\begin{document}
0
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
10
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
20
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
30
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
40
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
50
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
60
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\textcolor{red}{他の}\textcolor{black}{どの}\textcolor{red}{他の}\textcolor{black}{どの}
\end{document}
要するに
{\color{red}色を付けたい部分}
(\textcolor{red}{色を付けたい部分}
はこれと実質的に同じです)とすればよくて、だから「{\color{red}
」と「}
」をそれぞれマクロにできればよいわけです。しかしマクロの定義に「{
と}
の均衡がとれていないもの」を書くことはできないため、(この場合に)同じように使える\begingroup
、\endgroup
を使います。
\newcommand{\Red}[1]{\begingroup\color{red}}
\newcommand{\Black}[1]{\endgroup}
このマクロを使うと
\Red{}色を付けたい部分\Black{}
と書くことができて、後で\Red{}
と\Black{}
を一括削除できます。
※「区切りのスペースの扱い」が厄介になるのを避けるために敢えて意味のない引数({}
)を入れています。
もう少し技巧的になりますが
\newcommand{\Red}[1]{\ifx0#1\endgroup\else\begingroup\color{red}\fi}
と定義すると、
\Red1色を付けたい部分\Red0
と書けます。(この場合は1
や0
が引数になっています。)