有两个带对齐的右括号

有两个带对齐的右括号

考虑以下 MWE:

\documentclass[fleqn,xcolor={dvipsnames,table}]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools, nccmath, textcomp} % https://tex.stackexchange.com/questions/155534/how-to-reduce-the-size-of-fractions-typed-in-align-environment
\usepackage{booktabs} %https://tex.stackexchange.com/a/112514/166831
\usepackage{array}

\let\tc\textcolor

\definecolor{darkgreen}{rgb}{0.09, 0.45, 0.27}
\definecolor{dauphineblue}{rgb}{0.19,0.267,0.5176}

\newcommand{\tdb}[1]{\tc{dauphineblue}{#1}}
\newcommand{\tdr}[1]{\tc{darkred}{#1}}

% Thème CambridgeUS
\usetheme{CambridgeUS}
\usepackage{amsmath}

  \makeatletter
  \newcommand{\srcsize}{\@setfontsize{\srcsize}{7pt}{7pt}}
  \makeatother

\begin{document}


      \begingroup
      \srcsize %https://tex.stackexchange.com/a/207655/166831
      \begin{frame}
        Min $\sum_{i\in V} \text{some minimizing function with terms} + x + y$
      \begin{alignat*}{2}
        \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}} + \sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}} &= c \tdr{x_{ij}}  ,&\quad\tdr{\forall i \in V}\\
        \dots \text{some more constraints}\\
        \displaystyle\sum_{\substack{i\in V\\j\dots}}\sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}}  &\ge 3 + \tc{darkgreen}{\sigma} &\\
        \tc{darkgreen}{\sigma}~ & \ge \tdr{x_{ij}} ,&\quad \tdr{\forall i \in V} \\
       \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} + \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} &= (1-\tdr{x_{ij}}),&\quad  \tdb{\forall i \in V}\\
       \tdb{y_{ij}}&\le \tdr{y_{jj}}, &\quad \tdb{\forall (i,j) \in V}\\
       \tc{darkgreen}{\sigma}~ & \in \mathbb N &\\
       \tdr{y_{11}} &= 1&\\
       \tdr{x_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^2, i < j}\\
       \tdb{y_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^2}\\
       \tdb{z_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^2, i < j}
      \end{alignat*}
      \end{frame}
      \endgroup

      \begingroup
      \srcsize %https://tex.stackexchange.com/a/207655/166831
      \begin{frame}
        Min $\sum_{i\in V} \text{some minimizing function with terms} + x + y$
        \[\left.\begin{array}{rrr}
        \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}} + \sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}} &= c \tdr{x_{ij}}  ,&\quad\tdr{\forall i \in V}\\
        \dots \text{some more constraints}\\
        \displaystyle\sum_{\substack{i\in V\\j\dots}}\sum_{\substack{i\in V\\j\dots}} \tdr{x_{ij}}  &\ge 3 + \tc{darkgreen}{\sigma} &\\
        \tc{darkgreen}{\sigma}~ & \ge \tdr{x_{ij}} ,&\quad \tdr{\forall i \in V} \\
       \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} + \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} &= (1-\tdr{x_{ij}}),&\quad  \tdb{\forall i \in V}
        \end{array}\color{darkred}\right\}\text{\tdr{Ring constraints}}\]

        \[\left.\begin{array}{rrr}
        \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} + \displaystyle\sum_{\substack{i\in V\\j\dots}} \tdb{y_{ij}} &= (1-\tdr{x_{ij}}),&\quad  \tdb{\forall i \in V}\\
        \tdb{y_{ij}}&\le \tdr{y_{jj}}, &\quad \tdb{\forall (i,j) \in V}\\
        \tc{darkgreen}{\sigma}~ & \in \mathbb N &\\
        \tdr{y_{11}} &= 1&
        \end{array}\color{dauphineblue}\right\}\text{\tdb{Star constraints}}\]

        \begin{alignat*}{2}
        \tc{darkgreen}{\sigma}~ & \in \mathbb N &\\
         \tdr{x_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^2, i < j}\\
         \tdb{y_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^2}\\
         \tdb{z_{ij}} &\in \mathbb B ,\quad&\tc{darkgreen}{\forall (i,j) \in V^, i < j}
        \end{alignat*}
      \end{frame}
      \endgroup



\end{document}

它产生:

在此处输入图片描述

然后我想在下一帧中添加两个右括号,如下所示:

在此处输入图片描述

&我的问题是,由于方程式的原因,我无法获得相同的对齐方式。\le, \ge, =, \in符号不再对齐,索引域也不再对齐\forall。我还希望我的两个括号垂直方向正好一个在另一个上面,而不是右边有一个红色的括号。谢谢你的帮助:D

答案1

这里有一种方法(在纯 TeX 中),首先排版方程式,只在第一组三行之后允许换行。然后将这一组拆分并放入一个框中,其余的则保留在另一个框中。然后将这两个框(如果拆分出多个组,则可能会有更多框)与右括号一起排版。

\setbox0=\vbox{\tabskip=.5em\halign{\hfil$#$&\hfil$#$\hfil&$#$\hfil\cr
  \noalign{\penalty0} %first \vsplit here
  1+2&=&3\cr\noalign{\nobreak}
  1-2&=&-1\cr\noalign{\nobreak}
  3\cdot2&=&6\cr %second \vsplit here
  1\cdot2&=&2\cr\noalign{\nobreak}
  1/2&=&0.5\cr}}
\setbox1=\vsplit0 to0pt %insert \splittopskip at the top of \box0
\setbox1=\vsplit0 to12pt %split off first group
\setbox1=\vbox{\unvbox1} %give \box1 its natural height
\halign{$\left.\vcenter{\box#}\right\}$\hfil&#\hfil\cr
  1&Ring constraints\cr
  \noalign{\vskip 2pt}
  0&Star constraints\cr}

在此处输入图片描述

本论坛中的 LaTeX 专家也许可以将这种方法转化为与 alignat 包一起使用。

相关内容