如果我想取消文档中的所有脚注命令,但又不真正删除它们,我可以使用命令\renewcommand\footnote[2][]{}
。(例如,参见寻找一种方法来废除所有脚注,而无需将其从法典中真正删除)
我想知道这是否可能,如果可以,我怎样才能(类似地)中和文档中的所有着色命令 - 而不删除它们 - 以便生成的文档仅包含灰度而不包含其他颜色?
我问这个问题的原因是,例如,当一个人自己出版一本书(比如在亚马逊上),用黑白的出版方式要便宜得多——我不知道彩色的文档是否可以上传并自动转换为灰度——或者是否需要以更高的成本制作彩色的文档。
因此,考虑 MWE:
\documentclass[12pt]{book}
\usepackage{tcolorbox}
\definecolor{darkamber}{RGB}{213,54,0}
\definecolor{forestgreen}{rgb}{.13, .55, .13}
\colorlet{aPurple}{blue!77!red}
\definecolor{RoyalRed}{RGB}{157,16, 45}
\definecolor{scarlet}{RGB}{255, 36, 0}
\definecolor{burntorange}{rgb}{0.8, 0.33, 0.0}
\definecolor{cadmiumgreen}{rgb}{0.0, 0.42, 0.24}
\begin{document}
\thispagestyle{empty}
\Large
\begin{center}
\begin{tcolorbox}[width=.90\textwidth,colback={white},title={\textcolor{white}{\bf \hfill COLOR TO GRAYSCALE \hfill}},colbacktitle=burntorange,coltitle=black] \par \emph{} \\
\textcolor{scarlet}{\textbf{AAA}} \\
\textcolor{aPurple}{\textbf{BBB}} \\
\textcolor{cadmiumgreen}{\textbf{CCC}} \\
\textcolor{forestgreen!35!black}{\textbf{DDD}} \\
\textcolor{RoyalRed}{\textbf{EEE}} \\
\textcolor{burntorange}{\textbf{FFF}} \\
\textcolor{darkamber}{\textbf{GGG}}
\end{tcolorbox}
\end{center}
\end{document}
输出结果如下:
问题:如何才能“一举”将所有文本和 tcolorbox 颜色转换为灰度(如果可能的话),而无需删除任何着色代码?我用编译了代码pdflatex
。
谢谢。
答案1
既然您要求使用“类似”的方法,那么您可能也想\renewcommand
在这里使用。在某些情况下,您可以复制命令,然后覆盖原始命令,例如:
\let\olddefinecolor\definecolor
\renewcommand{\definecolor}[3]{\olddefinecolor{#1}{named}{black}}
这会将所有后续定义的颜色变为黑色(但当然仅限于用 定义的颜色\definecolor
,而不是aPurple
通过 定义的颜色\colorlet
)。
\documentclass[12pt]{book}
\usepackage{tcolorbox}
\let\olddefinecolor\definecolor
\renewcommand{\definecolor}[3]{\olddefinecolor{#1}{named}{black}}
\definecolor{darkamber}{RGB}{213,54,0}
\definecolor{forestgreen}{rgb}{.13, .55, .13}
\colorlet{aPurple}{blue!77!red}
\definecolor{RoyalRed}{RGB}{157,16, 45}
\definecolor{scarlet}{RGB}{255, 36, 0}
\definecolor{burntorange}{rgb}{0.8, 0.33, 0.0}
\definecolor{cadmiumgreen}{rgb}{0.0, 0.42, 0.24}
\begin{document}
\thispagestyle{empty}
\Large
\begin{center}
\begin{tcolorbox}[width=.90\textwidth,colback={white},title={\textcolor{white}{\bf \hfill COLOR TO GRAYSCALE \hfill}},colbacktitle=burntorange,coltitle=black] \par \emph{} \\
\textcolor{scarlet}{\textbf{AAA}} \\
\textcolor{aPurple}{\textbf{BBB}} \\
\textcolor{cadmiumgreen}{\textbf{CCC}} \\
\textcolor{forestgreen!35!black}{\textbf{DDD}} \\
\textcolor{RoyalRed}{\textbf{EEE}} \\
\textcolor{burntorange}{\textbf{FFF}} \\
\textcolor{darkamber}{\textbf{GGG}}
\end{tcolorbox}
\end{center}
\end{document}
但是,如果您想将颜色更改为灰度,更简单的方法是加载xcolor
带有选项的包gray
。这将选择灰度作为目标颜色模型,因此会将所有定义的颜色转换为灰度。请注意,不同的颜色很难区分。
由于使用了tcolorbox
加载包的方式xcolor
,因此可以\PassOptionsToPackage{gray}{xcolor}
在加载之前添加:
\documentclass[12pt]{book}
\PassOptionsToPackage{gray}{xcolor} % <-
\usepackage{tcolorbox}
\definecolor{darkamber}{RGB}{213,54,0}
\definecolor{forestgreen}{rgb}{.13, .55, .13}
\colorlet{aPurple}{blue!77!red}
\definecolor{RoyalRed}{RGB}{157,16, 45}
\definecolor{scarlet}{RGB}{255, 36, 0}
\definecolor{burntorange}{rgb}{0.8, 0.33, 0.0}
\definecolor{cadmiumgreen}{rgb}{0.0, 0.42, 0.24}
\begin{document}
\thispagestyle{empty}
\Large
\begin{center}
\begin{tcolorbox}[width=.90\textwidth,colback={white},title={\textcolor{white}{\bf \hfill COLOR TO GRAYSCALE \hfill}},colbacktitle=burntorange,coltitle=black] \par \emph{} \\
\textcolor{scarlet}{\textbf{AAA}} \\
\textcolor{aPurple}{\textbf{BBB}} \\
\textcolor{cadmiumgreen}{\textbf{CCC}} \\
\textcolor{forestgreen!35!black}{\textbf{DDD}} \\
\textcolor{RoyalRed}{\textbf{EEE}} \\
\textcolor{burntorange}{\textbf{FFF}} \\
\textcolor{darkamber}{\textbf{GGG}}
\end{tcolorbox}
\end{center}
\end{document}
(还有一个monochrome
选项可以禁用彩色输出并将所有颜色呈现为黑色,但这在这里不起作用,因为您还使用背景颜色。)