Hallo liebe Community,

ich habe für die Erstellung eines Mathearbeitsblattes ein Graufeld als Tikzpicture definiert, welches ich immer für die Lücken in der Gleichung einfügen möchte. Nur setzt LaTeX das tikzpicture immer bündig am bottom des Textes. Ich hätte die Framebox des Graufeldes gerne entweder zentriert bzgl. der Texthöhe oder variabel nach unten verschoben, damit die Gleichung mit der Lücke auch gut aussieht. Ich werde sicherlich mit \textheight und \fboxsep arbeiten müssen, aber ich bekomme es irgendwie nicht hin. Das folgende Minimalbeispiel soll das Problem aufzeigen:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\graufeld}{\begin{tikzpicture}\fill[gray, opacity=0.5] rectangle (0.75,0.5);\end{tikzpicture}}
\begin{document}
Fülle die Lücken so aus, dass die Gleichung korrekt ist.
\begin{enumerate}
   \item $7x-14=\graufeld \cdot (x-\graufeld)$
   \item $12-3x=(4-\graufeld) \cdot \graufeld$
   \item ...
\end{enumerate}
\end{document}

gefragt 29 Sep '21, 11:38

maqu's gravatar image

maqu
11628
Akzeptiert-Rate: 0%

Mir ist übrigens vollkommen unklar, was mit dem bezug auf Framebox im titel gemeint ist. \fboxsep spielt im gezeigten beispiel auch keine rolle. Das würde es natürlich, wenn \framebox (oder das in meiner antwort genannte \colorbox) verwendet würde.

(02 Okt '21, 15:37) huibub

Die Grundlinie liegt bei abgesetzter Mathematik auf der Höhe des Bruchstrichs oder ca. der Mitte eines Gleichheitszeichens oder Operators.

Es gibt verschiedene Möglichkeiten Material vertikal anders auszurichten. Die einfachst ist, die Verwendung von \raisebox:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand{\graufeld}{\begin{tikzpicture}\fill[gray, opacity=0.5] rectangle (0.75,0.5);\end{tikzpicture}}
\begin{document}
Fülle die Lücken so aus, dass die Gleichung korrekt ist.
\begin{enumerate}
   \item $7x-14=\raisebox{-1ex}{\graufeld} \cdot (x-\raisebox{-\dp\strutbox}{\graufeld})$
   \item $12-3x=(4-\graufeld) \cdot \graufeld$
   \item ...
\end{enumerate}
\end{document}

Die gezeigten Verschiebungen sind nur als Beispiel zu verstehen.

Mir stellt sich die Frage, ob es nicht sinnvoll wäre, \graufeld gleich mit Argumenten für die Breite und Höhe und ggf. einem Argument für die vertikale Verschiebung zu definieren. Ich weiß auch nicht, ob man dafür unbedingt TikZ braucht, denn eigentlich kann man dafür einfach \colorbox aus dem Paket xcolor verwenden. Wenn aber ohnehin bereits TikZ im Dokument verwendet wird, warum nicht. Bei TikZ kann man ebenfalls verschiedene Möglichkeiten nutzen, beispielsweise die BoundingBox mit \useasboundingbox kleiner machen als den grauen Kasten oder mit anchor=center die Grundlinie in die Mitte des grauen Kastens verschieben. Auch kann man negative Koordinaten zusammen mit Option baseline verwenden. Es gibt da wirklich viele Möglichkeiten.

Achja: \usepackage[utf8]{inputenc} habe ich entfernt, weil das seit einigen Jahren der Voreinstellung von LaTeX entspricht. Du solltest das also ebenfalls nicht brauchen. Du kannst es aber bei Bedarf auch wieder einfügen.

Permanenter link

beantwortet 02 Okt '21, 14:31

huibub's gravatar image

huibub
3.1k410
Akzeptiert-Rate: 51%

bearbeitet 02 Okt '21, 15:39

Vielen Dank für die Antwort,

also \raisebox löst auf jedenfall mein Problem. Mir war die Längeneinheit ex zwar noch nicht bekannt, aber soweit ich das richtig gelesen hab ist es eine relative Einheit in Bezug auf die Höhe des kleinen "x" in der entsprechenden Schriftart oder? Ich kann aber sicherlich auch mit pt, in, cm oder anderen Einheiten arbeiten. Gibt es einen guten Grund ex zu verwenden? Was macht der Befehl \dp\strutbox genau, das erschließt sich mir leider noch nicht?

(02 Okt '21, 19:15) maqu

Auch das graufeld in entsprechender Größe so vorzudefinieren macht für meine Zwecke mehr Sinn glaube ich, da ich immer die gleichen Graufelder verwende. Ich denke das spart Code. Sollte ich andere Graufelder benötigen definiere ich mir einfach weitere ;D. Wenn ich die Graufelder auf Brüchen sowohl im Zähler als auch im Nenner benutzt habe bzw. auch über einem Gleichheitszeichen dann hat das auch gepasst. Bloß bei einer "normalen" Gleichung trat das Problem des deutlich versetzten tikzpictures im Verhältnis zum Restterm auf. Ich denke \raisebox ist die einfachste Lösung, danke für den Input!

(02 Okt '21, 19:15) maqu

Ich habe \useasboundingbox bis jetzt nur zum beschneiden von tikzpictures genutzt, aber habe auf deinen Hinweis gemerkt das man es auch vergrößern kann. Allerdings sieht das Graufeld dann auf den Brüchen wieder nicht mehr so schön aus, da ich die Einstellung ja im tikzpicture selbst vornehme. Daher werde ich mich für \raisebox entscheiden.

Zu deinem Kommentar: Ich dachte ich muss \fboxsep der Framebox des tikzpictures verändern und eventuell die Texthöhe individuell bearbeiten, aber zu kompliziert gedacht!

(02 Okt '21, 19:16) maqu
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:

×28
×3
×1

gestellte Frage: 29 Sep '21, 11:38

Frage wurde gesehen: 2,086 Mal

zuletzt geändert: 02 Okt '21, 19:16