"투명"(예: 불투명) 텍스트 상자로 비머 테이블 부분 오버레이

"투명"(예: 불투명) 텍스트 상자로 비머 테이블 부분 오버레이

간단해야 할 것 같습니다! 방금 배운 multirow다른 많은 테이블 관련 패키지를 사용하여 매우 복잡한 테이블을 만든 후 이제 성공적인 오버레이( 또는 그와 비슷한 방식으로 제어됨)를 사용하여 대화하는 동안 테이블의 일부를 강조하고 싶습니다.beamer\pause

나는 다음과 같은 세 가지 텍스트 블록 호출을 상상했습니다.

\begin{textblock}{14.5}(0.75,3)
   \textblockcolor{yellow}
   \vspace{.5cm}
   \center
   Above the Saddle**
   \vspace{.5cm}
\end{textblock}

각각 다른 xy 위치, 다른 색상의 배경, 다른 단어를 가지고 있습니다.

textblockcolor내 문제는 그 아래의 텍스트(즉, 테이블 텍스트)가 보이도록 불투명하거나 반투명하게 만들고 싶다는 것입니다 .

나는 " transparent" 패키지를 시도했지만 많은 실패를 겪었고 다른 많은 잘못된 리드도 시도했습니다(너무 많아서 모두 잊어버렸습니다). 나는 textpos(설정으로 내가 원하는 것을 할 수 있을 것이라고 생각하면서 ) 문서를 연구했습니다. overlay어떤 아이디어가 있습니까?

당연히 나는 텍스트가 반투명하거나 불투명하거나 투명해지는 것을 원하지 않습니다. "불투명도"를 사용하고 싶은 것 같지만 해당 스레드에서 검색해도 내가 원하는 곳으로 연결되지 않습니다. 물론 각 텍스트의 색상을 변경할 수 있으면 좋을 것입니다 textblock. 검은색.

도움과 생각을 가져주셔서 감사합니다.

답변1

\tikzmark한 가지 가능성은 (Andrew Stacey 작성) 의 개선된 버전을 사용하는 것입니다 . 아이디어는 간단합니다. 테이블 내부에 \tikzmark각 블록에 대한 "표시"를 입력하는 데 사용합니다(예: \tikzmark{start1}첫 번째 블록이 시작될 위치와 \tikzmark{end1}첫 번째 블록이 끝나야 하는 위치, \tikzmark{start2}두 번째 블록이 시작될 위치 및 \tikzmark{end2}두 번째 블록이 위치할 위치). 종료되어야 합니다. 등).

그런 다음 각 블록에 대해 매크로를 사용하여 \MyBox텍스트가 포함된 상자를 그립니다. 구문은

\MyBox[<left|right>]{<color>}{<start-mark>}{<end-mark>}{<text>}

<text>여기서 선택적 인수는 의 위치를 ​​제어하고 <color>블록과 텍스트에 사용되는 색상을 지정하며 <start-mark><end-mark>이전 단계의 표시이며 <text>상자와 함께 표시되는 텍스트입니다. 물론, \MyBox색상 상자를 그리고 필요에 따라 텍스트를 배치하는 다른 방법을 정의할 수 있습니다.

\documentclass{beamer}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{calc,fit}

% code by Andrew Stacey
% http://tex.stackexchange.com/a/50054/3954    
\makeatletter
\tikzset{%
  remember picture with id/.style={%
    remember picture,
    overlay,
    save picture id=#1,
  },
  save picture id/.code={%
    \edef\pgf@temp{#1}%
    \immediate\write\pgfutil@auxout{%
      \noexpand\savepointas{\pgf@temp}{\pgfpictureid}}%
  },
  if picture id/.code args={#1#2#3}{%
    \@ifundefined{save@pt@#1}{%
      \pgfkeysalso{#3}%
    }{
      \pgfkeysalso{#2}%
    }
  }
}

\def\savepointas#1#2{%
  \expandafter\gdef\csname save@pt@#1\endcsname{#2}%
}

\def\tmk@labeldef#1,#2\@nil{%
  \def\tmk@label{#1}%
  \def\tmk@def{#2}%
}

\tikzdeclarecoordinatesystem{pic}{%
  \pgfutil@in@,{#1}%
  \ifpgfutil@in@%
    \tmk@labeldef#1\@nil
  \else
    \tmk@labeldef#1,(0pt,0pt)\@nil
  \fi
  \@ifundefined{save@pt@\tmk@label}{%
    \tikz@scan@one@point\pgfutil@firstofone\tmk@def
  }{%
  \pgfsys@getposition{\csname save@pt@\tmk@label\endcsname}\save@orig@pic%
  \pgfsys@getposition{\pgfpictureid}\save@this@pic%
  \pgf@process{\pgfpointorigin\save@this@pic}%
  \pgf@xa=\pgf@x
  \pgf@ya=\pgf@y
  \pgf@process{\pgfpointorigin\save@orig@pic}%
  \advance\pgf@x by -\pgf@xa
  \advance\pgf@y by -\pgf@ya
  }%
}
\newcommand\tikzmark[2][]{%
\tikz[remember picture with id=#2] #1;}
\makeatother
% end of code by Andrew Stacey

\newcommand<>\MyBox[5][right]{%
  \tikz[remember picture,overlay,pin distance=0cm]
  {\draw[draw=#2,fill=#2!40,line width=1pt,rectangle,rounded corners]
( $ (pic cs:#3) + (0,2ex) $ ) rectangle ( $ (pic cs:#4) + (0,-1ex) $ );
  \node[fit = (pic cs:#3) (pic cs:#4),label=#1:\textcolor{#2!80!black}{\parbox{2cm}{\raggedright#5}}] 
   {};}%
}%

\begin{document}

\begin{frame}{Test Frame}

\onslide<2>{\MyBox{blue}{start1}{end1}{Some text 1}}
\onslide<3>{\MyBox[left]{green!40!black}{start2}{end2}{Some text 2}}
\onslide<4>{\MyBox{orange}{start3}{end3}{Some text 3}}
\onslide<5>{\MyBox{yellow!70!black}{start4}{end4}{Some text 4}}

\centering
\begin{tabular}{lll}
\toprule
Header1 & Header 2 & Header 3 \\
\midrule
\tikzmark{start1}Column1a & Column2a & Column3a \\
Column1a & Column2a & Column3a\tikzmark{end1} \\
\tikzmark{start4}Column1b & Column2b & Column3b \\
Column1c & Column2c & Column3c \\
\tikzmark{start2}Column1d & Column2d & Column3d \\
Column1e & Column2e & Column3e \\
Column1f & Column2f & Column3f \\
Column1g & Column2g & Column3g \\
Column1h & Column2h & Column3h\tikzmark{end4} \\
Column1i & Column2i & Column3i \\
Column1j & \tikzmark{start3}Column2j & Column3j \\
Column1k & Column2k\tikzmark{end2} & Column3k\tikzmark{end3} \\
\bottomrule
\end{tabular}

\end{frame}

\end{document}

다음은 결과 문서의 애니메이션입니다.

여기에 이미지 설명을 입력하세요

관련 정보