与文本宽度相同的框 TikZ

与文本宽度相同的框 TikZ
\documentclass{minimal}  
\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\noindent 
\begin{tikzpicture}[trim left = (box.west)] 
\node[draw = red] (box) {%
    \begin{minipage}{\textwidth} 
      \lipsum[1]
    \end{minipage}
    };
\node[left = 1cm] at (box.west) {hello};
\end{tikzpicture} 
      
\lipsum[2]
\end{document}

有没有办法强制框具有与上面的文本相同的宽度?

尽可能不使用

    \begin{minipage}{0.94\textwidth} 

谢谢

在此处输入图片描述

答案1

请尝试以下操作:

\documentclass{article}
\usepackage{microtype}
\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\noindent
\begin{tikzpicture}[trim left = (box.west)] 
\node[draw = red, align=justify,
      text width =\textwidth-2*\pgfkeysvalueof{/pgf/inner xsep}] (box) {\lipsum[1]};
\node[left = 1cm] at (box.west) {hello};
\end{tikzpicture}

\lipsum[2]
\end{document}

如您所见,minipage已被删除,但已定义是节点的 text width

在此处输入图片描述

这就是你所追求的吗?

答案2

您可以使用tcolorbox。它的默认宽度是\linewidth

\documentclass{article}
\usepackage{microtype}
\usepackage{tikz}
\usepackage{lipsum}

\begin{document}

\noindent
\begin{tikzpicture}[trim left = (box.west)] 
\node[draw = red, align=justify,
      text width =\textwidth-2*\pgfkeysvalueof{/pgf/inner xsep}] (box) {\lipsum[1]};
\node[left = 1cm] at (box.west) {hello};
\end{tikzpicture}

\lipsum[2]
\end{document}

在此处输入图片描述

相关内容