我有数百我的项目中使用三种不同颜色编码样式的混合颜色定义,例如(基于%)RGB 色彩,(基于 0-255)RGB和 (FFFFFF)HTML:
\definecolor{lemon}{rgb}{1.0, 0.97, 0.0}
\definecolor{maize}{rgb}{0.98, 0.93, 0.37}
\definecolor{mustard}{rgb}{1.0, 0.86, 0.35}
\definecolor{ocre}{HTML}{F16723}
\definecolor{Tangerine}{RGB}{253,128,8}
在一次家务活动中,为了根据颜色的数字代码对颜色进行排序,我想知道是否可能已经存在 LaTeX 代码,我可以使用它来转换(基于%)RGB 色彩颜色定义(基于 0-255)RGB颜色定义,例如转换:
\definecolor{maize}{rgb}{0.98, 0.93, 0.37}
到:
\definecolor{maize}{RGB}{250,237,94}
理想情况下,代码会以 0-255 为基数写出转换后颜色的 LaTeX 代码RGB颜色(LaTeX)代码放入文本文件中。
如果存在这样的 LaTeX 代码,那么我可以使用 LaTeX(基于%)RGB 色彩至(基于 0-255)RGB转换代码作为模型来创建 LaTeX 代码来转换 HTML 颜色到(基于 0-255)RGB颜色。
一旦所有颜色都转换为(基于 0-255)RGB然后我可以按颜色定义按数字排序(基于 0-255)RGB颜色。
答案1
以下示例代码重新定义,\definecolor{<colour>}{<model>}{<spec>}
以便它可以将更新输出\definecolor{<colour>}{RGB}{<RGB spec>}
到名为的文件colour.txt
(感谢找出 RGB 或 HEX 颜色xcolor
):
\documentclass{article}
\usepackage{newfile}
\newoutputstream{colourfile}
\openoutputfile{colour.txt}{colourfile}
\usepackage{xcolor}
\let\olddefinecolor\definecolor
\renewcommand{\definecolor}[3]{%
\olddefinecolor{#1}{#2}{#3}% Original colour definition
% Taken from: https://tex.stackexchange.com/q/35033/5764
\extractcolorspec{#1}{\tempcolourspec}% Extract colour specification
\expandafter\convertcolorspec\tempcolourspec{RGB}\tempcolourspec% Convert colour specification to RGB
\addtostream{colourfile}{% Write RGB colour specification to file
\protect\definecolor{#1}{RGB}{\tempcolourspec}%
}%
}
\AtEndDocument{%
\closeoutputstream{colourfile}% Close colour.txt
}
\definecolor{lemon}{rgb}{1.0, 0.97, 0.0}
\definecolor{maize}{rgb}{0.98, 0.93, 0.37}
\definecolor{mustard}{rgb}{1.0, 0.86, 0.35}
\definecolor{ocre}{HTML}{F16723}
\definecolor{Tangerine}{RGB}{253,128,8}
\begin{document}
\textcolor{lemon}{lemon}
\textcolor{maize}{maize}
\textcolor{mustard}{mustard}
\textcolor{ocre}{ocre}
\textcolor{Tangerine}{Tangerine}
\end{document}
该文件colour.txt
现在包含:
\definecolor{lemon}{RGB}{255,247,0}
\definecolor{maize}{RGB}{250,237,94}
\definecolor{mustard}{RGB}{255,219,89}
\definecolor{ocre}{RGB}{241,103,35}
\definecolor{Tangerine}{RGB}{253,128,8}