tikzset 的问题

tikzset 的问题

我尝试用 tikz 制作一个带有圆角和标题的框来做一些定义、属性......

我试过这个

\tikzset{mybox/.style={draw=black, thick,rectangle, rounded corners, inner sep=10pt, inner ysep=10pt}}
\tikzset{titlebox/.style={fill=white, text=black,thick,draw=black}}

\newcommand{\tikzboxb}[2]{%
\begin{tikzpicture}%
\node[mybox] (box){%
\begin{minipage}{0.96\linewidth}%
    #2%
\end{minipage} };%
\node[titlebox] at (box.north west) {%
    #1%
};%
\end{tikzpicture}%
}

\begin{document}

\tikzboxb{Propriété}{

\begin{center}
\begin{tikzpicture}[scale=0.3]
    \draw (0,0)--(8,1)--(4,5)--cycle;
\end{tikzpicture}
\end{center}

}

甚至这个

\begin{tikzpicture}%
\begin{minipage}{0.96\linewidth}%
    \begin{tikzpicture}[scale=0.3]
        \draw (0,0)--(8,1)--(4,5)--cycle;
    \end{tikzpicture}
\end{minipage} };%
\node[fill=white, text=black,thick,draw=black , right=10pt] at (box.north west) {Propriété};%
\end{tikzpicture}

结果是

在此处输入图片描述

两种情况都有问题。第一种情况下,盒子看起来不像我想要的那样,第二种测试也是如此。

在两种情况下,三角形都有圆角!

看来我为节点定义的样式(并且仅适用于它)被用于所有绘图。

我尝试了太多的改变,我已经筋疲力尽了,我需要一些帮助。

谢谢,Benoît

答案1

有了这个tcolorbox包,你就能得到你想要的东西。这是一个带有可选参数的框,默认情况下显示单词Propriété

我已经复制了您的盒子的大致内容,可以修改框架的颜色,标题,实际上一切,因为一切都是可配置的。

我的盒子

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage[most]{tcolorbox}

% title style "mybox" 
\tcbset{titlebox/.style={boxed title style={colframe=black,colbacktitle=white,sharp corners,boxrule=.6pt,boxsep=1.5pt}}}

% box creating the box "mybox"
\newtcolorbox{mybox}[1][Propriété]{
titlebox,arc=7pt,width=0.95\textwidth,
colframe=black,colbacktitle=white,coltitle=black,colback=white,
center,boxrule=0.6pt,
enhanced,nobeforeafter,
attach boxed title to top left={yshift=-3mm,xshift=18pt},
title=#1}

\begin{document}

\begin{mybox}
\begin{center}
\begin{tikzpicture}[scale=0.3]
    \draw (0,0)--(8,1)--(4,5)--cycle;
\end{tikzpicture}
\end{center}
\end{mybox}
\bigskip

\begin{mybox}[Définition]
\begin{center}
\begin{tikzpicture}[scale=0.3]
    \draw[fill=green!50] (0,0)--(8,1)--(4,5)--cycle;
\end{tikzpicture}
\end{center}
\end{mybox}
\end{document}

答案2

正如 BambOo 指出的,以及讨论的这里tikzpicture,应避免嵌套s。您的示例也说明了原因:rounded corners外部的pgfkeys 等tikzpicture将应用于内部tikzpicture。将内部放入tikzpicture\savebox,如所解释的那样这里,避免这种情况。

\documentclass{article}
\usepackage{tikz}
\tikzset{mybox/.style={draw=black, thick,rectangle, rounded corners, inner sep=10pt, inner ysep=10pt}}
\tikzset{titlebox/.style={fill=white, text=black,thick,draw=black}}

\newcommand{\tikzboxb}[2]{%
\begin{tikzpicture}%
\node[mybox] (box){%
\begin{minipage}{0.96\linewidth}%
    #2%
\end{minipage} };%
\node[titlebox] at (box.north west) {%
    #1%
};%
\end{tikzpicture}%
}
\newsavebox\picbox
\sbox\picbox{\begin{tikzpicture}[scale=0.3]
    \draw (0,0)--(8,1)--(4,5)--cycle;
\end{tikzpicture}}
\begin{document}

\tikzboxb{Propri\'et\'e}{

\begin{center}
\usebox\picbox
\end{center}

}
\end{document}

在此处输入图片描述

相关内容