一、背景
使用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的場景下,展示多人表達內容。