TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

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, 20:43

tom75's gravatar image

tom75
2.1k37382
Akzeptiert-Rate: 57%

bearbeitet 16 Feb '15, 17:30

Danke für den Hinweis!

(15 Feb '15, 20: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, 23: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, 09: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, 09:31

saputello's gravatar image

saputello
10.7k93763
Akzeptiert-Rate: 51%

bearbeitet 16 Feb '15, 09:34

Danke, die erste Variante gefällt mir!

(16 Feb '15, 17:31) tom75
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×17
×2
×1

gestellte Frage: 15 Feb '15, 20:43

Frage wurde gesehen: 4,958 Mal

zuletzt geändert: 16 Feb '15, 17:31