Seite 1 von 1

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

Verfasst: Sa 27. Okt 2012, 12:36
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

Verfasst: Sa 27. Okt 2012, 16:51
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

Verfasst: So 28. Okt 2012, 12:41
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

Verfasst: So 28. Okt 2012, 16:57
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

Verfasst: Sa 3. Nov 2012, 17:00
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 :).