一、背景
使用latex编写文章时,会遇到如下场景,使用多个颜色表达多个人的表达内容。其中代表说话人的颜色更深(饱和度高),而说话人内容的背景颜色要浅(饱和度低),这样可以清晰的将不用人的内容进行区别。例子如下,其中红色的方框表示说话人的颜色,说话的内容是用同RGB+饱和度实现。
二、解决方法
这里直接使用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}
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}
三、总结
xcolor比color的功能更加强大,然而一些情况下可能只能使用color。因此本博客介绍了一下,如何在能使用xcolor和只能使用color的场景下,展示多人表达内容。