代码之家  ›  专栏  ›  技术社区  ›  Christian Neverdal

如何在带有tikz的Fancy标题框中仅围绕选定的角

  •  2
  • Christian Neverdal  · 技术社区  · 16 年前

    如果你看看 http://www.texample.net/tikz/examples/boxes-with-text-and-math/ 那里的盒子有圆角。在示例中,框本身和标题都是一个框。我希望标题框的底角不要圆角。

    在第120页 manual 有一个关于如何使用和不使用圆角绘制的描述。但是,我想在FancyTitle中使用它。把FancyTitle作为一个盒子,当它和盒子一样宽的时候,所有的角都是圆形的,这看起来有点傻。

      \begin{tikzpicture}[baseline=-2cm]
        \node [mybox] (box){
          \begin{minipage}[t!]{0.50\textwidth}
            Help, I'm a box
          \end{minipage}
        };
        \node[fancytitle, text width=0.5423\textwidth, text centered, rounded corners] at (box.north) {Help, I'm a title};
      \end{tikzpicture}
    

    我用的样式是这个

      \tikzstyle{mybox} = [draw=red, fill=blue!20, very thick,
        rectangle, rounded corners, inner sep=10pt, inner ysep=20pt]
      \tikzstyle{fancytitle} = [fill=red, text=white]
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Niall Murphy    16 年前

    可能最简单的实现效果的方法(不解决问题)如下。

    添加 name=title 到标题节点。

    然后沿着标题节点的底部绘制一条线。

    \draw [draw=red,line width=2pt] (title.south west) -- (title.south east);

    这给了两个小的地方,线超过拍摄,修复这一点,你可以添加。

    \usetikzlibrary{calc}

    移动使每一端的线短1点,向上一点。
    \draw [draw=red,line width=2pt] ($(title.south west)+(+1pt,+1pt)$) -- ($(title.south east)+(-1pt,+1pt)$) ;