\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}