绘制水平线,如开括号和闭括号

绘制水平线,如开括号和闭括号

我需要画两条看起来像开括号和闭括号的水平线:

 ___________________________________________________________________
|                                                                   |

  Text Text Text Text Text Text Text Text Text Text Text Text Text
  Text Text Text Text Text Text Text Text Text Text Text Text Text
  Text Text Text Text Text Text Text Text Text Text Text Text Text    

|___________________________________________________________________|

答案1

这是一个快速但粗糙(并且编码不多)的解决方案。

\documentclass{article}

\usepackage{lipsum}

\newcommand{\downbracket}{\par\noindent\rlap{\rule[-2ex]{.4pt}{2ex}}\rule{\linewidth}{.4pt}\llap{\rule[-2ex]{.4pt}{2ex}}\par}
\newcommand{\upbracket}{\par\noindent\rlap{\rule{.4pt}{2ex}}\rule{\linewidth}{.4pt}\llap{\rule{.4pt}{2ex}}\par}

\begin{document}

\lipsum[1]

\downbracket

\lipsum[2-3]

\upbracket

\lipsum[4]

\end{document}

当然,您可以调整参数以满足您的需要。

答案2

您可以使用tcolorbox;允许分页符:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}

\newcommand\InitialLines{
    \draw[] 
      ([yshift=-10pt]frame.north west) -- 
      (frame.north west) -- 
      (frame.north east) --
      ([yshift=-10pt]frame.north east);
}
\newcommand\FinalLines{
    \draw[] 
      ([yshift=10pt]frame.south west) -- 
      (frame.south west) -- 
      (frame.south east) --
      ([yshift=10pt]frame.south east);
}

\newtcolorbox{textbracket}{
  breakable,
  empty,
  before=\vskip10pt,
  after=\vskip10pt,
  overlay unbroken={\InitialLines\FinalLines},
  overlay first={\InitialLines},
  overlay last={\FinalLines}
}

\begin{document}

\lipsum[4]
\begin{textbracket}
\lipsum[4]
\end{textbracket}
\lipsum[4]
\begin{textbracket}
\lipsum[1-6]
\end{textbracket}

\end{document}

如果您希望里面的文本的宽度与常规宽度相等\textwidth

\documentclass{article}
\usepackage[many]{tcolorbox}
\usepackage{lipsum}

\newcommand\InitialLines{
    \draw[] 
      ([yshift=-10pt]frame.north west) -- 
      (frame.north west) -- 
      (frame.north east) --
      ([yshift=-10pt]frame.north east);
}
\newcommand\FinalLines{
    \draw[] 
      ([yshift=10pt]frame.south west) -- 
      (frame.south west) -- 
      (frame.south east) --
      ([yshift=10pt]frame.south east);
}

\newtcolorbox{textbracket}{
  breakable,
  empty,
  oversize,
  left=0pt,
  right=0pt,
  before=\vskip10pt,
  after=\vskip10pt,
  overlay unbroken={\InitialLines\FinalLines},
  overlay first={\InitialLines},
  overlay last={\FinalLines}
}

\begin{document}

\lipsum[4]
\begin{textbracket}
\lipsum[4]
\end{textbracket}
\lipsum[4]
\begin{textbracket}
\lipsum[1-6]
\end{textbracket}

\end{document}

在此处输入图片描述

答案3

我建议使用这个简单的宏,,\hbrackets它使用\under/overbrackets来自的命令mathtools。请注意,可以轻松自定义线条粗细和垂直部分的高度(它们是这些命令的可选参数),但不要跨页面:

\documentclass{article}

\usepackage{lipsum}
\usepackage{mathtools}

\newcommand\hbrackets[1]{\medskip\par\noindent$\underbracket[0.6pt]{\overbracket[0.6pt]{
\parbox{\linewidth}{\rule{0pt}{1.8ex}#1\vskip 0.2ex}}}_{}$\par}

\begin{document}

\lipsum[1]

\hbrackets{\lipsum[2-3]}

\lipsum[4]

\end{document} 

在此处输入图片描述

相关内容