Sehr oft ertappe ich mich dabei, Stile für verschiedene Zeichnungsanmerkungen zu definieren. Das ist großartig, um Figuren zu strukturieren. Es gibt jedoch eine Kleinigkeit, die ich hoffentlich verbessern kann. Das liegt daran, dass alle relativen Dimensionen (Einheiten von ex
oder em
) immer von Ti interpretiert werden.kZ relativ zur Schriftgröße, die auf der „Ebene“ des tikzpicture
Codes selbst gilt.
font=\tiny
Wenn ich beispielsweise die Schriftgröße einer Anmerkung ändern muss, indem ich verwende , muss ich den inner sep
Wert auch manuell anpassen, da die Standardeinstellung (oder was auch immer in der Stildefinition angegeben ist) mit der geänderten Schriftgröße nicht immer so schön aussieht.
Wenn ich Stildefinitionen so einrichten könnte, dass der Wert von font
als Grundlage für alle ex
oder em
Dimensionen in verwendet wird inner sep
, würde sich dieses Problem von selbst lösen. Ich würde auch eine Lösung in Betracht ziehen, bei der die font
und inner sep
Werte als Argumente für einen Stil angegeben werden, wenn sich diese Einschränkung dadurch überwinden lässt.
Hier ist ein MWE:
\documentclass[tikz]{standalone}
\tikzset{
my inner sep/.style={inner sep=#1}, % how to define this?
every node/.style={anchor=south west},
}
\begin{document}
\begin{tikzpicture}
\node[my inner sep=0.2em] (A) {A};
\node[font=\tiny,my inner sep=0.2em] (B) {B};
\foreach \node in {A,B} {
\draw[blue,line width=0.01pt] % just to show the baselines
(\node.south west) |- (\node.base) -| (\node.north east);
}
\end{tikzpicture}
\end{document}
Die aktuelle Ausgabe ist:
Die blauen Haarlinien dienen nur dazu, die Grundlinie jedes Knotens anzuzeigen. Wie gezeigt, haben die Grundlinien den gleichen Abstand vom unteren Ende der Knoten. Eine geeignete Definition von my inner sep
erzeugt eine Ausgabe mit Text, der B
nach unten und links von seiner oben gezeigten Position verschoben ist, da 0.2em
in \tiny
kleiner als 0.2em
in ist \normalsize
.
Ist ein solches Ziel mit dem aktuellen Ti möglich?kZ-Architektur/Reihenfolge der Operationen? Wenn ja, wie kann das gemacht werden?
Antwort1
Von PGF 3.0
dort gibt es einen node font
Schlüssel, der die Schriftart für den Knoten festlegtUndwird als Schriftart bei Knotendimensionsberechnungen mit em
und verwendet ex
. Siehe Abschnitt 17.4.2
(„Textparameter: Schriftart“) im PGF 3.0
Handbuch.
\documentclass[tikz, border=5]{standalone}
\begin{document}
\begin{tikzpicture}[every node/.style={fill=gray!50, anchor=south west}]
\node [inner sep=1em] at (0,0) (A) {A};
\node [font=\tiny, inner sep=1em] at (0,1) (B) {B};
\node [node font=\tiny, inner sep=1em] at (0,2) (C) {C};
\foreach \n in {A,B,C} {
\draw[red, very thin, <->] (\n.base west) -- (\n.base east);
\draw[red, very thin, <->] (\n.text |- \n.south) -- (\n.text |- \n.north);
}
\end{tikzpicture}
\end{document}