
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}
。