系统包

系统包

我正在使用systeme包来创建一个方程组。我还使用mtpro2数学符号包。

当我想创建一个带有花括号的 2x2 系统时,使用命令 就可以正常工作\sysdelim\{.。但是,在 3x3 系统或更高版本中,花括号似乎看起来不一样。

\documentclass[b5paper,11pt]{article}
 \usepackage{pgfplots}
 \usepackage{psfrag}
 \usepackage{amsmath}
 \usepackage{mtpro2}
 \usepackage{calc}
 \usepackage{systeme}

 \begin{document}
 \sysdelim\{.\systeme{2x+3y=5,x-4y=-3\quad}
 \sysdelim\{.\systeme[xzy]{2x+3y-z=5,x+2z-4y=-3,x+y=2}
 \end{document}

在此处输入图片描述

我怎样才能使第二个支架看起来像第一个?

EDIT 2020 - 2020 年 10 月 4 日更新后 TeXLive 出现问题

我刚刚将 TeXLive 发行版更新为 TexLive 2020,并尝试使用 egreg 在其回答的第二部分推荐的补丁运行相同的代码。显然有一个新问题

LaTeX3 错误:'\msg_term:n' 已于 2020-01-01 弃用。请使用 '\iow_term:n '。{}{}

我到底应该在哪里替换该代码?

答案1

如果您不想要那些讨厌的花括号,请使用以下选项加载包straightbraces

\documentclass[b5paper,11pt]{article}
\usepackage{amsmath}
\usepackage[lite,straightbraces]{mtpro2} % lite because I only have that
\usepackage{systeme}

\begin{document}
\[
\systeme{2x+3y=5,x-4y=-3}      
\quad
\systeme[xzy]{2x+3y-z=5,x+2z-4y=-3,x+y=2}
\]
\end{document}

在此处输入图片描述

请注意,这\sysdelim\{.是默认设置。

如果您喜欢使用麻烦的括号,则必须使用\LEFTRIGHT,因此必须遵循间接路径:

\documentclass[b5paper,11pt]{article}
\usepackage{amsmath}
\usepackage[lite]{mtpro2} % lite because I only have that
\usepackage{systeme,xparse}

\NewDocumentCommand{\csysteme}{som}{%
  \LEFTRIGHT\{.{%
    \sysdelim..
    \IfBooleanTF{#1}
     {\IfNoValueTF{#2}{\systeme*{#3}}{\systeme*[#2]{#3}}}
     {\IfNoValueTF{#2}{\systeme{#3}}{\systeme[#2]{#3}}}%
  }%
}

\begin{document}
\[
\csysteme{2x+3y=5,x-4y=-3}
\quad
\csysteme[xzy]{2x+3y-z=5,x+2z-4y=-3,x+y=2}
\]
\end{document}

在此处输入图片描述

使用补丁可以避免改变语法;其思想是使用\LEFTRIGHTofmtpro2而不是\leftand \right

\documentclass[b5paper,11pt]{article}
\usepackage{amsmath}
\usepackage[lite]{mtpro2}
\usepackage{systeme,regexpatch}

\makeatletter
% change the definition of \sysdelim not to store `\left` and `\right`
\def\sysdelim#1#2{\def\SYS@delim@left{#1}\def\SYS@delim@right{#2}}
\sysdelim\{. % reinitialize

% patch the internal command to use
% \LEFTRIGHT<left delim><right delim>{<system>}
% instead of \left<left delim<system>\right<right delim>
\regexpatchcmd\SYS@systeme@iii
  {\cB.\c{SYS@delim@left}(.*)\c{SYS@delim@right}\cE.}
  {\c{SYS@MT@LEFTRIGHT}\cB\{\1\cE\}}
  {}{}
\def\SYS@MT@LEFTRIGHT{%
  \expandafter\expandafter\expandafter\LEFTRIGHT
  \expandafter\SYS@delim@left\SYS@delim@right}
\makeatother

\begin{document}
\[
\systeme{2x+3y=5,x-4y=-3}
\quad
\systeme[xzy]{2x+3y-z=5,x+2z-4y=-3,x+y=2}
\]
\end{document}

相关内容