Größere Klammern als \Bigg in Relation zur Schriftgröße

Formelsatz für Mathematik, Naturwissenschaften und Technik


guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Größere Klammern als \Bigg in Relation zur Schriftgröße

Beitrag von guy.brush™ »

Hallo,

ich habe zwar hier Moeglichkeiten gefunden, wie man groessere Varianten als \Bigg definieren kann, aber diese sind leider absolut definiert und nicht in Relation zur Schriftgroesse. Dies ist mir erst neulich aufgefallen, als ich merkte, dass die dort definierte \biggg-Variante genau so gross ist wie die regulaere \Bigg-Variante, wenn ich Schriftgroesse 11pt verwende. Letztendlich habe ich die Idee der Umsetzung von hier.

Hier ein Minimalbeispiel:
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}

% 1. Variante
% \def\Biggt#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}

% 2. Variante
\def\Biggt#1{{\hbox{$\left#1\vbox to20.5pt{}\right.$}}}

% Even bigger sizes than plain provides.
\def\biggg#1{{\hbox{$\left#1\vbox to20.5pt{}\right.$}}}
\def\bigggl{\mathopen\biggg}
\def\bigggr{\mathclose\biggg}
\def\Biggg#1{{\hbox{$\left#1\vbox to23.5pt{}\right.$}}}
\def\Bigggl{\mathopen\Biggg}
\def\Bigggr{\mathclose\Biggg} 

\begin{document}

\[
  \Biggg( \biggg( \Biggt( \Bigg( a \Bigg) \Biggt) \biggg) \Biggg)
\]

\end{document}
Die 1. Variante klappt nicht, da meckert er, es fehle im eine Einheit oder so. Die 2. Variante klappt zwar, allerdings ist der Output nicht gleich, soll heissen, wenn ich "mathtools" als Paket lade, sind in meinem Beispiel \biggg, \Biggt und \Bigg gleich gross, ohne "mathtools" sind \biggg und \Biggt gleich gross, aber beide etwas groesser als \Bigg, was ja auch so sein sollte.

Zusammenfassend: Ohne "mathtools" gibt es keine Probleme (bis auf, dass die 1. Variante so als Definition nicht funktioniert), aber ich benoetige zwingend "mathtools". Mit "mathtools" aendert sich das Verhalten ein wenig und obiges Problem existiert. Dass die \biggg- und \Biggg-Varianten nicht in Relation zur Schriftgroesse stehen, merkt man, wenn man die Schriftgroesse bspw. auf 14pt stellt.


Meine Wunschloesung wuerde mir folgendes ermoeglichen: Eine Definition von beliebig vielen (so viele, wie ich halt moechte und brauche) \biggg- und \Biggg-Varianten, die also in Relation zur Schriftgroesse groesser sind als jeweils ihr Vorgaenger, also bspw. \Bigg. Ich vermute, dass \big, \Big, \bigg und \Bigg sich linear vergroessern, also der Abstand zwischen je einer Variante und seinem Vorgaenger bzw. Nachfolger immer derselbe ist. Als Folge haette ich bsp. ein \biggg, das dem Groessenverhaeltnis zu seinen Vorgaengern entspricht und unabhaengig von der gewaehlten Schriftgroesse ist.


Kann mir da jemand weiterhelfen? Das waere super! Ich habe bisher leider auch nicht gefunden, wo \big, \Big und Co. standardmaessig definiert sind, deshalb weiss ich nicht, ob die Definition, die ich da gefunden habe, wirklich die aktuelle und korrekte ist.


Viele Gruesse,

\\ guy.brush
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Gast

Beitrag von Gast »

In standard LaTeX werden auch \Bigg usw mit absoluten Punktgrößen definiert. amsmath (von mathtools geladen) definiert die Befehle aber so um, dass sie nun von der Schriftgröße abhängen:
\renewcommand{\big}{\bBigg@\@ne}
\renewcommand{\Big}{\bBigg@{1.5}}
\renewcommand{\bigg}{\bBigg@\tw@}
\renewcommand{\Bigg}{\bBigg@{2.5}}
\def\bBigg@#1#2{%
  {\@mathmeasure\z@{\nulldelimiterspace\z@}%
     {\left#2\vcenter to#1\big@size{}\right.}%
   \box\z@}}
Du solltest also sowas wie
\makeatletter
\newcommand\biggg{\bBigg@{3}}
\makeatother
benutzen.

Ulrike Fischer
www.troubleshooting-tex.de

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Hallo,

super, vielen Dank! :) Noch ein paar kleinere Verstaendnisfragen:

Wieso steht bei \big "@ne" und bei \bigg "tw@"? Es scheint ja "1" bzw. "2" zu bedeuten. Demnach wird der Nachfolger immer um 0.5 groesser.

