Ich hab folgendes Beispiel:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[libertine,liby]{newtxmath}
\usefonttheme{professionalfonts}
\newcommand*{\nroot}[2]{\sqrt[\leftroot{4}#1]{\mathstrut#2\hspace{2pt}}}
\begin{document}
\begin{frame}
  $\nroot{n}{xy} = \nroot{n}{x} \cdot \nroot{n}{y}$
  \begin{align*}
    \nroot{n}{xy} &= \nroot{n}{ x} \cdot \nroot{n}{y}
  \end{align*}
\end{frame}
\end{document}

Während mein definiertes Makro \nroot außerhalb der align*-Umgebung so funktioniert, wie ich es mir vorgestellt hab, wird die Höhe der Wurzel innerhalb der Umgebung bei der ersten und letzten Wurzel falsch. Woran liegt das?

(In meiner align*-Umgebung stehen normalerweise mehrere Zeilen, ich hab sie hier weggelassen.)

Update: Auf den Hinweis von @feynman und dessen Korrektur von @Henri hab ich folgende Alternative:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[libertine,liby]{newtxmath}
\usefonttheme{professionalfonts}
\newcommand*{\nroot}[2]{\textstyle\sqrt[\leftroot{4}#1]{\mathstrut#2\hspace{2pt}}}
\begin{document}
\begin{frame}
  $\nroot{n}{xy} = \nroot{n}{x} \cdot \nroot{n}{y}$
  \begin{align*}
    \nroot{n}{xy} &= \nroot{n}{ x} \cdot \nroot{n}{y}
  \end{align*}
\end{frame}
\end{document}

Wäre das eine saubere Lösung oder wie könnte man das alternativ machen?

gefragt 15 Feb '15, 14:43

tom75's gravatar image

tom75
1.9k1445
Akzeptiert: 83%

bearbeitet 16 Feb '15, 11:30

Danke für den Hinweis!

(15 Feb '15, 14:55) tom75
2

@feynman Das ist leider falsch. \mathstrut hat keine andere Höhe, es liegt daran, dass das y unter die Baseline ragt und dies im \textstyle nicht zu einer Vergrößerung der Wurzel führt, im \displaystyle aber doch.

(15 Feb '15, 17:27) Henri
2

\textstyle würde ich nicht in die Definition mit aufnehmen, weil dann die Schriftgröße beispielsweise von \frac{x}{y} in der Wurzel kleiner wäre als außerhalb.

(16 Feb '15, 03:37) saputello

Je nachdem, was am Ende erwünscht ist, gibt es verschiedene Möglichkeiten, das Problem anzugehen. IMHO ein recht schönes Ergebnis erhält man, wenn man \mathstrut durch eine passende \vphantom-Anweisung ersetzt:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[libertine,liby]{newtxmath}
\usefonttheme{professionalfonts}
\newcommand*{\nroot}[2]{\sqrt[\leftroot{4}#1]{\vphantom{My}#2\hspace{2pt}}}
\begin{document}
\begin{frame}
  $\nroot{n}{xy} = \nroot{n}{x} \cdot \nroot{n}{y}$
  \begin{align*}
    \nroot{n}{xy} &= \nroot{n}{ x} \cdot \nroot{n}{y}
  \end{align*}
\end{frame}
\end{document}

Alternativ kann man \mathstrut auch durch eine normale \strut ersetzen:

Open in Online-Editor
\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage{libertine}
\usepackage[libertine,liby]{newtxmath}
\usefonttheme{professionalfonts}
\newcommand*{\nroot}[2]{\sqrt[\leftroot{4}#1]{\strut#2\hspace{2pt}}}
\begin{document}
\begin{frame}
  $\nroot{n}{xy} = \nroot{n}{x} \cdot \nroot{n}{y}$
  \begin{align*}
    \nroot{n}{xy} &= \nroot{n}{ x} \cdot \nroot{n}{y}
  \end{align*}
\end{frame}
\end{document}

Beides liefert in Inline-Mathematik und abgesetzter Mathematik ähnliche Ergebnisse. Im ersten Fall wird eher die abgesetzte Mathematik angepasst, im zweiten Fall eher die Inline-Mathematik.

Permanenter link

beantwortet 16 Feb '15, 03:31

saputello's gravatar image

saputello
18.4k22352

bearbeitet 16 Feb '15, 03:34

Danke, die erste Variante gefällt mir!

(16 Feb '15, 11:31) tom75
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×9
×1
×1

Frage gestellt: 15 Feb '15, 14:43

Frage wurde angeschaut: 1,928 Mal

Zuletzt aktualisiert: 16 Feb '15, 11:31