用换行符框适配内容

用换行符框适配内容

所以我想做这样的事:

\mybox{Some content on the first line \\ some content on the second line \\ and this boxes border are fitting the content}

因此,我希望内容周围有一个框,该框实际上适合内容,并且还尊重换行符等内容。我该怎么做?

答案1

一个简单的解决方案,无需任何额外的包就可以使用\fboxtabular环境。

\documentclass[border=2mm]{standalone}

\newcommand\mybox[2][l]{%
  \fbox{\begin{tabular}{@{}#1@{}}#2\end{tabular}}}

\begin{document}
\mybox{this text\\is in\\my box\\and the border\\fits}
\mybox[c]{centered text\\is also possible\\with the optional\\argument}
\end{document}

在此处输入图片描述

固定宽度很容易使用[p{<width>}]可选参数来实现。右对齐[r](因为tabular任何列定义都可以)。

答案2

这里有两种方法:第一种使用eqparbox包和\fbox(或者,在下面的代码中,\fcolorbox如果您想要一些颜色),第二种,一个简单的tabular带有单个居中列的方法,以及makecell允许在标准单元格中换行的包。

您可能还对这个包感兴趣pbox:同名的命令就像一个\parbox,其中宽度参数定义实际上是一个最小盒子的宽度。

\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[svgnames, table]{xcolor}
\colorlet{framecolor}{Gold}

\usepackage{eqparbox}
\usepackage{makecell}
\usepackage{bigstrut}
\newcommand{\myfbox}[1]{\arrayrulecolor{framecolor}\begin{tabular}{|@{\,\,}c@{\,\,}|}
\hline
\makecell[l]{\bigstrut[t]#1 \bigstrut[b]}\\
\hline
\end{tabular}}

\begin{document}

\fboxrule = 1pt 
\begin{center}
\fcolorbox{IndianRed}{white}{\eqparbox{mybox}{Some content on the first line \\ some content on the second line \\ and this boxes border are fitting the content.}}
\vskip 1cm

\arrayrulewidth = 1pt
\myfbox{Some content on the first line \\ some content on the second line \\ and this boxes border are fitting the content.}
\end{center}

\end{document}

在此处输入图片描述

相关内容