Ich bin überfordert. Wie muss ich das richtig einstellen, dass Text eine rechteckigen node, bis auf einen gewählten inner sep, voll ausnimmt, in der Breite und, je nach Textumfang, auch in der Höhe? \documentclass{article} \usepackage{tikz} % \usetikzlibrary{calc} \pgfmathsetlengthmacro\breite{4cm} \pgfmathsetlengthmacro\hoehe{2.567cm} \pgfmathsetlengthmacro\InnerSep{0.4cm} \begin{document} \begin{tikzpicture}[] \node[draw, anchor=center, inner sep=0pt, minimum width=\breite, text width=\breite-\InnerSep, minimum height=\hoehe, text depth=\hoehe-\InnerSep, %text height=\hoehe-\InnerSep, % klappt nicht ] (A) {Das ist der Text in der node. Das ist der Text in der node. Das ist der Text in der node. %Das ist der Text in der node. }; \draw[red] (A.north west) -- +(\breite,0); \draw[blue] ([xshift=0.5*\InnerSep]A.north west) -- +(\breite-0.5*\InnerSep,0) node[midway, above]{komisch}; \draw[green] (A.north west) -- +(0,-\hoehe+\InnerSep); \end{tikzpicture} \end{document} gefragt 05 Mär '21, 15:18 coversin |
Wenn ich dich richtig verstehe, hättest du zunächst einmal gerne Blocksatz, damit der Text links und rechts bündig mit dem Node abschließt. Generell ist Blocksatz mit Option \documentclass{article} \usepackage[ngerman]{babel}% Wenn wir deutschen Beispieltext verwenden, wählen % wir natürlich auch die Sprache passend. \usepackage{tikz} \pgfmathsetlengthmacro\breite{4cm} \pgfmathsetlengthmacro\hoehe{2.567cm} \pgfmathsetlengthmacro\InnerSep{0.4cm} \begin{document} \begin{tikzpicture}[] \node[draw, anchor=center, inner sep=0pt, minimum width=\breite, text width=\breite-\InnerSep, align=justify, minimum height=\hoehe, text depth=\hoehe-\InnerSep, ] (A) {Das ist der Text in der node. Das ist der Text in der node. Das ist der Text in der node. }; \draw[red] (A.north west) -- +(\breite,0); \draw[blue] ([xshift=0.5*\InnerSep]A.north west) -- +(\breite-0.5*\InnerSep,0) node[midway, above]{komisch}; \draw[green] (A.north west) -- +(0,-\hoehe+\InnerSep); \end{tikzpicture} \end{document} Allerdings sollte man davon bei so schmalen Nodes und generell in schmalen Spalten absehen, weil das Ergebnis dabei fast nie gut wird. Ich empfehle stattdessen, Text wirklich eher linksbündig oder horizontal zentriert zu setzen. Auch das geht über Option Vertikal kann \documentclass{article} \usepackage[ngerman]{babel}% Wenn wir deutschen Beispieltext verwenden, wählen % wir natürlich auch die Sprache passend. \usepackage{tikz} \pgfmathsetlengthmacro\breite{4cm} \pgfmathsetlengthmacro\hoehe{2.567cm} \pgfmathsetlengthmacro\InnerSep{0.4cm} \begin{document} \begin{tikzpicture}[] \node[draw, anchor=center, inner sep=0pt, minimum width=\breite, text width=\breite-\InnerSep, align=justify, minimum height=\hoehe ] (A) { Das ist der Text in der node. Das ist der Text in der node. Das ist der Text in der node. }; \draw[red] (A.north west) -- +(\breite,0); \draw[blue] ([xshift=0.5*\InnerSep]A.north west) -- +(\breite-0.5*\InnerSep,0) node[midway, above]{komisch}; \draw[green] (A.north west) -- +(0,-\hoehe+\InnerSep); \end{tikzpicture} \end{document} |
Wenn Du
inner sep
selber bestimmst, dann sollte der Option auch die Länge\InnerSep
statt0pt
zugewiesen werden.Die gesuchte Höhe müsste sich einstellen, wenn Du
minimum height
undtext depth
entfernst.Sofern ich nichts übersehen habe, kannst Du die Beschriftung auch mit
label={[text=blue]komisch}
hinzufügen.Achso, ja die Höhe soll schon fest eingestellt sein und nicht automatisch angepasst werden. Am inner sep werde ich noch etwas rumtesten.