Beamer(pdflatex)中的半透明文本

7

我希望将一些文本呈现为半透明状态,但不是以叠加的方式(最终变得不透明),而是永久性地保持半透明。更复杂的是,所涉及的文本是矩阵的一部分:matrix

$
\begin{matrix}
          & \{-2,3,5,0,8\} & \\
    \{-2,3,5,0\} & & \{-2,3,5,8\} \\
          & \{-2,3,5\} &
\end{matrix}
$

我希望将矩阵中的第三行半透明。有什么方法可以实现吗?

4个回答

14

编辑: 通过将其转化为一个带有可选参数的命令来改进解决方案。

好的,我找到了如何做到这一点:

\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看起来不错。但还未知道在墙上投影时的效果如何。


@humleflue,您的编辑后,这现在基本上是 https://dev59.com/hVDTa4cB1Zd3GeqPGRzM#54069299 的一个副本。 - samcarter_is_at_topanswers.xyz

7
Ari的回答可能适用于他(以及在2010年),但给定的命令将使所有后续文本变为透明,而不仅仅是给定的文本。
使只有给定文本透明的改进解决方案:
\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}
$

5
为获得真正的半透明效果,可以使用\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}

0

我遇到了同样的问题,但上面建议的方法如果环境重新定义字体或颜色则无法解决。更加健壮的方法似乎是使用来自https://ctan.org/pkg/transparenttransparent包。

    \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方法。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接