将文本放在框中:自定义框:每行不同的颜色

将文本放在框中:自定义框:每行不同的颜色

对于投影仪演示,我想将文本放在一个框中,使得:
- 框的所有行都是空白的,
- 除框的左上角和右下角为颜色 X。

\begin{\mybox}{blue}
     Some text here
\end{\mybox}

盒子例子

(这个例子是我手工制作的,文本不必居中)。

我见过一些例子,其中框线都是相同颜色。
但我不知道如何调整它们。

答案1

以下是使用无处不在的一种可能的解决方案\tikzmark;事实上,这是我在某些演示中使用的装饰的变体;新环境cblock有一个可选参数,允许更改使用的颜色:

\documentclass{beamer}
\usepackage{tikz}
\usetikzlibrary{calc}

\definecolor{pbblue}{HTML}{0A75A8}
\definecolor{pborange}{HTML}{F57E0F}

\newcommand\tikzmark[1]{\tikz[overlay,remember picture] \coordinate (#1) {};}
\newlength\mylinewd% the length used for the lines
\setlength\mylinewd{30pt}

\def\decorateblock#1{%
  \setbeamertemplate{block begin}{%
    \tikzmark{start}\par{\usebeamercolor{#1}\insertblocktitle}\par}
  \setbeamertemplate{block end}{%
    \tikzmark{end}\par
    \begin{tikzpicture}[remember picture,overlay]
      \coordinate (e) at ($(start)+(-10pt,0)$);
      \coordinate (f) at ($(end)+(\textwidth,0)$);
      \draw[ultra thick,#1] ( $ (e) + (0pt,-\mylinewd) $ ) -- ( $ (e) + (0pt,5pt) $ ) -- ( $ (e) + (\mylinewd,5pt) $ ) ;
      \draw[ultra thick,#1] ( $ (f) + (0pt,\mylinewd) $ ) -- (f) -- ( $ (f) + (-\mylinewd,0pt) $ ) ;
    \end{tikzpicture}%
  }%
}

\newenvironment<>{cblock}[1][pbblue]
  {\decorateblock{#1}\begin{block}}
  {\end{block}}

\begin{document}

\begin{frame}
\begin{cblock}{Example}
text text text text text text text text text text text text text text text text text text text text text text text text text text text text
\end{cblock}
\begin{cblock}[pborange]{Example}
text text text text text text text text text text text text text text text text text text text text 
\end{cblock}
\end{frame}

\end{document}

在此处输入图片描述

该代码需要运行两次才能稳定下来。

相关内容