括号跨越到下一页

括号跨越到下一页

我尝试在长文本上添加括号,但文本和括号在页面末尾消失,如图底部所示。理想情况下,文本和括号应从下一页继续。

下面举一个例子来说明这个问题:

\documentclass{report} 
\usepackage{amsmath}
\usepackage{lipsum}

\newcommand\BrText[2]{%
  \par\smallskip
   \noindent\makebox[\textwidth][r]{$\text{#1}\left\{
    \begin{minipage}{\textwidth}
    #2
    \end{minipage}
  \right.\nulldelimiterspace=0pt$}\par\smallskip
}    

\begin{document}
\BrText{Some text}{\lipsum[1]\lipsum[1] \lipsum[1] \lipsum[1]}
\end{document}

在此处输入图片描述

答案1

以下代码使用包组合插入两个单独的、断开的括号:

  • abraces:适用于不对称(和断裂)的牙套;
  • zrefsavepos模块:用于捕获文本内的坐标;
  • eso-pic:用于在页面FG循环(或B确认G循环)内、单个页面或所有页面上放置内容;以及
  • graphicx:用于旋转内容。

在此处输入图片描述

\documentclass{article}

\usepackage{abraces,zref-savepos,eso-pic,graphicx}
\usepackage{lipsum}

\begin{document}

\lipsum[2]% Some text before start of brace

% Insert first page, broken left brace
\AddToShipoutPictureFG*{%
  \AtTextLowerLeft{%
    \zsavepos{textblock-bottom}% Capture bottom of text block coordinate
    \raisebox{-.2\baselineskip}{%
      \makebox[0pt][r]{%
        \rotatebox{90}{%
          $\aoverbrace[1U1R]{\hspace{\dimexpr\zposy{brace-top}sp-\zposy{textblock-bottom}sp+\baselineskip}}^{\rotatebox{-90}{\scriptsize some text}}$%
        }%
      }%
    }%
  }%
}%

\leavevmode\zsavepos{brace-top}%
This text starts somewhere on this page.

\lipsum[2-7]

% Insert half-page, broken left brace
\AddToShipoutPictureFG*{%
  \AtTextLowerLeft{%
    \raisebox{\dimexpr\zposy{brace-bottom}sp-\zposy{textblock-bottom}sp}{%
      \makebox[0pt][r]{%
        \rotatebox{90}{%
          $\aoverbrace[L1]{\hspace{\dimexpr\textheight-\zposy{brace-bottom}sp+\zposy{textblock-bottom}sp}}$%
        }%
      }%
    }%
  }%
}%
\leavevmode\zsavepos{brace-bottom}%
This text is in the middle of the second page.

\lipsum[8-15]

\end{document}

abraces'\aoverbrace[<brace spec>]以字符序列作为可选<brace spec>指定,类似于tabular其列指定需要字符序列。具体来说,以下是字符的含义(取自abraces文档):

在此处输入图片描述

捕获支撑开始( brace-top)和结束( )的位置(包括作为参考)并用于计算支撑长度/高度,然后旋转到位。brace-bottomtextblock-bottom

相关内容