有没有办法将颜色模型更改monochrome
为文档的某个部分?我想制作一个部分mononcrome
没有影响标题。这可能吗?我知道\usepackage[mononcrome]{xcolor}
和,\passOptionToPackage[mononcrome]{xcolor}
但这些只能应用于序言中,我思考它们也会影响标题吗?
低于
\documentclass{article}
\usepackage{lipsum,fancyhdr,xcolor}
\pagestyle{fancy}
\rhead{}
\chead{\textcolor{red}{\leftmark}}
\lhead{\textcolor{blue}{Keep colors in header}}
\begin{document}
\section{Colors}
\lipsum[1-2]
\section{Monochrome}
\lipsum[3]\textcolor{red}{This should become gray}
\lipsum[4]\textcolor{green}{this too}
\lipsum[5]\textcolor{blue}{and this}
\section{Colors}
\lipsum[5]\textcolor{red}{This should stay red}
\lipsum[66]\textcolor{orange}{same with this}
\lipsum[75]
\end{document}
答案1
在这里,我查看了xcolor
包并找到了该选项执行的内容monochrome
。然后我以组限制的方式将其直接放置在文档中。
已编辑以使其融入monochrome
环境。
\documentclass{article}
\usepackage{lipsum,fancyhdr,xcolor}
\pagestyle{fancy}
\rhead{}
\chead{\textcolor{red}{\leftmark}}
\lhead{\textcolor{blue}{Keep colors in header}}
\makeatletter
\newenvironment{monochrome}
{\begingroup
\colors@false
\def\set@color{\c@lor@special\m@ne
{color push \current@color}\aftergroup\reset@color}%
\def\reset@color{\c@lor@special\m@ne{color pop}}%
\def\set@page@color{\c@lor@special\m@ne{background \current@color}}
}
{\endgroup}
\makeatother
\begin{document}
\section{Colors}
\lipsum[1-2]
\section{Monochrome}
\begin{monochrome}
\lipsum[3]\textcolor{red}{This should become gray}
\lipsum[4]\textcolor{green}{this too}
\lipsum[5]\textcolor{blue}{and this}
\end{monochrome}
\section{Colors}
\lipsum[5]\textcolor{red}{This should stay red}
\lipsum[66]\textcolor{orange}{same with this}
\lipsum[75]
\end{document}
答案2
为了帮助 Steven B. Segletes 的回答下的讨论,并且由于我无法在那里发表评论,这里介绍了如何在组内\selectcolormodel{gray}
或作为环境设置灰度:
\newenvironment{grayscale}
{\begingroup \selectcolormodel{gray}}
{\endgroup}
这或许可以回答故意的直截了当的问题。
可以选择任何颜色模型来代替灰色,但为什么需要这样做并不明显。