Muss ich auch noch etwas wie \bigggl, \bigggr etc. definieren? Falls ja, wie? Etwa wie im 1. Beispiel oben? Das, was ich in der amsmath.sty Datei gefunden habe, sagt mir nix bzw. ich verstehe den Code absolut nicht ;).
\def\rightdelim@{\gtest@true
 \ifx\@let@token)\else
 \ifx\@let@token]\else
 \ifx\@let@token\rbrack\else
 \ifx\@let@token\}\else
 \ifx\@let@token\rbrace\else
 \ifx\@let@token\rangle\else
 \ifx\@let@token\rceil\else
 \ifx\@let@token\rfloor\else
 \ifx\@let@token\rgroup\else
 \ifx\@let@token\rmoustache\else
 \ifx\@let@token\right\else
 \ifx\@let@token\bigr\else
 \ifx\@let@token\biggr\else
 \ifx\@let@token\Bigr\else
 \ifx\@let@token\Biggr\else\gtest@false
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
Fuer \bigl habe ich es spontan nicht gefunden.

Irgendwie wuerde ich gerne den Code der Definition von \bBigg verstehen, aber ich vermute, dass das eher nicht klappen wird ;). Aber vielleicht so viel: Um wie viel wird eine Klammer denn von einem \big, \Big, \bigg usw. zu seinem Nachfolger vergroessert?


Ich habe mein Ausgangsbeispiel ein wenig angepasst, vielleicht hilft es dem ein oder anderen ja auch:
\documentclass[a4paper,11pt]{scrartcl}
\usepackage[utf8]{inputenc}

% \usepackage{mathtools}
\usepackage{amsmath}
\usepackage{xcolor}

\makeatletter
\newcommand\bigt{\bBigg@{1}}
\newcommand\Bigt{\bBigg@{1.5}}
\newcommand\biggt{\bBigg@{2}}
\newcommand\Biggt{\bBigg@{2.5}}
\newcommand\biggg{\bBigg@{3}}
\newcommand\Biggg{\bBigg@{3.5}}
\newcommand\bigggg{\bBigg@{4}}
\newcommand\Bigggg{\bBigg@{4.5}}
\makeatother

\begin{document}

% A test to check whether \biggg procudes a bigger/larger parenthesis than \Bigg or not.
% "amsmath" redefines the \big, \Big, ... commands so that they are relative to the fontsize.
\[
  \Biggg( \biggg( \Biggt( \Bigg( a \Bigg) \Biggt) \biggg) \Biggg)
\]

% Parenthesis with the same color should have the same size.
\[
  \Bigggg(
    \bigggg(
      \Biggg(
	\biggg(
	  \textcolor{red}{\Biggt(}
	    \textcolor{red}{\Bigg(}
	      \textcolor{blue}{\biggt(}
		\textcolor{blue}{\bigg(}
		  \textcolor{green}{\Bigt(}
		    \textcolor{green}{\Big(}
		      \textcolor{orange}{\bigt(}
			\textcolor{orange}{\big(}
			  (a)
			\textcolor{orange}{\big)}
		      \textcolor{orange}{\bigt)}
		    \textcolor{green}{\Big)}
		  \textcolor{green}{\Bigt)}
		\textcolor{blue}{\bigg)}
	      \textcolor{blue}{\biggt)}
	    \textcolor{red}{\Bigg)}
	  \textcolor{red}{\Biggt)}
	\biggg)
      \Biggg)
    \bigggg)
  \Bigggg)
\]

\end{document}
Falls meine tollen englischen Kommentare grobe sprachliche Schnitzer enthalten, duerft ihr mich gerne korrigieren ... mein Englisch ist etwas eingerostet :(. Leider hat er nicht alle von mir eingefuegten Tabs zur Formatierung der 2. Mathe-Umgebung uebernommen.


Viele Gruesse,

\\ guy.brush
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Gast

Beitrag von Gast »

Muss ich auch noch etwas wie \bigggl, \bigggr etc. definieren?
Ja
Falls ja, wie?
So wie die entsprechenden Definitionen für die anderen Größen in latex.ltx:
\def\Biggl{\mathopen\Bigg}
\def\Biggm{\mathrel\Bigg}
\def\Biggr{\mathclose\Bigg}
Ulrike Fischer
www.troubleshooting-tex.de

guy.brush™
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 8. Aug 2010, 19:43
Wohnort: Earth

Beitrag von guy.brush™ »

Sorry fuer die spaete Antwort! Vielen Dank! An \Biggm haette ich jetzt nicht gedacht. Damit sollte das Thema hinreichend beantwortet sein und ist hoffentlich auch fuer andere Suchende eine Hilfestellung bei diesem Problem :).
Arch Linux - KDE - TeXLive - Kile - \me = Advanced Newbie

Interessensschwerpunkte: Mathematik- und Formelsatz sowie mathematische (Mikro-)Typographie
Offenes Problem: negierte \xarrow-Pfeile beliebiger Länge

Antworten