我正在尝试更改使用纯色图片环境绘制的图片,并且需要将某些图片的背景颜色更改\framebox
为浅灰色。可以吗?
我知道还有更强大的环境,比如tikz
,但是这个图形相当复杂,我宁愿尽可能少地改变。
例如,假设有以下 LaTeX 代码:
\documentclass[12pt]{article}
\usepackage{picture}
\begin{document}
\begin{figure}[hp]
\begin{center}
\setlength{\unitlength}{1cm}
\begin{picture}(7,3)(0,0)
\put( 4,3){\framebox(3,3){World}} % background = grey ??
\put( 0,3){\framebox(3,3){Hello}}
\end{picture}
\end{center}
\end{figure}
\end{document}
产生这个数字:
我怎样才能更改该代码才能获得此结果:
以最少的努力改变代码?
我试图使用pstricks
类似于picture
包超集的东西,但无法解决我的问题......
答案1
\colorbox
使用和 包可以实现这一点xcolor
。您只需添加一个宏并将其设置\fboxsep
为 0pt。
\documentclass[12pt]{article}
\usepackage{picture,xcolor}
\begin{document}
\begin{figure}[hp]
\begin{center}
\setlength{\unitlength}{1cm}
\begin{picture}(7,3)(0,0)
\setlength\fboxsep{0pt}
\put( 4,3){\colorbox{gray!20}{\framebox(3,3){World}}} %
\put( 0,3){\framebox(3,3){Hello}}
\end{picture}
\end{center}
\end{figure}
\end{document}
答案2
只需稍加按摩,你仍然可以利用环境picture
来做到这一点,而不必诉诸更高级的技术(例如tikz/pgf
或者pstricks
):
\documentclass[12pt]{article}
\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage{picture}% http://ctan.org/pkg/picture
\begin{document}
\begin{figure}[hp]
\begin{center}
\setlength{\unitlength}{1cm}
\setlength{\fboxsep}{15mm}
\begin{picture}(7,3)(0,0)
\put( 4,4.5){\fcolorbox{black}{black!15}{\smash{\makebox[0pt]{\raisebox{-.5\height}{World}}}}} % background = 15% black
\put( 0,3){\framebox(3,3){Hello}}
\end{picture}
\end{center}
\end{figure}
\end{document}
以上用途\fcolorbox
来自xcolor
用某种颜色填充背景(或在本例中为 15% 黑色)。整个想法是在具有宽度/高度(或*black!15
)的框中排版没有高度/宽度的内容。3cm
15mm
\fboxsep
\framebox
这个答案试图复制来自包的行为。@Altermundus 通过传统方式picture
添加背景的答案更加简洁。\colorbox
xcolor
*我猜,如果需要更高的精度,\setlength{\fboxsep}{\dimexpr 15mm-\fboxrule\relax}
可能会更合适。
答案3
\documentclass{article}
\usepackage{pstricks-add}
\begin{document}
\begin{pspicture}[showgrid=false](11,5)
\psset{linestyle=dashed,fillstyle=solid,opacity=0.5}
\psTextFrame[fillcolor=red](0,0)(5,5){Counter}
\psTextFrame[fillcolor=blue](6,0)(11,5){Terrorist}
\end{pspicture}
\end{document}