如何指定透明颜色?

如何指定透明颜色?

有哪些选项可以指定透明颜色,比如下面示例中的背景?我以为xcolor可以做到这一点,但在手册中找不到对“alpha”或“透明度”的任何引用。

\documentclass{article}
\usepackage{listings,xcolor}

\lstset{frame=shadowbox, backgroundcolor=\color{green}}

\title{Transparency test}

\begin{document}
\maketitle
\begin{lstlisting}
Hello, world.
\end{lstlisting}
\end{document}

可以使用 XeLaTeX 或 LuaLaTeX 来做到这一点吗?

答案1

我想你可能正在寻找transparent

\documentclass{article}
\usepackage{color}
\usepackage{transparent}
\begin{document}
  \colorbox{red}{%
    Black text in a red box %
    \transparent{1.0}%
    \colorbox{blue}{%
      and now a blue box is added%
    }
  }

  \colorbox{red}{%
    Black text in a red box %
    \transparent{0.5}%
    \colorbox{blue}{%
      and now a transparent blue box is added%
    }
  }
\end{document}

在此处输入图片描述

答案2

您可以使用 pgf 包获得透明度,它也可以与 xetex/luatex 一起使用。但不透明度设置在分页符处会丢失,并且不尊重 TEX 组和框(据我所知,透明包的要点之一是将透明度限制在框内)。这意味着如果您没有在正确的位置明确重置不透明度,则不透明度可能会“泄漏”:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor,pgf}% http://ctan.org/pkg/{listings,xcolor,transparent}
\title{Transparency test}
\begin{document}
\maketitle
% Solid green
\lstset{frame=shadowbox, backgroundcolor=\color{green}}
\begin{lstlisting}
Hello, world.
\end{lstlisting}

% 50% transparent green
\lstset{frame=shadowbox, backgroundcolor={\color{green}\pgfsetfillopacity{0.5}}}
\begin{lstlisting}
Hello, world.
\end{lstlisting}


\lstset{frame=shadowbox, backgroundcolor=\color{green}}
\begin{lstlisting}
Hello, world.
\end{lstlisting}


\lstset{frame=shadowbox, backgroundcolor=\color{green}\pgfsetfillopacity{1}}
\begin{lstlisting}
Hello, world.
\end{lstlisting}

\end{document}

答案3

我指定了一个伪透明将其与白色混合即可获得亮色。您可以轻松提亮任何颜色通过选择要与之结合的白色量。

\colorlet{LightSpringGreen}{White!70!SpringGreen}

数字越大,颜色越亮。还有更多选项,如本问题所述:了解 xcolor 颜色混合模型

相关内容