You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1447 lines
46 KiB
1447 lines
46 KiB
%%
|
|
%% This is file `empheq.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% empheq.dtx (with options: `package')
|
|
%%
|
|
%% This is a generated file.
|
|
%%
|
|
%% Copyright (C) 2002-2007 by Morten Hoegholm
|
|
%% Copyright (C) 2012-2019 by Lars Madsen
|
|
%% Copyright (C) 2020- by Lars Madsen, The LaTeX3 Project
|
|
%%
|
|
%%
|
|
%% This work may be distributed and/or modified under the
|
|
%% conditions of the LaTeX Project Public License, either
|
|
%% version 1.3 of this license or (at your option) any later
|
|
%% version. The latest version of this license is in
|
|
%% http://www.latex-project.org/lppl.txt
|
|
%% and version 1.3 or later is part of all distributions of
|
|
%% LaTeX version 2005/12/01 or later.
|
|
%%
|
|
%% This work has the LPPL maintenance status "maintained".
|
|
%%
|
|
%% This Current Maintainer of this work is
|
|
%% Lars Madsen, The LaTeX3 Project
|
|
%%
|
|
%% This work consists of the main source file empheq.dtx
|
|
%% and the derived files
|
|
%% empheq.sty, empheq.pdf, empheq.ins, empheq.drv.
|
|
%%
|
|
\ProvidesPackage{empheq}%
|
|
[2017/03/31 v2.15 Emphasizing equations]
|
|
\RequirePackage{mhsetup}[2017/03/31]
|
|
\MHInternalSyntaxOn
|
|
\MH_new_boolean:n {overload_ams}
|
|
\DeclareOption{overload}{
|
|
\MH_set_boolean_T:n {overload_ams}
|
|
}
|
|
\MH_new_boolean:n {overload_amsII}
|
|
\DeclareOption{overload2}{
|
|
\MH_set_boolean_T:n {overload_ams}
|
|
\MH_set_boolean_T:n {overload_amsII}
|
|
}
|
|
\MH_new_boolean:n {good_mult}
|
|
\DeclareOption{oldmultline}{\MH_set_boolean_F:n {good_mult}}
|
|
\DeclareOption{newmultline}{\MH_set_boolean_T:n {good_mult}}
|
|
\gdef\g@EQ@ntheorem@support@bool{01}
|
|
\DeclareOption{ntheorem}{\gdef\g@EQ@ntheorem@support@bool{00}}
|
|
\DeclareOption*{
|
|
\PassOptionsToPackage{\CurrentOption}{mathtools}
|
|
}
|
|
\ExecuteOptions{newmultline}
|
|
\ProcessOptions\relax
|
|
\MHInternalSyntaxOff
|
|
\RequirePackage{mathtools}[2017/03/31]
|
|
\MHInternalSyntaxOn
|
|
\AtEndOfPackage{\MHInternalSyntaxOff}
|
|
\newcount\l_EQ_equationtype_int
|
|
\newcount\l_EQ_alignmentmode_int
|
|
\if@fleqn
|
|
\iftagsleft@
|
|
\l_EQ_alignmentmode_int=4
|
|
\MH_else:
|
|
\l_EQ_alignmentmode_int=\thr@@
|
|
\MH_fi:
|
|
\MH_else:
|
|
\iftagsleft@
|
|
\l_EQ_alignmentmode_int=\tw@
|
|
\MH_else:
|
|
\l_EQ_alignmentmode_int=\@ne
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\newdimen\l_EQ_totalwidth_dim
|
|
\newdimen\l_EQ_displaywidth_dim
|
|
\def\EmphEqdisplaywidth{\l_EQ_displaywidth_dim}
|
|
\newdimen\l_EQ_temp_linewidth_dim
|
|
\newdimen\l_EQ_linewidth_dim
|
|
\newdimen\EmphEqdelimitershortfall
|
|
\newcount\EmphEqdelimiterfactor
|
|
\EmphEqdelimiterfactor950
|
|
\EmphEqdelimitershortfall\p@
|
|
\newdimen\g_EQ_toptag_height_dim
|
|
\newdimen\g_EQ_bottomtag_depth_dim
|
|
\newdimen\g_EQ_toprow_height_dim
|
|
\newdimen\g_EQ_bottomrow_depth_dim
|
|
\newdimen\g_EQ_widesttag_dim
|
|
\def\EmphEqtagwidth{\g_EQ_widesttag_dim}
|
|
\def\EQ_outerbox:{}
|
|
\def\EQ_innerbox:{}
|
|
\def\EQ_left_side:{}
|
|
\def\EQ_right_side:{}
|
|
\newsavebox\EQ_mathdisplay_box
|
|
\def\EmphEqdisplayheight{\ht\EQ_mathdisplay_box}
|
|
\def\EmphEqdisplaydepth{\dp\EQ_mathdisplay_box}
|
|
\newsavebox\EQ_tag_box
|
|
\def\EQ_complete_mathdisplay:{}
|
|
\def\EQ_getbody:n #1{%
|
|
\def\EQ_complete_mathdisplay:{}\def\EQ_mathbody:{#1}}
|
|
\newenvironment{EmphEqMainEnv}{\collect@body\EQ_getbody:n}{%
|
|
\MH_if_num:w \l_EQ_equationtype_int=\z@ %ZeroCheckpoint
|
|
\EQ_upgrade_error:
|
|
\MH_else:
|
|
\EQ_post_process:
|
|
\ignorespacesafterend
|
|
\MH_fi:}
|
|
\def\EQ_post_process:{%
|
|
\EQ_initialize:
|
|
\EQ_begin_equation:
|
|
\MH_if_boolean:nT {outer_mult}{
|
|
\setkeys{\MT_options_name:}{
|
|
firstline-afterskip=0pt,
|
|
lastline-preskip=0pt,
|
|
multlined-width=0pt,
|
|
}
|
|
\ifodd \l_EQ_alignmentmode_int
|
|
\setkeys{\MT_options_name:}{multlined-pos=b}
|
|
\MH_else:
|
|
\setkeys{\MT_options_name:}{multlined-pos=t}
|
|
\MH_fi:
|
|
\g@addto@macro\EQ_complete_mathdisplay:{
|
|
\begin{MTmultlined}\relax}
|
|
}
|
|
\g@addto@macro\EQ_complete_mathdisplay:\EQ_mathbody:
|
|
\MH_if_boolean:nT {outer_mult}{
|
|
\g@addto@macro\EQ_complete_mathdisplay:{\end{MTmultlined}}
|
|
}
|
|
\EQ_end_equation:
|
|
\edef\EQ_hyperref_link_fint{\number\Hy@linkcounter}
|
|
\savecounters@
|
|
\EQ_typeset_tags:
|
|
\edef\l_EQ_equation_fint{\number\c@equation}
|
|
\restorecounters@
|
|
\Hy@linkcounter=\EQ_hyperref_link_fint
|
|
\settowidth\l_EQ_totalwidth_dim{%
|
|
$\EQ_left_side:\EQ_innerbox:{}\EQ_right_side:$}%
|
|
\MH_if_boolean:nTF {outer_mult}
|
|
{ \def\EQ_next:{_mult} }
|
|
{ \def\EQ_next:{} }
|
|
\@nameuse{EQ_modify_linewidth_
|
|
\romannumeral\l_EQ_equationtype_int\EQ_next: :}%
|
|
\EQ_typeset_display:
|
|
\@nameuse{EQ_find_displaywidth_
|
|
\romannumeral\l_EQ_equationtype_int\EQ_next: :}
|
|
\MH_addtolength:dn
|
|
\l_EQ_totalwidth_dim{\l_EQ_displaywidth_dim}
|
|
\savebox\EQ_mathdisplay_box[\l_EQ_totalwidth_dim][c]{%
|
|
$\EQ_left_side:
|
|
\EQ_innerbox:{%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int\MH_or:
|
|
\makebox[\l_EQ_displaywidth_dim][c]
|
|
{\usebox{\EQ_mathdisplay_box}}%
|
|
\MH_or:
|
|
\makebox[\l_EQ_displaywidth_dim][c]
|
|
{\usebox{\EQ_mathdisplay_box}}%
|
|
\MH_or:
|
|
\makebox[\l_EQ_displaywidth_dim][l]{%
|
|
\MH_if_num:w \l_EQ_equationtype_int=5 \MH_else:
|
|
\MH_if_num:w \l_EQ_equationtype_int=6 \MH_else:
|
|
\kern-\@mathmargin
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\usebox{\EQ_mathdisplay_box}}%
|
|
\MH_or:
|
|
\makebox[\l_EQ_displaywidth_dim][l]{%
|
|
\MH_if_num:w \l_EQ_equationtype_int=5 \MH_else:
|
|
\MH_if_num:w \l_EQ_equationtype_int=6 \MH_else:
|
|
\kern-\@mathmargin
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\usebox{\EQ_mathdisplay_box}}%
|
|
\MH_fi:}%
|
|
\EQ_right_side:$}%
|
|
\begin{AmSequation*}
|
|
\@nameuse{EQ_place_display_
|
|
\romannumeral\l_EQ_equationtype_int\EQ_next: :}
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\MH_set_boolean_T:n {show_manual_tags}
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: \EQ_place_tag:N r %#1
|
|
\MH_or: \EQ_place_tag:N l %#2
|
|
\MH_or: \EQ_place_tag:N r %#3
|
|
\MH_or: \EQ_place_tag:N l %#4
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\end{AmSequation*}
|
|
\global\c@equation=\l_EQ_equation_fint\relax
|
|
}
|
|
\def\EQ_initialize:{%
|
|
\m@th
|
|
\MH_let:NwN\SetTagPlusEndMark\EQ_tag_plus_endmark:
|
|
\MH_let:NwN\SetOnlyEndMark\EQ_only_endmark:
|
|
\l_EQ_temp_linewidth_dim\linewidth
|
|
\l_EQ_linewidth_dim\linewidth
|
|
\@tempdima\z@
|
|
\begingroup
|
|
\ifdefined\fullwidthdisplay\relax
|
|
\fullwidthdisplay
|
|
\global\@tempdima\displaywidth
|
|
\fi
|
|
\endgroup
|
|
\ifdim\@tempdima>\linewidth\relax
|
|
\l_EQ_temp_linewidth_dim\@tempdima
|
|
\l_EQ_linewidth_dim\@tempdima
|
|
\fi
|
|
\@tempdima\z@
|
|
\g_EQ_toprow_height_dim\z@
|
|
\g_EQ_bottomrow_depth_dim\z@
|
|
\g_EQ_toptag_height_dim\z@
|
|
\g_EQ_bottomtag_depth_dim\z@
|
|
\g_EQ_widesttag_dim\z@
|
|
\xdef\g_EQ_latest_nonzerodepth_row_fint{\z@}
|
|
\edef\EQ_restore_tex_delimiter:{%
|
|
\delimiterfactor\the\delimiterfactor
|
|
\delimitershortfall\the\delimitershortfall\relax}%
|
|
\g@addto@macro\EQ_complete_mathdisplay:
|
|
\EQ_restore_tex_delimiter:
|
|
\delimitershortfall\EmphEqdelimitershortfall
|
|
\delimiterfactor\EmphEqdelimiterfactor
|
|
\MH_let:NwN\intertext@\EQ_intertext:
|
|
\EQ_displaybreak:}
|
|
\def\EQ_intertext:{%
|
|
\def\intertext##1{\PackageError{empheq}{%
|
|
You~cannot~use~\string\intertext\space inside~the~`empheq'
|
|
\MessageBreak
|
|
environment,~as~`empheq'~creates~an~unbreakable~box}\@eha}
|
|
\def\shortintertext##1{\PackageError{empheq}{%
|
|
You~cannot~use~\string\shortintertext\space inside~the~`empheq'
|
|
\MessageBreak
|
|
environment,~as~`empheq'~creates~an~unbreakable~box}\@eha}
|
|
}
|
|
\def\EQ_displaybreak:{%
|
|
\def\dspbrk@[##1]{\PackageWarning{empheq}{%
|
|
You~cannot~use~\string\displaybreak\space inside~the~`empheq'%
|
|
\MessageBreak
|
|
environment,~as~`empheq'~creates~an~unbreakable~box.}}}
|
|
\def\EQ_new_equationtype:nnn #1#2#3{%
|
|
\define@key{#1}{#2}[true]{%
|
|
\l_EQ_equationtype_int=#3\relax
|
|
\def\EQ_begin_equation:
|
|
{\g@addto@macro{\EQ_complete_mathdisplay:}{\begin{#2}}}%
|
|
\def\EQ_end_equation:
|
|
{\g@addto@macro{\EQ_complete_mathdisplay:}{\end{#2}}}}}
|
|
\def\EQ_new_equationtype_arg:nnn #1#2#3{%
|
|
\define@key{#1}{#2}{%
|
|
\l_EQ_equationtype_int=#3\relax
|
|
\def\EQ_begin_equation:
|
|
{\g@addto@macro{\EQ_complete_mathdisplay:}{\begin{#2}{##1}}}%
|
|
\def\EQ_end_equation:
|
|
{\g@addto@macro{\EQ_complete_mathdisplay:}{\end{#2}}}}}
|
|
\def\EQ_typeset_tags:{%
|
|
\sbox\EQ_tag_box{%
|
|
\parbox{.5\maxdimen}{%
|
|
\hbadness\@M
|
|
\EQ_prevent_vertical_space:
|
|
\columnwidth\linewidth
|
|
\EQ_typeset_tags_hook:
|
|
\MH_let:NwN\set@gather@field\EQ_set_gather_field:
|
|
\MH_let:NwN\set@field\EQ_set_align_field:
|
|
\MH_set_boolean_T:n {continue_measuring}
|
|
\global\g_EQ_temprow_int\m@ne
|
|
\MH_let:NwN \EQ_saved_maketag:n \maketag@@@
|
|
\def\maketag@@@##1{
|
|
\EQ_maketag:Nn \EQ_saved_maketag:n {##1}}
|
|
\EQ_complete_mathdisplay:}}}
|
|
\def\EQ_predisplay_adjustment:{%
|
|
\MH_if_dim:w \g_EQ_toprow_height_dim<\baselineskip
|
|
\vskip\g_EQ_toprow_height_dim
|
|
\vskip-\baselineskip
|
|
\MH_else:
|
|
\vskip-\normallineskip
|
|
\MH_fi:
|
|
\MH_if_dim:w \g_EQ_toptag_height_dim>\g_EQ_toprow_height_dim
|
|
\MH_if_dim:w \g_EQ_toptag_height_dim>\baselineskip
|
|
\vskip-\g_EQ_toptag_height_dim
|
|
\vskip\baselineskip
|
|
\vskip-\normallineskip
|
|
\MH_fi:
|
|
\MH_fi:}
|
|
\def\EQ_postdisplay_adjustment:{%
|
|
\MH_if_dim:w \g_EQ_bottomrow_depth_dim<\dp\strutbox
|
|
\vskip\g_EQ_bottomrow_depth_dim
|
|
\vskip-\dp\strutbox
|
|
\MH_fi:
|
|
\MH_if_dim:w \g_EQ_bottomtag_depth_dim>\g_EQ_bottomrow_depth_dim
|
|
\MH_if_dim:w \g_EQ_bottomtag_depth_dim>\dp\strutbox
|
|
\vskip-\g_EQ_bottomtag_depth_dim
|
|
\vskip\dp\strutbox
|
|
\MH_fi:
|
|
\MH_fi:}
|
|
\def\EQ_typeset_display:{%
|
|
\sbox\EQ_mathdisplay_box{%
|
|
\parbox{\l_EQ_temp_linewidth_dim}{%
|
|
\EQ_predisplay_adjustment:
|
|
\EQ_prevent_vertical_space:
|
|
\EQ_typeset_display_hook:
|
|
\def\maketag@@@##1{\EQ_maketag:Nn \vphantom{##1}}%
|
|
\EQ_complete_mathdisplay:
|
|
\EQ_postdisplay_adjustment:}}}
|
|
\def\EQ_prevent_vertical_space:{%
|
|
\nointerlineskip
|
|
\abovedisplayskip\z@ \belowdisplayskip\z@\relax}
|
|
\def\EQ_maketag:Nn #1#2{%
|
|
\setboxz@h{#2}%
|
|
\MH_if_num:w \row@=\@ne
|
|
\global \g_EQ_toptag_height_dim = \ht\z@
|
|
\MH_fi:
|
|
\global \g_EQ_bottomtag_depth_dim=\dp\z@
|
|
\xdef\g_EQ_latest_nonzerodepth_row_fint{\number\row@}
|
|
\@tempdima=\wd\z@
|
|
\MH_if_dim:w \@tempdima > \g_EQ_widesttag_dim
|
|
\global \g_EQ_widesttag_dim = \@tempdima
|
|
\MH_fi:
|
|
#1{#2}%
|
|
}
|
|
\def\EQ_set_gather_field:{%
|
|
\iftagsleft@
|
|
\global\lineht@\ht\z@
|
|
\MH_else:
|
|
\global\lineht@\dp\z@
|
|
\MH_fi:
|
|
\kern\eqnshift@
|
|
%\boxz@ % Original amsmath version
|
|
\EQ_measure_gather:
|
|
\phantom{\boxz@}%
|
|
\hfil}
|
|
\def\EQ_measure_gather:{%
|
|
\MH_if_num:w \row@=\@ne
|
|
\g_EQ_toprow_height_dim=\ht\z@
|
|
\MH_fi:
|
|
\g_EQ_bottomrow_depth_dim=\dp\z@
|
|
\global\g_EQ_toprow_height_dim\g_EQ_toprow_height_dim
|
|
\global\g_EQ_bottomrow_depth_dim\g_EQ_bottomrow_depth_dim}
|
|
\def\EQ_set_align_field:{%
|
|
\column@plus
|
|
\iftagsleft@
|
|
\MH_if_dim:w \ht\z@>\lineht@
|
|
\global\lineht@\ht\z@
|
|
\MH_fi:
|
|
\MH_else:
|
|
\MH_if_dim:w \dp\z@>\lineht@
|
|
\global\lineht@\dp\z@
|
|
\MH_fi:
|
|
\MH_fi:
|
|
%\boxz@ % Original amsmath version
|
|
\MH_if_boolean:nT {continue_measuring}{ \EQ_measure_align: }
|
|
\phantom{\boxz@}}
|
|
\newcount\g_EQ_temprow_int
|
|
\MH_new_boolean:n {still_in_samerow}
|
|
\MH_new_boolean:n {continue_measuring}
|
|
\def\EQ_measure_align:{%
|
|
\MH_if_num:w \g_EQ_temprow_int=\row@
|
|
\MH_set_boolean_T:n {still_in_samerow}
|
|
\MH_else:
|
|
\MH_if_num:w \g_EQ_temprow_int>\row@
|
|
\global\MH_set_boolean_F:n {continue_measuring}
|
|
\MH_fi:
|
|
\MH_set_boolean_F:n {still_in_samerow}
|
|
\global\@tempdimc=\@tempdimb
|
|
\global\@tempdimb=\g_EQ_bottomrow_depth_dim
|
|
\MH_fi:
|
|
\MH_if_boolean:nTF {continue_measuring}{
|
|
\global\g_EQ_temprow_int=\row@
|
|
\@tempcnta=\row@
|
|
\MH_if_num:w \@tempcnta=\z@
|
|
\@tempdima=\g_EQ_toprow_height_dim
|
|
\g_EQ_toprow_height_dim=\ht\z@\relax
|
|
\MH_if_dim:w \g_EQ_toprow_height_dim<\@tempdima
|
|
\g_EQ_toprow_height_dim\@tempdima
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_if_boolean:nTF {still_in_samerow}{
|
|
\@tempdima=\g_EQ_bottomrow_depth_dim
|
|
\g_EQ_bottomrow_depth_dim=\dp\z@\relax
|
|
\MH_if_dim:w \g_EQ_bottomrow_depth_dim<\@tempdima
|
|
\g_EQ_bottomrow_depth_dim\@tempdima
|
|
\MH_fi:
|
|
}{
|
|
\g_EQ_bottomrow_depth_dim\dp\z@\relax
|
|
}
|
|
}{
|
|
\global\g_EQ_bottomrow_depth_dim=\@tempdimc
|
|
}
|
|
\global\g_EQ_toprow_height_dim\g_EQ_toprow_height_dim
|
|
\global\g_EQ_bottomrow_depth_dim\g_EQ_bottomrow_depth_dim}
|
|
\def\EQ_place_tag:N #1{%
|
|
\tag*{\makebox[\g_EQ_widesttag_dim][#1]{%
|
|
\EQ_vertical_tag_adjustment:n {\usebox{\EQ_tag_box}}}}}
|
|
\def\EQ_vertical_tag_adjustment:n #1{{%
|
|
\@tempdima\z@\@tempdimb\z@
|
|
\@tempdimc=\dp\strutbox
|
|
\MH_if_dim:w \g_EQ_toprow_height_dim<\baselineskip
|
|
\MH_setlength:dn
|
|
\@tempdima{\g_EQ_toprow_height_dim-\baselineskip}
|
|
\MH_else:
|
|
\MH_setlength:dn \@tempdima{-\normallineskip}
|
|
\MH_fi:
|
|
\MH_if_dim:w \g_EQ_toptag_height_dim>\g_EQ_toprow_height_dim
|
|
\MH_if_dim:w \g_EQ_toptag_height_dim>\baselineskip
|
|
\MH_addtolength:dn \@tempdima
|
|
{-\g_EQ_toptag_height_dim+\baselineskip-\normallineskip}
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_if_dim:w \g_EQ_bottomrow_depth_dim<\@tempdimc
|
|
\MH_setlength:dn \@tempdimb
|
|
{\g_EQ_bottomrow_depth_dim-\@tempdimc}
|
|
\MH_fi:
|
|
\MH_if_dim:w \g_EQ_bottomtag_depth_dim>\g_EQ_bottomrow_depth_dim
|
|
\MH_if_dim:w \g_EQ_bottomtag_depth_dim<\@tempdimc
|
|
\MH_else:
|
|
\MH_addtolength:dn \@tempdimb
|
|
{-\g_EQ_bottomtag_depth_dim+\@tempdimc}
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\raisebox{-0.5\@tempdima+0.5\@tempdimb}{#1}}}%
|
|
\def\EQ_use_mathdisplay:{%
|
|
\EQ_outerbox:{\usebox{\EQ_mathdisplay_box}}}
|
|
\def\EQ_options_name:{EmphEqOpt}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{equation}{gather}
|
|
{\EQ_disable_linebreak:}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{equation*}{gather*}
|
|
{\EQ_disable_linebreak:}
|
|
\def\EQ_disable_linebreak:{%
|
|
\MH_let:NwN \EQ_saved_Let: \Let@
|
|
\def\Let@{\def\\{%
|
|
\PackageError{empheq}{You~ cannot~ use~ \string\\~ in~ equation!}
|
|
{\@eha}}
|
|
\MH_let:NwN \Let@ \EQ_saved_Let:
|
|
}%
|
|
}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{align}{1}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{align*}{2}
|
|
\def\EQ_modify_linewidth_i:{%
|
|
\MH_if_num:w \maxfields@=\tw@
|
|
\MH_else:
|
|
\setlength{\l_EQ_temp_linewidth_dim}{%
|
|
% \linewidth
|
|
\l_EQ_linewidth_dim
|
|
-\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
|
|
\MH_fi:}
|
|
\def\EQ_modify_linewidth_ii:{\EQ_modify_linewidth_i:}
|
|
\def\EQ_find_displaywidth_i:{%
|
|
\MH_setlength:dn \l_EQ_displaywidth_dim
|
|
{\l_EQ_temp_linewidth_dim-\alignsep@}
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\alignsep@}%
|
|
\MH_or: % #2:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\alignsep@}%
|
|
\MH_or: % #3:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_or: % #4:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_fi:}
|
|
\def\EQ_find_displaywidth_ii:{\EQ_find_displaywidth_i:}
|
|
\def\EQ_place_display_i: {\EQ_use_mathdisplay:}
|
|
\def\EQ_place_display_ii:{\EQ_place_display_i:}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{gather}{3}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{gather*}{4}
|
|
\def\EQ_modify_linewidth_iii:{}
|
|
\def\EQ_modify_linewidth_iv:{\EQ_modify_linewidth_iii:}
|
|
\def\EQ_find_displaywidth_iii:{%
|
|
\MH_setlength:dn \l_EQ_displaywidth_dim{\totwidth@}%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int \MH_or: \MH_or: % #1 & #2:
|
|
\MH_or: % #3:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_or: % #4:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_fi:}
|
|
\def\EQ_find_displaywidth_iv:{\EQ_find_displaywidth_iii:}
|
|
\def\EQ_place_display_iii:{\EQ_use_mathdisplay:}
|
|
\def\EQ_place_display_iv: {\EQ_place_display_iii:}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline}
|
|
{flalign}{\MH_set_boolean_T:n {multline}}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline*}
|
|
{flalign*}{\MH_set_boolean_T:n {multline}}
|
|
\MH_new_boolean:n {multline}
|
|
\def\EQ_multline_modify_linewidth_tag:{%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim{%
|
|
-\g_EQ_widesttag_dim-\multlinetaggap-\multlinegap}%
|
|
\MH_or:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim{%
|
|
-\g_EQ_widesttag_dim-\multlinetaggap-\multlinegap}%
|
|
\MH_or:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim{%
|
|
-\@mathmargin-\g_EQ_widesttag_dim-\multlinetaggap}%
|
|
\MH_or:
|
|
\MH_addtolength:dn
|
|
\l_EQ_temp_linewidth_dim{-\@mathmargin-\multlinegap}%
|
|
\MH_fi:
|
|
}
|
|
\def\EQ_multline_modify_linewidth_notag:{%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim{-2\multlinegap}
|
|
\MH_or:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim{-2\multlinegap}
|
|
\MH_or:
|
|
\MH_addtolength:dn
|
|
\l_EQ_temp_linewidth_dim{-\@mathmargin-\multlinegap}%
|
|
\MH_or:
|
|
\MH_addtolength:dn
|
|
\l_EQ_temp_linewidth_dim{-\@mathmargin-\multlinegap}%
|
|
\MH_fi:
|
|
}
|
|
\MH_let:NwN \MTmultlined \multlined
|
|
\MH_let:NwN \endMTmultlined \endmultlined
|
|
\MH_if_boolean:nTF {good_mult}{
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline}{gather}
|
|
{\MH_set_boolean_T:n {outer_mult}}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{multline*}{gather*}
|
|
{\MH_set_boolean_T:n {outer_mult}}
|
|
\def\EQ_modify_linewidth_iii_mult:{
|
|
\setlength{\l_EQ_temp_linewidth_dim}{%
|
|
% \linewidth
|
|
\l_EQ_linewidth_dim
|
|
-\widthof{\EQ_outerbox:{}}}%
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\EQ_multline_modify_linewidth_tag:
|
|
\MH_else:
|
|
\EQ_multline_modify_linewidth_notag:
|
|
\MH_fi:
|
|
\MH_setlength:dn \l_MT_multwidth_dim{\l_EQ_temp_linewidth_dim}
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: \MH_or: % 1 and 2
|
|
\MH_or:
|
|
\MH_addtolength:dn
|
|
\l_EQ_temp_linewidth_dim{\@mathmargin}%
|
|
\MH_or:
|
|
\MH_addtolength:dn
|
|
\l_EQ_temp_linewidth_dim{\@mathmargin}%
|
|
\MH_fi:
|
|
}
|
|
\def\EQ_modify_linewidth_iv_mult:{\EQ_modify_linewidth_iii_mult:}
|
|
\def\EQ_find_displaywidth_iii_mult:{%
|
|
\MH_setlength:dn \l_EQ_displaywidth_dim{\totwidth@}%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int \MH_or: \MH_or: % #1 & #2:
|
|
\MH_or: % #3:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_or: % #4:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_fi:}
|
|
\def\EQ_find_displaywidth_iv_mult:{\EQ_find_displaywidth_iii_mult:}
|
|
\def\EQ_place_display_iii_mult:{
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\abovedisplayshortskip=\abovedisplayskip
|
|
\rlap{
|
|
% \kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
\kern\multlinegap
|
|
\EQ_use_mathdisplay:
|
|
}
|
|
\MH_else:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
\MH_or: % #2:
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\llap{
|
|
\EQ_use_mathdisplay:
|
|
% \kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
\kern\multlinegap
|
|
}%
|
|
\MH_else:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
\MH_or: % #3:
|
|
\EQ_use_mathdisplay:
|
|
\MH_or: % #4:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
}
|
|
\def\EQ_place_display_iv_mult: {\EQ_place_display_iii_mult:}
|
|
}{% on to the 'bad' version
|
|
\def\EQ_generic_multline:nnnnn #1#2#3#4#5{%
|
|
\hskip1sp#2#3{{}#5}#4%
|
|
\MH_if:w *#1\relax\MH_else:\notag\MH_fi:}
|
|
\def\multleft{\@ifstar{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_left:n}
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {*}{}{\mathrlap}{&&&&&}}
|
|
}
|
|
\EQ_next:}{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_left:n}%
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {}{}{\mathrlap}{&&&&&}}
|
|
}
|
|
\EQ_next:}}%
|
|
\def\multcenter{\@ifstar{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_center:n}%
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {*}{&&}{\mathclap}{&&&}}
|
|
}
|
|
\EQ_next:}{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_center:n }%
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {}{&&}{\mathclap}{&&&}}
|
|
}
|
|
\EQ_next:}}%
|
|
\def\multright{\@ifstar{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_right:n }%
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {*}{&&&&&}{\mathllap}{}}
|
|
}
|
|
\EQ_next:}{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_right:n }%
|
|
}{
|
|
\def\EQ_next:{
|
|
\EQ_generic_multline:nnnnn {}{&&&&&}{\mathllap}{}}
|
|
}
|
|
\EQ_next:}}
|
|
\def\multfirst{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_left:n }%
|
|
}{
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\def\EQ_next:{\multleft}%
|
|
\MH_or: % #2:
|
|
\def\EQ_next:{\multleft*}%
|
|
\MH_or: % #3:
|
|
\def\EQ_next:{\multleft}%
|
|
\MH_or: % #4:
|
|
\def\EQ_next:{\multleft*}%
|
|
\MH_fi:
|
|
}
|
|
\EQ_next:}
|
|
\def\multmiddle{%
|
|
\def\EQ_next:{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\expandafter\EQ_multlined_center:n
|
|
}{
|
|
\expandafter\multcenter
|
|
}
|
|
}%
|
|
\@ifstar{\EQ_next:}{\EQ_next:}}
|
|
\def\multlast{%
|
|
\MH_if_boolean:nTF {multlined}{
|
|
\def\EQ_next:{\EQ_multlined_right:n }%
|
|
}{
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\def\EQ_next:{\multright*}%
|
|
\MH_or: % #2:
|
|
\def\EQ_next:{\multright}%
|
|
\MH_or: % #3:
|
|
\def\EQ_next:{\multright*}%
|
|
\MH_or: % #4:
|
|
\def\EQ_next:{\multright}%
|
|
\MH_fi:
|
|
}
|
|
\EQ_next:}
|
|
\MH_new_boolean:n {multlined}
|
|
\newdimen\multlinedwidth
|
|
\MH_setlength:dn \multlinedwidth{
|
|
% .7\linewidth
|
|
0.7\l_EQ_linewidth_dim
|
|
}
|
|
\renewenvironment{multlined}%
|
|
{\MH_nospace_ifnextchar:Nnn [ {\EQ_multlined_I:w}
|
|
{\EQ_multlined_I:w[c]}
|
|
}
|
|
{ \endaligned }
|
|
\def\EQ_multlined_I:w[#1]{%
|
|
\MH_nospace_ifnextchar:Nnn[ {\EQ_multlined_II:w[#1]}
|
|
{\EQ_multlined_II:w[#1][\multlinedwidth]}}
|
|
\def\EQ_multlined_II:w[#1][#2]{%
|
|
\MH_set_boolean_T:n {multlined}
|
|
\MH_let:NwN \Let@\MT_saved_Let:
|
|
\MH_if:w t#1\relax \EQ_multlined_III:nn {#1}{#2}%
|
|
\MH_else:
|
|
\MH_if:w b#1\relax \EQ_multlined_III:nn {#1}{#2}%
|
|
\MH_else:
|
|
\MH_if:w c#1\relax \EQ_multlined_III:nn {#1}{#2}%
|
|
\MH_else:
|
|
\EQ_multlined_III:nn {#2}{#1}%
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\mkern-\thinmuskip
|
|
\EQ_next:}
|
|
\def\EQ_multlined_III:nn #1#2{%
|
|
\def\EQ_next:{\setlength\multlinedwidth{#2}%
|
|
\start@aligned{#1}{\thr@@}}}
|
|
\def\EQ_multlined_left:n #1{%
|
|
\mathrlap{#1}&\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&}
|
|
\def\EQ_multlined_center:n #1{%
|
|
&\hskip.5\multlinedwidth&&\mathclap{#1}\hskip.5\multlinedwidth&&}
|
|
\def\EQ_multlined_right:n #1{%
|
|
&\hskip.5\multlinedwidth&&\hskip.5\multlinedwidth&&\mathllap{#1}}
|
|
}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{flalign}{5}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{flalign*}{6}
|
|
\def\EQ_modify_linewidth_v:{%
|
|
\setlength{\l_EQ_temp_linewidth_dim}{%
|
|
% \linewidth
|
|
\l_EQ_linewidth_dim
|
|
-\l_EQ_totalwidth_dim-\widthof{\EQ_outerbox:{}}}%
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\MH_if_boolean:nTF {multline}{
|
|
\EQ_multline_modify_linewidth_tag:
|
|
}{
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim
|
|
{-\g_EQ_widesttag_dim-\mintagsep}
|
|
\MH_or: % #2:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim
|
|
{-\g_EQ_widesttag_dim-\mintagsep}%
|
|
\MH_or: % #3:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim
|
|
{-\g_EQ_widesttag_dim-\mintagsep}
|
|
\MH_or: % #4:
|
|
\MH_addtolength:dn \l_EQ_temp_linewidth_dim
|
|
{-\@mathmargin}
|
|
\MH_fi:
|
|
}
|
|
\MH_else:
|
|
\MH_if_boolean:nT {multline}{
|
|
\EQ_multline_modify_linewidth_notag:
|
|
}
|
|
\MH_fi:}
|
|
\def\EQ_modify_linewidth_vi:{\EQ_modify_linewidth_v:}
|
|
\def\EQ_find_displaywidth_v:{%
|
|
\MH_setlength:dn
|
|
\l_EQ_displaywidth_dim{\l_EQ_temp_linewidth_dim}}
|
|
\def\EQ_find_displaywidth_vi:{\EQ_find_displaywidth_v:}
|
|
\def\EQ_place_display_v:{%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\MH_if_boolean:nTF {multline}{
|
|
\rlap{\kern\multlinegap
|
|
% \kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
\EQ_use_mathdisplay:
|
|
\kern-\mintagsep \kern\multlinetaggap}%
|
|
}{
|
|
\rlap{%\kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
\EQ_use_mathdisplay:}%
|
|
}
|
|
\MH_else:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
\MH_or: % #2:
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\MH_if_boolean:nTF {multline}{
|
|
\llap{\kern-\mintagsep \kern\multlinetaggap
|
|
\EQ_use_mathdisplay:
|
|
\kern\multlinegap
|
|
% \kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
}%
|
|
}{
|
|
\llap{\EQ_use_mathdisplay:
|
|
% \kern-.5\linewidth
|
|
\kern-.5\l_EQ_linewidth_dim
|
|
}%
|
|
}
|
|
\MH_else:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
\MH_or: % #3:
|
|
\MH_if_boolean:nTF {multline}{ \kern-\multlinetaggap }
|
|
{ \kern-\@mathmargin }
|
|
\EQ_use_mathdisplay:
|
|
\MH_or: % #4:
|
|
\MH_if_dim:w \g_EQ_widesttag_dim>\z@
|
|
\MH_else:
|
|
\MH_if_boolean:nF {multline}{ \kern-\@mathmargin }
|
|
\MH_fi:
|
|
\EQ_use_mathdisplay:
|
|
\MH_fi:
|
|
\MH_set_boolean_F:n {multline}}
|
|
\def\EQ_place_display_vi:{\EQ_place_display_v:}
|
|
\EQ_new_equationtype_arg:nnn {EmphEqEnv}{alignat}{7}
|
|
\EQ_new_equationtype_arg:nnn {EmphEqEnv}{alignat*}{8}
|
|
\def\EQ_modify_linewidth_vii:{}
|
|
\def\EQ_modify_linewidth_viii:{\EQ_modify_linewidth_vii:}
|
|
\def\EQ_find_displaywidth_vii:{%
|
|
\MH_setlength:dn \l_EQ_displaywidth_dim{\totwidth@}%
|
|
\MH_if_case:w \l_EQ_alignmentmode_int
|
|
\MH_or: % #1:
|
|
\MH_or: % #2:
|
|
\MH_or: % #3:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\eqnshift@}%
|
|
\MH_or: % #4:
|
|
\MH_addtolength:dn \l_EQ_displaywidth_dim{-\@mathmargin}%
|
|
\MH_fi:}
|
|
\def\EQ_find_displaywidth_viii:{\EQ_find_displaywidth_vii:}
|
|
\def\EQ_place_display_vii:{\EQ_use_mathdisplay:}
|
|
\def\EQ_place_display_viii:{\EQ_place_display_vii:}
|
|
\define@key{\EQ_options_name:}{box}{\def\EQ_outerbox:{#1}}
|
|
\MH_keyval_alias:nnn {\EQ_options_name:}{outerbox}{box}
|
|
\def\EQ_marginbox:nn #1#2{%
|
|
\settowidth{\@tempdima}{#2}%
|
|
\makebox[\z@]{\hspace{\@tempdima}#1{#2}}}
|
|
\define@key{\EQ_options_name:}{marginbox}{%
|
|
\def\EQ_outerbox:{\EQ_marginbox:nn {#1}}}
|
|
\define@key{\EQ_options_name:}{innerbox}{\def\EQ_innerbox:{#1}}
|
|
\define@key{\EQ_options_name:}{left}{\def\EQ_left_side:{#1}}
|
|
\define@key{\EQ_options_name:}{right}{\def\EQ_right_side:{#1}}
|
|
\newcommand*\empheqset[1]{\setkeys{\EQ_options_name:}{#1}}
|
|
\def\EQ_upgrade_error:{%
|
|
\PackageError{empheq}
|
|
{You~ are~ using~ the~ old~ syntax!\MessageBreak
|
|
The~ `empheq'~ environment~ takes~ a~ mandatory~
|
|
argument~ now.\MessageBreak
|
|
You~ need~ to~ exit~ and~ change~ your~ source~ file.}
|
|
{It~ won't~ work,~ trust me.~ Press~ `X'~ now.}}
|
|
\define@key{\EQ_options_name:}{boxtype}{\EQ_upgrade_error:}
|
|
\define@key{\EQ_options_name:}{Left}{\EQ_upgrade_error:}
|
|
\define@key{\EQ_options_name:}{Right}{\EQ_upgrade_error:}
|
|
\let\empheqeqrefbase\textup
|
|
\newenvironment{empheq}[2][]{%
|
|
\MH_let:NwN\EQ_saved_maketag: \maketag@@@%
|
|
\renewcommand\eqref[1]{\empheqeqrefbase{%
|
|
\let\maketag@@@\EQ_saved_maketag:%
|
|
\tagform@{\ref{##1}}}}
|
|
\setkeys{EmphEqEnv}{#2}\setkeys{\EQ_options_name:}{#1}%
|
|
\EmphEqMainEnv}{\endEmphEqMainEnv}
|
|
\newcommand*\DeclareLeftDelimiter[2][]{%
|
|
\EQ_declare_left_delimiter:nnnn {#1}{#2}{}{}%
|
|
\EQ_declare_left_delimiter:nnnn {#1}{#2}{big}{\EQ_innerbox:}}
|
|
\def\EQ_declare_left_delimiter:nnnn #1#2#3#4{%
|
|
\@namedef{empheq#3\expandafter\@gobble\string#2}{%
|
|
\left#2%
|
|
\mkern-\thinmuskip
|
|
\vphantom{#4{\parbox{.5\maxdimen}{%
|
|
\EQ_predisplay_adjustment:
|
|
\EQ_prevent_vertical_space:
|
|
\usebox{\EQ_tag_box}%
|
|
\EQ_postdisplay_adjustment:}}}%
|
|
\right.%
|
|
\kern-\nulldelimiterspace #1}}
|
|
\newcommand*\DeclareRightDelimiter[2][]{%
|
|
\EQ_declare_right_delimiter:nnnn {#1}{#2}{}{}%
|
|
\EQ_declare_right_delimiter:nnnn {#1}{#2}{big}{\EQ_innerbox:}}
|
|
\def\EQ_declare_right_delimiter:nnnn #1#2#3#4{%
|
|
\@namedef{empheq#3\expandafter\@gobble\string#2}{%
|
|
\kern-\nulldelimiterspace
|
|
#1%
|
|
\left.%
|
|
\vphantom{#4{\parbox{.5\maxdimen}{%
|
|
\EQ_predisplay_adjustment:
|
|
\EQ_prevent_vertical_space:
|
|
\usebox{\EQ_tag_box}%
|
|
\EQ_postdisplay_adjustment:}}}%
|
|
\mkern-\thinmuskip
|
|
\right#2}}
|
|
\DeclareLeftDelimiter{\lbrace}
|
|
\DeclareRightDelimiter{\rbrace}
|
|
\DeclareLeftDelimiter{\lbrack}
|
|
\DeclareRightDelimiter{\rbrack}
|
|
\DeclareLeftDelimiter{\langle}
|
|
\DeclareRightDelimiter{\rangle}
|
|
\DeclareLeftDelimiter{\lvert}
|
|
\DeclareRightDelimiter{\rvert}
|
|
\DeclareLeftDelimiter{\lVert}
|
|
\DeclareRightDelimiter{\rVert}
|
|
\DeclareLeftDelimiter{\lfloor}
|
|
\DeclareRightDelimiter{\rfloor}
|
|
\DeclareLeftDelimiter{\lceil}
|
|
\DeclareRightDelimiter{\rceil}
|
|
\DeclareLeftDelimiter{\lparen}
|
|
\DeclareRightDelimiter{\rparen}
|
|
\def\EQ_typeset_tags_hook:{}
|
|
\def\EQ_typeset_display_hook:{}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
\def\SK@@label#1>#2\SK@{}
|
|
}
|
|
\@namedef{SK@AmSequation} {\SK@equationtrue}
|
|
\@namedef{SK@AmSequation*} {\SK@equationtrue}
|
|
\@namedef{SK@AmSalign} {\SK@equationtrue}
|
|
\@namedef{SK@AmSalign*} {\SK@equationtrue}
|
|
\@namedef{SK@AmSalignat} {\SK@equationtrue}
|
|
\@namedef{SK@AmSalignat*} {\SK@equationtrue}
|
|
\@namedef{SK@AmSgather} {\SK@equationtrue}
|
|
\@namedef{SK@AmSgather*} {\SK@equationtrue}
|
|
\@namedef{SK@AmSmultline} {\SK@equationtrue}
|
|
\@namedef{SK@AmSmultline*} {\SK@equationtrue}
|
|
\@namedef{SK@AmSflalign} {\SK@equationtrue}
|
|
\@namedef{SK@AmSflalign*} {\SK@equationtrue}
|
|
\AtBeginDocument{
|
|
\@ifundefined{Hy@linkcounter}{\newcount\Hy@linkcounter}{}
|
|
}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
\MH_let:NwN \hyper@refstepcounter\@gobble
|
|
}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
\let\NCC@ignorepar\relax
|
|
}
|
|
\g@addto@macro\EQ_typeset_tags_hook:{
|
|
\let\NCC@ignorepar\relax
|
|
}
|
|
\g@addto@macro\EQ_typeset_tags_hook:{
|
|
\MH_let:NwN\TagsPlusEndmarks\relax
|
|
\MH_let:NwN\RestoreTags\relax
|
|
}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
\MH_let:NwN\TagsPlusEndmarks\relax
|
|
\MH_let:NwN\RestoreTags\relax
|
|
}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
\MH_let:NwN\ltx@label\MT_gobblelabel:w
|
|
\MH_let:NwN \GenericError \@gobblefour
|
|
}
|
|
\AtBeginDocument{%
|
|
\@ifpackageloaded{fancybox}{%
|
|
\@ifpackageloaded{color}{\definecolor{shadowcolor}{rgb}{0,0,0}}%
|
|
{\newcommand*\textcolor[2]{\normalcolor{#2}}}%
|
|
\MH_new_boolean:n {shadowbox_star}
|
|
\renewcommand*\shadowbox{%
|
|
\@ifstar{\MH_set_boolean_T:n {shadowbox_star}
|
|
\VerbBox\EQ_shadowbox:n}
|
|
{\MH_set_boolean_F:n {shadowbox_star}
|
|
\VerbBox\EQ_shadowbox:n}}
|
|
\def\EQ_shadowbox:n #1{%
|
|
\sbox{\z@}{\fbox{#1}}%
|
|
\MH_if_boolean:nTF {shadowbox_star}{
|
|
\MH_setlength:dn \@tempdima{\z@}%
|
|
}{
|
|
\MH_setlength:dn \@tempdima{\dp\z@+\shadowsize}%
|
|
}
|
|
\raisebox{\@tempdima}{%
|
|
\makebox[\z@][l]{%
|
|
\kern\shadowsize \textcolor{shadowcolor}{%
|
|
\rule[-\dp\z@-\shadowsize]{\wd\z@}{\shadowsize}}%
|
|
}%
|
|
\usebox\z@\textcolor{shadowcolor}{%
|
|
\rule[-\dp\z@-\shadowsize]{\shadowsize}{\ht\z@+\dp\z@}}}}%
|
|
}{}%
|
|
}
|
|
\g@addto@macro\EQ_typeset_display_hook:{
|
|
% \columnwidth\linewidth
|
|
\def\fullwidthdisplay{}
|
|
}
|
|
\def\EQ_overload_ams_begin:n #1{%
|
|
\MH_let:cc {AmS#1}{#1}%
|
|
\MH_let:cc {AmS#1*}{#1*}
|
|
}
|
|
\def\EQ_overload_ams_end:n #1{%
|
|
\MH_let:cc {endAmS#1}{endAmSalign}
|
|
}
|
|
\AtBeginDocument{
|
|
\EQ_overload_ams_begin:n {equation}
|
|
\MH_let:cc {endAmSequation}{endequation}
|
|
\MH_let:cc {endAmSequation*}{endequation*}
|
|
\MH_if_boolean:nT {overload_ams}{
|
|
\def\EQ_renew_ams_environment:n #1{%
|
|
\MaybeMHPrecedingSpacesOff
|
|
\renewenvironment{#1}[1][]{%
|
|
\MH_let:NwN\EQ_saved_maketag: \maketag@@@%
|
|
\renewcommand\eqref[1]{\empheqeqrefbase{%
|
|
\let\maketag@@@\EQ_saved_maketag:%
|
|
\tagform@{\ref{####1}}}}
|
|
\setkeys{\EQ_options_name:}{##1}%
|
|
\setkeys{EmphEqEnv}{AmS#1}%
|
|
\EmphEqMainEnv
|
|
}{\endEmphEqMainEnv}
|
|
\MHPrecedingSpacesOn
|
|
}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSalign} {1}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSalign*} {2}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSgather} {3}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSgather*} {4}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSflalign} {5}
|
|
\EQ_new_equationtype:nnn {EmphEqEnv}{AmSflalign*}{6}
|
|
\EQ_new_equationtype_arg:nnn {EmphEqEnv}{AmSalignat} {7}
|
|
\EQ_new_equationtype_arg:nnn {EmphEqEnv}{AmSalignat*}{8}
|
|
\EQ_overload_ams_begin:n {gather}
|
|
\MH_let:cc {endAmSgather}{endgather}
|
|
\MH_let:cc {endAmSgather*}{endAmSgather}
|
|
\EQ_renew_ams_environment:n {gather}
|
|
\EQ_renew_ams_environment:n {gather*}
|
|
\EQ_overload_ams_begin:n {equation}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv} {AmSequation}
|
|
{AmSgather}{\EQ_disable_linebreak:}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{AmSequation*}
|
|
{AmSgather*}{\EQ_disable_linebreak:}
|
|
\EQ_renew_ams_environment:n {equation}
|
|
\EQ_renew_ams_environment:n {equation*}
|
|
\EQ_overload_ams_begin:n {align}
|
|
\MH_let:cc {endAmSalign}{endalign}
|
|
\EQ_overload_ams_end:n {align*}
|
|
\EQ_renew_ams_environment:n {align}
|
|
\EQ_renew_ams_environment:n {align*}
|
|
\EQ_overload_ams_begin:n {flalign}
|
|
\EQ_overload_ams_end:n {flalign}
|
|
\EQ_overload_ams_end:n {flalign*}
|
|
\EQ_renew_ams_environment:n {flalign}
|
|
\EQ_renew_ams_environment:n {flalign*}
|
|
\EQ_overload_ams_begin:n {alignat}
|
|
\EQ_overload_ams_end:n {alignat}
|
|
\EQ_overload_ams_end:n {alignat*}
|
|
\MaybeMHPrecedingSpacesOff
|
|
\newcommand*\EQ_alignat_optional:w [1][]{
|
|
\setkeys{\EQ_options_name:}{#1}
|
|
\EmphEqMainEnv}
|
|
\MHPrecedingSpacesOn
|
|
\renewenvironment{alignat}[1]{
|
|
\MH_let:NwN\EQ_saved_maketag: \maketag@@@%
|
|
\renewcommand\eqref[1]{\empheqeqrefbase{%
|
|
\let\maketag@@@\EQ_saved_maketag:%
|
|
\tagform@{\ref{##1}}}}
|
|
\setkeys{EmphEqEnv}{AmSalignat=#1}
|
|
\EQ_alignat_optional:w}
|
|
{\endEmphEqMainEnv}
|
|
\renewenvironment{alignat*}[1]{%
|
|
\MH_let:NwN\EQ_saved_maketag: \maketag@@@%
|
|
\renewcommand\eqref[1]{\empheqeqrefbase{%
|
|
\let\maketag@@@\EQ_saved_maketag:%
|
|
\tagform@{\ref{##1}}}}
|
|
\setkeys{EmphEqEnv}{AmSalignat*=#1}%
|
|
\EQ_alignat_optional:w}%
|
|
{\endEmphEqMainEnv}
|
|
\DeclareRobustCommand{\[}{\begin{AmSequation*}}
|
|
\DeclareRobustCommand{\]}{\end{AmSequation*}}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{gather} {AmSgather}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{gather*} {AmSgather*}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{align} {AmSalign}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{align*} {AmSalign*}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{flalign} {AmSflalign}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{flalign*}{AmSflalign*}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{alignat} {AmSalignat}
|
|
\MH_keyval_alias:nnn {EmphEqEnv}{alignat*}{AmSalignat*}
|
|
\MH_if_boolean:nT {good_mult}{
|
|
\EQ_overload_ams_begin:n {multline}
|
|
\MH_let:cc {endAmSmultline}{endmultline}
|
|
\MH_let:cc {endAmSmultline*}{endAmSmultline}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{AmSmultline}
|
|
{AmSgather}{\MH_set_boolean_T:n {outer_mult}}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{AmSmultline*}
|
|
{AmSgather*}{\MH_set_boolean_T:n {outer_mult}}
|
|
\EQ_renew_ams_environment:n {multline}
|
|
\EQ_renew_ams_environment:n {multline*}
|
|
}
|
|
\MH_if_boolean:nT {overload_amsII}{
|
|
\MH_protected:\def\[#1\]{\begin{equation*} #1\end{equation*}}
|
|
\MH_if_boolean:nF {good_mult}{
|
|
\EQ_overload_ams_begin:n {multline}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{AmSmultline}
|
|
{AmSflalign}{\MH_set_boolean_T:n {multline}}
|
|
\MH_keyval_alias_with_addon:nnnn {EmphEqEnv}{AmSmultline*}
|
|
{AmSflalign*}{\MH_set_boolean_T:n {multline}}
|
|
\EQ_renew_ams_environment:n {multline}
|
|
\EQ_renew_ams_environment:n {multline*}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
\if\g@EQ@ntheorem@support@bool
|
|
\else
|
|
\expandafter\endinput
|
|
\fi
|
|
\def\EQ_default_raisetag:{\nobreak}
|
|
\def\raisetag#1{
|
|
\skip@#1\relax
|
|
\xdef\raise@tag{\EQ_default_raisetag:
|
|
\vskip\iftagsleft@\MH_else:-\MH_fi:\the\skip@\relax}}
|
|
\MH_let:NwN\raise@tag\EQ_default_raisetag:
|
|
\def\displ@y@{\@display@init{%
|
|
\global\column@\z@ \global\dspbrk@lvl\m@ne
|
|
\global\tag@false \global\MH_let:NwN\raise@tag\EQ_default_raisetag:
|
|
}}
|
|
\def\MT_gobblelabel:w #1{\@ifnextchar[{\EQ_gobbleoptional:w}{}}
|
|
\def\EQ_gobbleoptional:w [#1]{}
|
|
\def\gmeasure@#1{%
|
|
\begingroup
|
|
\measuring@true
|
|
\totwidth@\z@
|
|
\global\MH_let:NwN\tag@lengths\@empty
|
|
\savecounters@
|
|
\setbox\@ne\vbox{%
|
|
\everycr{\noalign{\global\tag@false
|
|
\global\MH_let:NwN\raise@tag\EQ_default_raisetag:
|
|
\global\column@\z@}}%
|
|
\MH_let:NwN\label\MT_gobblelabel:w
|
|
\halign{%
|
|
\setboxz@h{$\m@th\displaystyle{##}$}%
|
|
\MH_if_dim:w \wdz@>\totwidth@
|
|
\global\totwidth@\wdz@
|
|
\MH_fi:
|
|
&\setboxz@h{\strut@{##}}%
|
|
\savetaglength@
|
|
\crcr
|
|
#1%
|
|
\math@cr@@@
|
|
}%
|
|
}%
|
|
\restorecounters@
|
|
\if@fleqn
|
|
\global\advance\totwidth@\@mathmargin
|
|
\MH_fi:
|
|
\iftagsleft@
|
|
\MH_if_dim:w \totwidth@>\displaywidth
|
|
\global\MH_let:NwN\gdisplaywidth@\totwidth@
|
|
\MH_else:
|
|
\global\MH_let:NwN\gdisplaywidth@\displaywidth
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\endgroup
|
|
}
|
|
\def\measure@#1{%
|
|
\begingroup
|
|
\measuring@true
|
|
\global\eqnshift@\z@
|
|
\global\alignsep@\z@
|
|
\global\MH_let:NwN\tag@lengths\@empty
|
|
\global\MH_let:NwN\field@lengths\@empty
|
|
\savecounters@
|
|
\global\setbox0\vbox{%
|
|
\MH_let:NwN\math@cr@@@\math@cr@@@align@measure
|
|
\everycr{\noalign{\global\tag@false
|
|
\global\MH_let:NwN\raise@tag\EQ_default_raisetag:
|
|
\global\column@\z@}}%
|
|
\MH_let:NwN\label\MT_gobblelabel:w
|
|
\global\row@\z@
|
|
\tabskip\z@
|
|
\halign{\span\align@preamble\crcr
|
|
#1%
|
|
\math@cr@@@
|
|
\global\column@\z@
|
|
\add@amps\maxfields@\cr
|
|
}%
|
|
}%
|
|
\restorecounters@
|
|
\ifodd\maxfields@
|
|
\global\advance\maxfields@\@ne
|
|
\MH_fi:
|
|
\MH_if_num:w \xatlevel@=\tw@
|
|
\MH_if_num:w \maxfields@<\thr@@
|
|
\MH_let:NwN\xatlevel@\z@
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\setbox\z@\vbox{%
|
|
\unvbox\z@ \unpenalty \global\setbox\@ne\lastbox
|
|
}%
|
|
\global\totwidth@\wd\@ne
|
|
\if@fleqn \global\advance\totwidth@\@mathmargin \MH_fi:
|
|
\global\MH_let:NwN\maxcolumn@widths\@empty
|
|
\begingroup
|
|
\MH_let:NwN\MH_or:\relax
|
|
\loop
|
|
\global\setbox\@ne\hbox{%
|
|
\unhbox\@ne \unskip \global\setbox\thr@@\lastbox
|
|
}%
|
|
\ifhbox\thr@@
|
|
\xdef\maxcolumn@widths{ \MH_or: \the\wd\thr@@ \maxcolumn@widths}%
|
|
\repeat
|
|
\endgroup
|
|
\dimen@\displaywidth
|
|
\advance\dimen@-\totwidth@
|
|
\MH_if_case:w \xatlevel@
|
|
\global\alignsep@\z@
|
|
\MH_let:NwN\minalignsep\z@
|
|
\@tempcntb\z@
|
|
\if@fleqn
|
|
\@tempcnta\@ne
|
|
\global\eqnshift@\@mathmargin
|
|
\MH_else:
|
|
\@tempcnta\tw@
|
|
\global\eqnshift@\dimen@
|
|
\global\divide\eqnshift@\@tempcnta
|
|
\MH_fi:
|
|
\MH_or:
|
|
\@tempcntb\maxfields@
|
|
\divide\@tempcntb\tw@
|
|
\@tempcnta\@tempcntb
|
|
\advance\@tempcntb\m@ne
|
|
\if@fleqn
|
|
\global\eqnshift@\@mathmargin
|
|
\global\alignsep@\dimen@
|
|
\global\divide\alignsep@\@tempcnta
|
|
\MH_else:
|
|
\global\advance\@tempcnta\@ne
|
|
\global\eqnshift@\dimen@
|
|
\global\divide\eqnshift@\@tempcnta
|
|
\global\alignsep@\eqnshift@
|
|
\MH_fi:
|
|
\MH_or:
|
|
\@tempcntb\maxfields@
|
|
\divide\@tempcntb\tw@
|
|
\global\advance\@tempcntb\m@ne
|
|
\global\@tempcnta\@tempcntb
|
|
\global\eqnshift@\z@
|
|
\global\alignsep@\dimen@
|
|
\if@fleqn
|
|
\global\advance\alignsep@\@mathmargin\relax
|
|
\MH_fi:
|
|
\global\divide\alignsep@\@tempcntb
|
|
\MH_fi:
|
|
\MH_if_dim:w \alignsep@<\minalignsep\relax
|
|
\global\alignsep@\minalignsep\relax
|
|
\MH_if_dim:w \eqnshift@>\z@
|
|
\if@fleqn\MH_else:
|
|
\global\eqnshift@\displaywidth
|
|
\global\advance\eqnshift@-\totwidth@
|
|
\global\advance\eqnshift@-\@tempcntb\alignsep@
|
|
\global\divide\eqnshift@\tw@
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_if_dim:w \eqnshift@<\z@
|
|
\global\eqnshift@\z@
|
|
\MH_fi:
|
|
\calc@shift@align
|
|
\global\tagshift@\totwidth@
|
|
\global\advance\tagshift@\@tempcntb\alignsep@
|
|
\if@fleqn
|
|
\MH_if_num:w \xatlevel@=\tw@
|
|
\global\advance\tagshift@-\@mathmargin\relax
|
|
\MH_fi:
|
|
\MH_else:
|
|
\global\advance\tagshift@\eqnshift@
|
|
\MH_fi:
|
|
\iftagsleft@ \MH_else:
|
|
\global\advance\tagshift@-\displaywidth
|
|
\MH_fi:
|
|
\dimen@\minalignsep\relax
|
|
\global\advance\totwidth@\@tempcntb\dimen@
|
|
\MH_if_dim:w \totwidth@>\displaywidth
|
|
\global\MH_let:NwN\displaywidth@\totwidth@
|
|
\MH_else:
|
|
\global\MH_let:NwN\displaywidth@\displaywidth
|
|
\MH_fi:
|
|
\endgroup
|
|
}
|
|
\def\EQ_multline_labelhack:n #1{%
|
|
\begingroup\measuring@false\label@in@display{#1}\endgroup}
|
|
\def\EQ_multline_labelhack_opt:nw #1[#2]{%
|
|
\begingroup\measuring@false\label@in@display{#1}[#2]\endgroup}
|
|
\def\multline@#1{%
|
|
\Let@
|
|
\@display@init{\global\advance\row@\@ne \global\dspbrk@lvl\m@ne}%
|
|
\chardef\dspbrk@context\z@
|
|
\restore@math@cr
|
|
\MH_let:NwN\tag\tag@in@align
|
|
\global\tag@false \global\MH_let:NwN\raise@tag\EQ_default_raisetag:
|
|
\mmeasure@{#1}%
|
|
\MH_let:NwN\tag\gobble@tag
|
|
\MH_let:NwN\label\MT_gobblelabel:w
|
|
\tabskip \if@fleqn \@mathmargin \MH_else: \z@skip \MH_fi:
|
|
\totwidth@\displaywidth
|
|
\if@fleqn
|
|
\advance\totwidth@-\@mathmargin
|
|
\MH_fi:
|
|
\halign\bgroup
|
|
\hbox to\totwidth@{%
|
|
\if@fleqn
|
|
\hskip \@centering \relax
|
|
\MH_else:
|
|
\hfil
|
|
\MH_fi:
|
|
\strut@
|
|
$\m@th\displaystyle{}##\endmultline@math%$
|
|
\hfil
|
|
}%
|
|
\crcr
|
|
\if@fleqn
|
|
\hskip-\@mathmargin
|
|
\def\multline@indent{\hskip\@mathmargin}% put it back
|
|
\MH_else:
|
|
\hfilneg
|
|
\def\multline@indent{\hskip\multlinegap}%
|
|
\MH_fi:
|
|
\iftagsleft@
|
|
\iftag@
|
|
\begingroup
|
|
\ifshifttag@
|
|
\rlap{\vbox{%
|
|
\normalbaselines
|
|
\hbox{%
|
|
\strut@
|
|
\make@display@tag
|
|
}%
|
|
\vbox to\lineht@{}%
|
|
\raise@tag
|
|
}}%
|
|
\multline@indent
|
|
\MH_else:
|
|
\setbox\z@\hbox{\make@display@tag}%
|
|
\dimen@\@mathmargin \advance\dimen@-\wd\z@
|
|
\MH_if_dim:w \dimen@<\multlinetaggap
|
|
\dimen@\multlinetaggap
|
|
\MH_fi:
|
|
\box\z@ \hskip\dimen@\relax
|
|
\MH_fi:
|
|
\endgroup
|
|
\MH_else:
|
|
\multline@indent
|
|
\MH_fi:
|
|
\MH_else:
|
|
\multline@indent
|
|
\MH_fi:
|
|
#1%
|
|
}
|
|
\def\mmeasure@#1{%
|
|
\begingroup
|
|
\measuring@true
|
|
\def\label##1{%
|
|
\@ifnextchar[
|
|
{\EQ_multline_labelhack_opt:nw {##1}}
|
|
{\EQ_multline_labelhack:n {##1}}
|
|
}
|
|
\def\math@cr@@@{\cr}%
|
|
\MH_let:NwN\shoveleft\@iden \MH_let:NwN\shoveright\@iden
|
|
\savecounters@
|
|
\global\row@\z@
|
|
\setbox\@ne\vbox{%
|
|
\global\MH_let:NwN\df@tag\@empty
|
|
\halign{%
|
|
\setboxz@h{\@lign$\m@th\displaystyle{}##$}%
|
|
\iftagsleft@
|
|
\MH_if_num:w \row@=\@ne
|
|
\global\totwidth@\wdz@
|
|
\global\lineht@\ht\z@
|
|
\MH_fi:
|
|
\MH_else:
|
|
\global\totwidth@\wdz@
|
|
\global\lineht@\dp\z@
|
|
\MH_fi:
|
|
\crcr
|
|
#1%
|
|
\crcr
|
|
}%
|
|
}%
|
|
\MH_if_meaning:NN
|
|
\df@tag\@empty
|
|
\MH_else:
|
|
\global\tag@true
|
|
\MH_fi:
|
|
\if@eqnsw\global\tag@true\MH_fi:
|
|
\iftag@
|
|
\setboxz@h{%
|
|
\if@eqnsw
|
|
\stepcounter{equation}%
|
|
\tagform@\theequation
|
|
\MH_else:
|
|
\df@tag
|
|
\MH_fi:
|
|
}%
|
|
\global\tagwidth@\wdz@
|
|
\dimen@\totwidth@
|
|
\advance\dimen@\tagwidth@
|
|
\advance\dimen@\multlinetaggap
|
|
\iftagsleft@\MH_else:
|
|
\if@fleqn
|
|
\advance\dimen@\@mathmargin
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_if_dim:w \dimen@>\displaywidth
|
|
\global\shifttag@true
|
|
\MH_else:
|
|
\global\shifttag@false
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\restorecounters@
|
|
\endgroup
|
|
}
|
|
\newlength\mintagvsep
|
|
\mintagvsep5pt
|
|
\def\EQ_only_endmark:{%
|
|
\MH_set_boolean_T:n {show_manual_tags}
|
|
\global\tag@true
|
|
\iftagsleft@
|
|
\gdef\df@tag{%
|
|
\hbox to \displaywidth{%
|
|
\hss
|
|
\raisebox{-\normallineskip
|
|
-\depthof{\EQ_outerbox:{}}
|
|
-\heightof{\EQ_outerbox:{}}
|
|
-\dp\EQ_mathdisplay_box
|
|
-\ht\EQ_mathdisplay_box}
|
|
[0pt][0pt]{\PotEndMark{\maketag@@@}}}}
|
|
\MH_else:
|
|
\gdef\df@tag{%
|
|
\raisebox{-\dp\EQ_mathdisplay_box
|
|
-\depthof{\EQ_outerbox:{}}}
|
|
{\PotEndMark{\maketag@@@}}}%
|
|
\MH_fi:}
|
|
\def\EQ_tag_plus_endmark:{%
|
|
\iftagsleft@
|
|
\gdef\maketag@@@##1{%
|
|
\hfuzz\displaywidth
|
|
\makebox[\widthof{##1}][l]{%
|
|
\hbox to \displaywidth{\m@th\normalfont##1\hss
|
|
\raisebox{-\dp\EQ_mathdisplay_box
|
|
-\depthof{\EQ_outerbox:{}}}
|
|
{\PotEndMark{\hss}}}}}%
|
|
\MH_else:
|
|
\gdef\maketag@@@##1{%
|
|
\hbox{\m@th\normalfont##1\llap{\hss\PotEndMark{%
|
|
\settoheight{\@tempdima}{\@nameuse{\InTheoType Symbol}}%
|
|
\MH_addtolength:dn \@tempdima
|
|
{\g_EQ_bottomtag_depth_dim+\mintagvsep}
|
|
\setlength{\@tempdimb}
|
|
{\g_EQ_bottomrow_depth_dim+\depthof{\EQ_outerbox:{}}
|
|
+\depthof{\EQ_innerbox:{}}}
|
|
\MH_if_dim:w \@tempdima>\@tempdimb
|
|
\MH_setlength:dn \@tempdima{-\dp\EQ_mathdisplay_box
|
|
-\@tempdima+\g_EQ_bottomrow_depth_dim}
|
|
\addtolength{\@tempdima}{\depthof{\EQ_innerbox:{}}}%
|
|
\def\EQ_next:{\raisebox{\@tempdima}}%
|
|
\MH_else:
|
|
\def\EQ_next:{
|
|
\raisebox{-\dp\EQ_mathdisplay_box
|
|
-\depthof{\EQ_outerbox:{}}}}%
|
|
\MH_fi:\EQ_next:}}}}%
|
|
\MH_fi:}
|
|
\MH_let:NwN \MT_nonumber: \nonumber
|
|
\def\g_EQ_latest_nonzerodepth_row_fint{\z@}
|
|
\renewcommand*\nonumber{
|
|
\@tempcnta=\row@
|
|
\MH_if_num:w \l_EQ_equationtype_int=\thr@@
|
|
\advance\@tempcnta\m@ne
|
|
\MH_else:
|
|
\MH_if_num:w \l_EQ_equationtype_int=4\relax
|
|
\advance\@tempcnta\m@ne
|
|
\MH_fi:
|
|
\MH_fi:
|
|
\MH_if_num:w \g_EQ_latest_nonzerodepth_row_fint=\@tempcnta
|
|
\MH_else:
|
|
\global\g_EQ_bottomtag_depth_dim=-\baselineskip
|
|
\MH_fi:
|
|
\MT_nonumber:
|
|
}
|
|
\endinput
|
|
%%
|
|
%% End of file `empheq.sty'.
|
|
|