如何改变 \framebox 的背景颜色?

如何改变 \framebox 的背景颜色?

我正在尝试更改使用纯色图片环境绘制的图片,并且需要将某些图片的背景颜色更改\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 )的框中排版没有高度/宽度的内容。3cm15mm \fboxsep

\framebox这个答案试图复制来自包的行为。@Altermundus 通过传统方式picture添加背景的答案更加简洁。\colorboxxcolor

*我猜,如果需要更高的精度,\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}

在此处输入图片描述

相关内容