如何根据给定的文本调整框架的宽度?

如何根据给定的文本调整框架的宽度?

我目前正在尝试在一些文本或图片周围添加一个框架,标题为“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.
}}

结果

相关内容