我找不到方法来匹配 tikzpicture 的框宽度和列宽度。
以下是代码:
\tikzstyle{mybox} = [draw=primary_shade3, fill=white, thick,
rectangle, rounded corners, inner ysep=10pt]
\tikzstyle{fancytitle} =[fill=white, text=primary_shade3]
\noindent \begin{tikzpicture}
\node [mybox] (box){%
\begin{minipage}{\linewidth}
\begin{itemize}
\item[$\bullet$] De plus en plus de patients et de moins en moins de personnel
\item[$\bullet$] Perte d'information lors du suivi à partir d'observations visuelles
\item[$\bullet$] Contraintes de coût, de portabilité et d'utilisabilité des nouvelles \\
plate-formes
\end{itemize}
\end{minipage}
};
\node[fancytitle, right=10pt] at (box.north west) {Problématique};
\end{tikzpicture}
如您所见,框的右侧超出了列宽……您知道如何解决这个问题吗?
最好的
答案1
您不应该在 tikz 节点中使用 minipages。问题是添加了 inner 和 outer ,sep
这导致框超出范围。编辑:我添加了一个输出,稍微显示了所做的事情。(当然,必须减去这些值两次,它们在左右两边相加。是的,tcolorbox
正如 Ignasi 在他的回答为您做所有这些,尽管如此,我认为问题是为什么会发生这种情况。;-)
\documentclass{article}
\usepackage{tikz,lipsum}
\begin{document}
\definecolor{primary_shade3}{rgb}{0.66,0.0,0.66}
\tikzset{mybox/.style={draw=primary_shade3, fill=white, thick,
rectangle, rounded corners, inner ysep=10pt},
fancytitle/.style={fill=white, text=primary_shade3}}
\lipsum[1]
\noindent \begin{tikzpicture}
\pgfmathsetmacro{\mywidth}{\linewidth-2*\pgfkeysvalueof{/pgf/inner xsep}-2*\pgfkeysvalueof{/pgf/outer xsep}
-\pgflinewidth}
\typeout{the\space line\space width\space is\space\the\linewidth,\space and\space
the\space text\space width\space is\space\mywidth}
\node [mybox,text width=\linewidth-2*\pgfkeysvalueof{/pgf/inner xsep}-2*\pgfkeysvalueof{/pgf/outer xsep}
-\pgflinewidth] (box){%
\begin{itemize}
\item[$\bullet$] De plus en plus de patients et de moins en moins de personnel
\item[$\bullet$] Perte d'information lors du suivi à partir d'observations visuelles
\item[$\bullet$] Contraintes de coût, de portabilité et d'utilisabilité des nouvelles \\
plate-formes
\end{itemize}
};
\node[fancytitle, right=10pt] at (box.north west) {Problématique};
\end{tikzpicture}
\lipsum[2]
\end{document}
答案2
更简单的解决方案是使用tcolorbox
。它的默认大小始终调整为\linewidth
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usetikzlibrary{babel}
\definecolor{primary_shade3}{rgb}{0.66,0.0,0.66}
\newtcolorbox{mybox}[2][]{
enhanced,
colback=white,
colframe=primary_shade3,
coltitle=primary_shade3,
fonttitle=\bfseries,
attach boxed title to top left={xshift=3mm,yshift*=-\tcboxedtitleheight/2},
boxed title style={
colframe=white,
colback=white,
size=fbox
},
title=#2,
#1
}
\begin{document}
\lipsum[1]
\begin{mybox}{Problématique}
\begin{itemize}
\item[$\bullet$] De plus en plus de patients et de moins en moins de personnel
\item[$\bullet$] Perte d'information lors du suivi à partir d'observations visuelles
\item[$\bullet$] Contraintes de coût, de portabilité et d'utilisabilité des nouvelles plate-formes
\end{itemize}
\end{mybox}
\lipsum[2]
\end{document}