![如何根据给定的文本调整框架的宽度?](https://linux22.com/image/271476/%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E7%BB%99%E5%AE%9A%E7%9A%84%E6%96%87%E6%9C%AC%E8%B0%83%E6%95%B4%E6%A1%86%E6%9E%B6%E7%9A%84%E5%AE%BD%E5%BA%A6%EF%BC%9F.png)
我目前正在尝试在一些文本或图片周围添加一个框架,标题为“W”。回答。我的代码实际上是这样的:
\documentclass{article}
\usepackage{tikz}
\newcommand{\titlebox}[2]{
\begin{tikzpicture}
\node[align=center,draw,thick,text width=\textwidth,inner sep=6mm] (titlebox) {#2};
\node[fill=white] (Title) at (titlebox.north) {\bfseries \large #1};
\end{tikzpicture}
}
\begin{document}
\titlebox{Title}{Text in the frame.}
\end{document}
结果是:
我的问题是如何确保框架的宽度自动适合内部文本或元素(图片)的宽度?
答案1
删除text width
标题框的键(align=center
在这种情况下也不需要)。
当然,如果参数#2
包含大量文本,它将被排版为一行。您可以避免将\parbox
所需宽度的文本作为参数传递给\titlebox
,如下例所示。
\newcommand{\titlebox}[2]{
\begin{tikzpicture}
\node[draw,thick,inner sep=6mm] (titlebox) {#2};
\node[fill=white] (Title) at (titlebox.north) {\bfseries \large #1};
\end{tikzpicture}
}
\titlebox{Title}{Text in the frame.}
\titlebox{Another example}{\parbox{4cm}{
This is a longer text which will be typeset in a paragraph with a width of 4cm.
}}