我希望将一些文本呈现为半透明状态,但不是以叠加的方式(最终变得不透明),而是永久性地保持半透明。更复杂的是,所涉及的文本是矩阵的一部分:matrix
:
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& \{-2,3,5\} &
\end{matrix}
$
我希望将矩阵中的第三行半透明。有什么方法可以实现吗?
我希望将一些文本呈现为半透明状态,但不是以叠加的方式(最终变得不透明),而是永久性地保持半透明。更复杂的是,所涉及的文本是矩阵的一部分:matrix
:
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& \{-2,3,5\} &
\end{matrix}
$
我希望将矩阵中的第三行半透明。有什么方法可以实现吗?
编辑: 通过将其转化为一个带有可选参数的命令来改进解决方案。
好的,我找到了如何做到这一点:
\newcommand{\semitransp}[2][35]{\textcolor{fg!#1}{#2}}
...
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& \semitransp{\{-2,3,5\}} &
\end{matrix}
$
可选参数控制透明度。因此,\semitransp[20]{text}
较浅,而 \semitransp[60]{text}
则较深。在我的电脑屏幕上, 默认值35看起来不错。但还未知道在墙上投影时的效果如何。
\newcommand{\semitransp}[2][35]{\textcolor{fg!#1}{#2}}
% Swap \color with \textcolor and add another curly brackets pair.
...
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& \semitransp{\{-2,3,5\}} &
\end{matrix}
$
\pgfsetfillopacity
。与通过将前景颜色与背景混合来伪造不透明度相比,其优点是,即使存在背景图像或其他彩色元素,它也能正常工作。\documentclass{beamer}
\begin{document}
\begin{frame}
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& {\pgfsetfillopacity{0.2}\{-2,3,5\}} &
\end{matrix}
$
\end{frame}
\setbeamertemplate{background canvas}{\includegraphics[width=\paperwidth]{example-grid-100x100bp}}
\begin{frame}
$
\begin{matrix}
& \{-2,3,5,0,8\} & \\
\{-2,3,5,0\} & & \{-2,3,5,8\} \\
& {\pgfsetfillopacity{0.2}\{-2,3,5\}} &
\end{matrix}
$
\end{frame}
\end{document}
我遇到了同样的问题,但上面建议的方法如果环境重新定义字体或颜色则无法解决。更加健壮的方法似乎是使用来自https://ctan.org/pkg/transparent的transparent
包。
\usepackage{transparent}
\newcommand{\semitransp}[2][0.35]{{\transparent{#1}#2}}
\documentclass{beamer}
\usepackage{transparent}
\newcommand{\semitransp}[2][0.35]{{\transparent{#1}#2}}
\begin{document}
\begin{frame}
\semitransp{
This is transparent.
\begin{itemize}
\item This is also transparent.
\end{itemize}
}
\end{frame}
\end{document}
(这个例子适用于transparent
包,但不适用于textcolor
方法。)