目前,我正在使用 {tabular} 环境来区分我正在编写的文档中的示例:
\begin{tabular}{r|p{11cm}}
\emph{Example} & [Lots of text and equations]
\end{tabular}
它使得在示例过程中,页面左侧有一条漂亮的线条。唯一的问题是它在分页符方面表现不佳。我知道 longtable 包可以将表格连续到多个页面上,但由于我将所有内容都放在一个表格条目中,所以它对我来说不起作用。
我意识到我完全误用了{tabular},并且正在寻找一个可以给我带来相同效果但会将效果延续到连续页面的环境。
答案1
两个简单的例子展示了两种可能性:mdframed
另一个是tcolorbox
;这些软件包的优势在于framed
它们通过简单的key=value
界面提供了无限的定制可能性:
\documentclass{article}
\usepackage[a5paper,paperwidth=18cm]{geometry}% just for the example
\usepackage{amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage[most]{tcolorbox}
\usepackage{lipsum}% just to generate text for the example
\newmdtheoremenv[
hidealllines=true,
leftline=true,
innertopmargin=0pt,
innerbottommargin=0pt,
linewidth=4pt,
linecolor=gray!40,
innerrightmargin=0pt,
innertopmargin=-6pt,
]{examplei}{Example}
\newtcolorbox{exampleii}{
freelance,
breakable,
width=\dimexpr\textwidth+28pt\relax,
before=\par\vspace{\bigskipamount}\noindent,
enlarge left by=-14pt,
overlay unbroken and first={
\node[
anchor=north east,
inner xsep=8pt,
xshift=8pt,
rounded corners=5pt,
font=\bfseries,
fill=white] at ([xshift=-0.2cm]frame.north west) (tit) {\strut Example:};
\draw[
line width=3pt,
rounded corners=5pt,gray
] ([xshift=4pt]frame.north west) -- ([xshift=4pt]frame.south west);
},
overlay middle and last={
\draw[
line width=3pt,
rounded corners=5pt,gray
] ([xshift=4pt]frame.north west) -- ([xshift=4pt]frame.south west);
},
frame code={},
interior code={},
top=0pt,
bottom=0pt
}
\begin{document}
\lipsum[1]
\begin{examplei}
\lipsum[4]
\end{examplei}
\lipsum[4]
\begin{examplei}
\lipsum[1-2]
\end{examplei}
\lipsum[1-3]
\begin{exampleii}
\lipsum[4]
\end{exampleii}
\lipsum[1]
\begin{exampleii}
\lipsum[4-6]
\end{exampleii}
\lipsum[4-5]
\end{document}
页面布局仅为了示例而改变。
您还可以查看以下答案排版定义获取更多示例和变体(该答案中的代码可以轻松调整以生成标签“示例”而不是“定义”)。
答案2
MWE 使用包framed
,经过编辑,拥有足够的文本来分页:
\documentclass{article}
\usepackage{framed}
\newenvironment{example}%
{\begin{leftbar}\begin{quotation}}%
{\end{quotation}\end{leftbar}}
\usepackage{lipsum}
\begin{document}
\lipsum[1-2]
\begin{example}
\lipsum[1-10]
\end{example}
\end{document}
想要更改线条的粗细以及与文本的距离吗?请在序言中添加以下内容\usepackage{framed}
:
\renewenvironment{leftbar}{%
\def\FrameCommand{\vrule width 1pt \hspace{5pt}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}
其中\vrule width Xpt
(在本例中更改为 1pt)设置垂直规则的粗细,\hspace{Ypt}
这里设置为 5pt,是从行到文本的空间。
leftbar
如果你不想处理环境自带的其他格式,也可以使用本机环境quotation
。只需使用
\begin{leftbar}
\lipsum[1-10]
\end{leftbar}
并将应用序言中的相同自定义选项。