.png)
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 \left
und 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
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
\big
Im Folgenden wird davon ausgegangen, dass Sie und Freunde in gepaarter Form verwenden , ähnlich wie \left
und \right
. Außerdem wird angenommen, dass öffnende Trennzeichen mit \left
und schließende Trennzeichen mit verknüpft sind \right
. Alle nicht übereinstimmenden <delim>
Iter werden auf zurückgesetzt \big<delim>
.
\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: \left
oder \right
gefolgt 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 \left
oder \right
im obigen Codeausschnitt erscheinen könnte.
Darüber hinaus müssen die „Modifikatoren“ \left
und \right
im 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.