所以我想做这样的事:
\mybox{Some content on the first line \\ some content on the second line \\ and this boxes border are fitting the content}
因此,我希望内容周围有一个框,该框实际上适合内容,并且还尊重换行符等内容。我该怎么做?
答案1
一个简单的解决方案,无需任何额外的包就可以使用\fbox
和
tabular
环境。
\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}