我尝试用 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}