Bedingte Neudefinition von \big, \bigg usw. zu \left oder \right (lokal)

Bedingte Neudefinition von \big, \bigg usw. zu \left oder \right (lokal)

Um meine Satzarbeit zu beschleunigen, erkunde ich die Möglichkeit, einige Befehle „lokal“ neu zu definieren.

In diesem speziellen Fall möchte ich die Befehle \big, \Big, usw. in die Befehle \leftund umdefinieren \right. Die Umdefinition muss durch das nächste Zeichen (oder den nächsten regulären Ausdruck) bedingt sein.

Beispielsweise so etwas wie dieser „Pseudocode“:

\newcommand{\myRedefinedBigs}{%
  COND 1 next char (or next regexp) is (or "(" "[" "\{")
  \renewcommand{\big}{\left}
  \renewcommand{\Big}{\left}
  \renewcommand{\bigg}{\left}
  \renewcommand{\Bigg}{\left}
  COND 2 next char (or next regexp) is (or ")" "]" "\}")
  \renewcommand{\big}{\right}
  \renewcommand{\Big}{\right}
  \renewcommand{\bigg}{\right}
  \renewcommand{\Bigg}{\right}}

Die Idee besteht darin, eine Gleichung mit diesem Befehl zu umschließen. Beispiel:

{\myRedefinedBigs
\begin{equation}
\big(\frac{1}{2}\big)
\end{equation}}\relax

Kann dies in LaTeX gemacht werden? Wenn ja, worauf muss ich achten?

Bearbeiten. Wermer-Lösungschien zu funktionieren, schlägt aber bei verschachtelten Paaren desselben Typs fehl. Beispiel:

{\myRedefinedBigs
\begin{equation}
\big(\frac{1}{2}\big(3\)\big)
\end{equation}}\relax

Bildbeschreibung hier eingeben

Notiz.

Ich schreibe keine Dokumente selbst von Grund auf. Ich bereite die Arbeiten von Wissenschaftlern für die Veröffentlichung in Physikzeitschriften vor. Daher muss ich Layout-„Fehler“ gemäß den bereitgestellten Richtlinien „korrigieren“.

Antwort1

\bigIm Folgenden wird davon ausgegangen, dass Sie und Freunde in gepaarter Form verwenden , ähnlich wie \leftund \right. Außerdem wird angenommen, dass öffnende Trennzeichen mit \leftund schließende Trennzeichen mit verknüpft sind \right. Alle nicht übereinstimmenden <delim>Iter werden auf zurückgesetzt \big<delim>.

Bildbeschreibung hier eingeben

\documentclass{article}

\makeatletter
\newcommand{\myRedefinedBigs}{%
  \let\oldbig\big% Copy \big into \oldbig
  \def\big{% Redeine \big
    \@ifnextchar({\biglparen}{% \big is followed by (
    \@ifnextchar){\bigrparen}{% \big is followed by )
    \@ifnextchar[{\biglbracket}{% \big is followed by [
    \@ifnextchar]{\bigrbracket}{% \big is followed by ]
    \@ifnextchar\{{\biglbrace}{% \big is followed by \{
    \@ifnextchar\}{\bigrbrace}{% \big is followed by \}
    \oldbig}}}}}}}% \big is followed by something else, so resort to \oldbig
  \def\biglparen({\left(}% \big( is replaced by \left(
  \def\bigrparen){\right)}% \big) is replaced by \right)
  \def\biglbracket[{\left[}% \big[ is replaced by \left[
  \def\bigrbracket]{\right]}% \big] is replaced by \left]
  \def\biglbrace\{{\left\{}% \big\{ is replaced by \left\{
  \def\bigrbrace\}{\right\}}% \big\} is replaced by \left\}
  \let\Big\big% Handle \Big just like \big
  \let\bigg\big% Handle \bigg just like \big
  \let\Bigg\big% Handle \Bigg just like \big
}
\makeatother

\begin{document}

\[
  \big(\frac{1}{2}\big)
\]

{\myRedefinedBigs
\[
  \big(\frac{1}{2}\big)
\]}

\[
  \big(\frac{1}{2}^{\Big\{\frac{1}{2}\Big]}\big)
\]

{\myRedefinedBigs
\[
  \big(\frac{1}{2}^{\Big\{\frac{1}{2}\Big]}\big)
\]}

\[
  \big(\frac{1}{2}\big(3\big)\big)
\]

{\myRedefinedBigs
\[
  \big(\frac{1}{2}\big(3\big)\big)\big|
\]}

\end{document}

Antwort2

Über das Problem

Ein Benutzer soll verwendenÖffnungUndSchließenTrennzeichen in seinen Formeln. Darüber hinaus sollten Sie ein nützliches Makro nicht neu definieren, sondern ggf. ein anderes Makro verwenden.

Im folgenden Beispiel sehen Sie unterschiedliche Trennzeichen (Größen und Formen). Sie können auch die öffnenden und schließenden Trennzeichen sehen.

Übung 17.14 (TeXbook)

\pi(n)=\sum_{m=2}^n\left\lfloor\biggl(\sum_{k=1}^{m-1}
  \bigl\lfloor(m/k)\big/\lceil m/k\rceil\bigr\rfloor\biggr)^{-1}
\right\rfloor

Das Ersetzen der öffnenden und schließenden Trennzeichen im Beispielcode ist ganz einfach.

Wichtig: \leftoder \rightgefolgt von einem Trennzeichen erzeugen nicht immer die erwarteten Trennzeichen (typografische Ästhetik).

Beispielsweise können wir zwei Formatierungen derselben Formel sehen. Die Formelauf der rechten Seiteentspricht der im TeXbook empfohlenen Formatierung, während die Formel auf der linken Seite nach dem Ersetzen der entsprechenden Modifikatoren ( \bigl, \biggr...) durch \leftoder \rightim obigen Codeausschnitt erscheinen könnte.

Zwei Formatierungen derselben Formel.

Darüber hinaus müssen die „Modifikatoren“ \leftund \rightim selben Teil der Formel erscheinen.

Über die Lösung

Es ist notwendig, jeden „Modifikator“ vor einem Trennzeichen durch den entsprechenden Modifikator zu ersetzen.

Diese Modifikatoren können automatisch durch die entsprechenden Modifikatoren ersetzt werden. Der zu verwendende Algorithmus scheint nicht sehr kompliziert zu sein. Seine Implementierung hängt wahrscheinlich von einemTexteditor, offensichtlich nicht auf (La)TeX.

verwandte Informationen