我想要实现的是让文本主体获得以下效果:
我看过很多使用各种括号的例子,但没有一个像上面的那样。到目前为止,我只设法使用 mdframed 获得了一个简单的框架,但这离我希望得到的还差得很远。
\documentclass{memoir}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}
\usepackage{fullpage}
\begin{document}
\begin{mdframed}
\lipsum[1]
\end{mdframed}
\end{document}
你有什么想法?
答案1
您至少有两个选项允许在框架文本内进行分页。您可以使用tcolorbox
包裹:
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{most}
\usepackage{lipsum}
\newtcolorbox{mybox}{
freelance,
breakable,
frame code={
\draw
([xshift=2cm]frame.north west) --
(frame.north west) --
(frame.south west) --
([xshift=2cm]frame.south west);
\draw
([xshift=-2cm]frame.north east) --
(frame.north east) --
(frame.south east) --
([xshift=-2cm]frame.south east);
},
colback=white
}
\begin{document}
\lipsum[4]
\begin{mybox}
\lipsum[4]
\end{mybox}
\lipsum[4]
\end{document}
或者你可以使用mdframed
包裹:
\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{lipsum}
\newmdenv[
hidealllines=true,
singleextra={
\draw
([xshift=2cm]O) --
(O) --
(O|-P) --
([xshift=2cm]O|-P);
\draw
([xshift=-2cm]P) --
(P) --
(P|-O) --
([xshift=-2cm]P|-O);
},
firstextra={
\draw
(O) --
(O|-P) --
([xshift=2cm]O|-P);
\draw
([xshift=-2cm]P) --
(P) --
(P|-O);
},
middleextra={
\draw
(O) --
(O|-P);
\draw
(P) --
(P|-O);
},
secondextra={
\draw
([xshift=2cm]O) --
(O) --
(O|-P);
\draw
(P) --
(P|-O) --
([xshift=-2cm]P|-O);
},
]{mybox}
\begin{document}
\lipsum[4]
\begin{mybox}
\lipsum[4]
\end{mybox}
\lipsum[4]
\end{document}
答案2
这里我创建了\specbox
一个宏,而不是环境,这意味着括号内的文本不能跨页。使用\fboxsep
和\fboxrule
来定义括号偏移和厚度,以及\bracketarm
定义括号臂的长度。
我使用\xcolor
和stackengine
包来基本上在\framebox
编辑文本的上方和下方堆叠白色居中规则。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\usepackage{xcolor}
\usepackage{lipsum}
\newlength\bracketarm
\newlength\fbrp
\fboxsep 2ex
\fboxrule 2pt
\bracketarm 1in
\setlength{\fbrp}{\fboxrule+1pt}
\newcommand\specbox[1]{%
{\centering\noindent\setstackgap{S}{-\fbrp+0.5pt}%
\stackon{%
\stackunder{\framebox{\parbox{\textwidth-2\fboxsep-2\fboxrule}{#1}}}%
{\color{white}\rule{\textwidth-2\bracketarm}{\fbrp}}%
}{%
\color{white}\rule{\textwidth-2\bracketarm}{\fbrp}%
}}}%
\parskip 1ex
\begin{document}
\lipsum[1]
\specbox{\lipsum[2]}
\lipsum[3]
\end{document}