![如何对几个段落进行框架处理,使得框架的宽度与周围文本的宽度完全相同,并且完全停留在一页上?](https://linux22.com/image/465040/%E5%A6%82%E4%BD%95%E5%AF%B9%E5%87%A0%E4%B8%AA%E6%AE%B5%E8%90%BD%E8%BF%9B%E8%A1%8C%E6%A1%86%E6%9E%B6%E5%A4%84%E7%90%86%EF%BC%8C%E4%BD%BF%E5%BE%97%E6%A1%86%E6%9E%B6%E7%9A%84%E5%AE%BD%E5%BA%A6%E4%B8%8E%E5%91%A8%E5%9B%B4%E6%96%87%E6%9C%AC%E7%9A%84%E5%AE%BD%E5%BA%A6%E5%AE%8C%E5%85%A8%E7%9B%B8%E5%90%8C%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%AE%8C%E5%85%A8%E5%81%9C%E7%95%99%E5%9C%A8%E4%B8%80%E9%A1%B5%E4%B8%8A%EF%BC%9F.png)
假设我们想将一到两段文字放入可见的框架中,如下所示:
- 框架的总宽度(包括其边框)与周围文本的宽度完全相同(特别是,框架不应突出到右边距)
同时
- 框架停留在一页上,即,框架不跨越多页。
以下是我迄今为止未成功的尝试:
\documentclass{article}
\usepackage{lipsum,framed}
\begin{document}
\vspace*{72ex}
\lipsum[1]
\begin{framed}%% NOT ON ONE PAGE!
\begin{samepage}%
\textbf{Some Title:}\par
\lipsum[2]%
\end{samepage}%
\end{framed}
\lipsum[3]
\par\medskip\noindent\fbox{\parbox{\textwidth}{%% GOES INTO THE RIGHT MARGIN; I dunno how to compute the width properly!
\indent\textbf{Some Title:}\par\indent%% first-line indents don't work!
\lipsum[4]
}}
\end{document}
产量
如您所见,上部框架跨越了分页符,而下部框架占据了比通常的文本更多的水平空间。(此外,不幸的是,首行缩进在下部框架中不起作用。不过,这还不算太糟;我可以解决这个问题。)
该怎么办?
编辑:基于约翰的建议,我尝试过这个:
\documentclass{article}
\usepackage{lipsum,framed}
\begin{document}
\vspace*{72ex}
\lipsum[1]
\par\addvspace{\topsep}\noindent
{\fboxsep=3\fboxsep
\fbox{\parbox{\dimexpr\textwidth-2\fboxsep-2\fboxrule}{%
\textbf{Some Title:}\\
\lipsum[2]
}}}\par\addvspace{\topsep}\indent
\lipsum[3]
\end{document}
它的工作如下:
但是,这串低级命令相当繁琐,而且容易出错。某些包中没有可以执行此操作的命令吗?
答案1
我会用包裹tcolorbox
默认情况下,它或多或少可以实现你所期望的功能:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tcolorbox}
\usepackage{showframe}% to visualize the text area
\begin{document}
\vspace*{72ex}
\lipsum[1]
\begin{tcolorbox}
\subsubsection*{Some Title:}
\lipsum[2]%
\end{tcolorbox}
\lipsum[3]
\end{document}
或者如果你喜欢尖角、较细的框架线条和白色背景:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tcolorbox}
%\usepackage{showframe}% to visualize the text area
\begin{document}
\vspace*{72ex}
\lipsum[1]
\begin{tcolorbox}[sharp corners=all,boxrule=\fboxrule,colback=white]
\subsubsection*{Some Title:}
\lipsum[2]%
\end{tcolorbox}
\lipsum[3]
\end{document}
如果您还希望所有框架都使用这些设置,或者还希望更改内边距或其他选项,请参阅手册以获取更多信息。