PSTricks의 \psshadowbox 명령에 대한 TikZ의 아날로그

PSTricks의 \psshadowbox 명령에 대한 TikZ의 아날로그

PSTricks에서 다음 코드는 다음과 같습니다.

\documentclass{article}
\usepackage[usenames]{pstcol}
\usepackage{pst-plot}
\usepackage{pst-grad}

\begin{document}

\noindent
\psshadowbox[linecolor=Green,framearc=0.5,linewidth=0.3pt,fillstyle=gradient,
gradbegin=ForestGreen, gradend=GreenYellow,framesep=5pt,
shadowcolor=SpringGreen,
gradmidpoint=1]%{$\mathcal{P}_{113}$}\\[2.9cm]
{\huge{\textbf{P 113}}}\\
\psshadowbox[linecolor=Green,framearc=0.5,linewidth=0.3pt,fillstyle=gradient,
gradbegin=ForestGreen, gradend=GreenYellow,framesep=5pt,
shadowcolor=SpringGreen,
gradmidpoint=1]%{$\mathcal{P}_{113}$}\\[2.9cm]
{\Large{\textbf{P 113}}}\\

\end{document}

다음 그림을 생성합니다(300% 확대/축소).

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

TikZ로 같은 피규어를 만들 수 있는 방법이 있나요? 비슷한 작업을 수행할 수 있지만 너비가 고정된 템플릿을 찾았습니다.

\documentclass[svgnames]{article}
\usepackage{tikz}
\usepackage{array}
\usetikzlibrary{shadows}
\newcommand{\pbox}[4]{%
  \begin{tikzpicture}
    \node[#3] {\begin{minipage}[t][#2][t]{#1}%
      #4
    \end{minipage}};
  \end{tikzpicture}}

\begin{document}

\pbox{0.21 \textwidth}{}{rectangle,drop shadow, fill=Red,rounded corners=5pt,inner sep=6pt, 
shade,top color=ForestGreen, bottom color=GreenYellow, draw=Green}
{\centering{\Huge{\textbf{P 113}}}}
\pbox{0.13 \textwidth}{}{rectangle,drop shadow, fill=Red,rounded corners=5pt,inner sep=6pt,
             shade,top color=ForestGreen, bottom color=GreenYellow, draw=Green}
             {\centering{\Large{\textbf{P 113}}}}

 \end{document}

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

\psshadowbox내가 원하는 것은 분수를 개별적으로 변경하지 않고도 상자의 너비가 텍스트를 자동으로 조정하는 것입니다 \textwidth. 반면에 TikZ로 만든 그림자의 색상을 PSTricks 블록과 가장 유사하게 변경하겠습니다.

답변1

기본적으로 TikZ의 너비는 \node내용의 자연 너비에 inner sep양쪽 패딩을 더한 값이므로 기본적으로 다음을 제거하기만 하면 됩니다 minipage.

\documentclass[svgnames]{article}
\usepackage{tikz}
\usetikzlibrary{shadows}

\definecolor{topColor}{RGB}{0,250,0}
\definecolor{botColor}{RGB}{170,255,46}
\definecolor{shaColor}{RGB}{180,234,90}

\tikzset{
mybox/.style={
  rectangle,
  drop shadow, 
  rounded corners=5pt,
  inner sep=6pt,
  draw=topColor,
  shade,
  top color=topColor, 
  every shadow/.append style={fill=shaColor}, 
  bottom color=botColor, 
  draw=Green
  }
}

\begin{document}

\begin{tikzpicture}
\node[mybox]
  {\Huge\textbf{P 113}};
\node[mybox] at (0,2)
  {Some other longer test};
\end{tikzpicture}

\end{document}

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

또는 다음 명령을 정의합니다.

\documentclass[svgnames]{article}
\usepackage{tikz}
\usetikzlibrary{shadows}

\definecolor{topColor}{RGB}{0,250,0}
\definecolor{botColor}{RGB}{170,255,46}
\definecolor{shaColor}{RGB}{180,234,90}

\tikzset{
mybox/.style={
  rectangle,
  drop shadow, 
  rounded corners=5pt,
  inner sep=6pt,
  draw=topColor,
  shade,
  top color=topColor,
  every shadow/.append style={fill=shaColor}, 
  bottom color=botColor, 
  draw=Green
  }
}

\newcommand\MyBox[2][]{%
  \tikz\node[mybox,#1] {#2}; 
}

\begin{document}

\MyBox{\Huge\textbf{P 113}}\par\medskip
\MyBox{Some other longer test}

\end{document}

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

\Huge그건 그렇고,~ 아니다인수가 있는 명령; 필요한 경우 {\Huge <text>}또는 에서와 같이 사용되는 글꼴 스위치입니다 .{\Huge <text>\par}

관련 정보