latex中使用xcolor实现颜色的饱和度

一、背景

使用latex编写文章时,会遇到如下场景,使用多个颜色表达多个人的表达内容。其中代表说话人的颜色更深(饱和度高),而说话人内容的背景颜色要浅(饱和度低),这样可以清晰的将不用人的内容进行区别。例子如下,其中红色的方框表示说话人的颜色,说话的内容是用同RGB+饱和度实现。
image

二、解决方法

这里直接使用xcolor包实现,如果xcolor包被禁用,就是用多个颜色实现。值得注意的是,这里使用的是自定义的格式,因此需要引入mdframed的包。

1.使用xcolor包的实现

实现的代码如下,其中关键在于!20部分,这种使用方法在color包中会报错。

\documentclass{article}
\pdfpagewidth=8.5in
\pdfpageheight=11in

\usepackage{xcolor}
% 定义颜色
\definecolor{R1color}{RGB}{252,99,21}
\newcommand\RONE[1]{\textcolor{R1color}{#1}}


\usepackage[framemethod=default]{mdframed}

\global\mdfdefinestyle{comment1}{%
     linecolor=R1color,
     linewidth=0.05cm,backgroundcolor=R1color!20,% 这里的!20在color中不支持。
     leftmargin=-0.1cm,rightmargin=-0.1cm, innerleftmargin=0.5cm,innerrightmargin=0.1cm,innerbottommargin=0.01cm,
     topline=false,bottomline=false,
     innertopmargin=0.05cm,
     rightline=false
}

\begin{document}

\begin{mdframed}[style=comment1] 
	\textit{\noindent\RONE{R\#2}:
	 // 这里写内容即可
	} 
\end{mdframed}

\end{document}

image

2.使用color包解决

这种解决方案针对某些情况下,xcolor包被禁止使用,而color包未被禁止(一般而言color包是可以在任何条件下使用)。解决方案也很简单,即重新定义一下颜色,这里为了展示方便,给出了一个其他的颜色。这种解决方案不够优雅。

\documentclass{article}
\pdfpagewidth=8.5in
\pdfpageheight=11in

\usepackage{color}
% 定义颜色
\definecolor{R1color}{RGB}{252,99,21}
\definecolor{R2color}{RGB}{152,99,211}
\newcommand\RONE[1]{\textcolor{R1color}{#1}}


\usepackage[framemethod=default]{mdframed}

\global\mdfdefinestyle{comment1}{%
     linecolor=R1color,
     linewidth=0.05cm,backgroundcolor=R2color,% 将这里的!20换成新定义的R2color
     leftmargin=-0.1cm,rightmargin=-0.1cm, innerleftmargin=0.5cm,innerrightmargin=0.1cm,innerbottommargin=0.01cm,
     topline=false,bottomline=false,
     innertopmargin=0.05cm,
     rightline=false
}


\begin{document}

\begin{mdframed}[style=comment1] 
	\textit{\noindent\RONE{R\#2}:
	\\ 这里写内容
	} 
\end{mdframed}

\end{document}

image

三、总结

xcolor比color的功能更加强大,然而一些情况下可能只能使用color。因此本博客介绍了一下,如何在能使用xcolor和只能使用color的场景下,展示多人表达内容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章