„Enges“ Füllen von mehrzeiligem Text im Knoten ohne Beeinträchtigung des Zeilenabstands

„Enges“ Füllen von mehrzeiligem Text im Knoten ohne Beeinträchtigung des Zeilenabstands

Dies ist eine Fortsetzung von"Enge" Füllung von mehrzeiligem Text im Knoten, in dem ich nicht deutlich genug zum Ausdruck gebracht habe, dass der Zeilenabstand unverändert bleiben soll.

Kurz gesagt, ich muss mehrzeiligen Text auf eine Kurve legen. Um sicherzustellen, dass der Text über der Kurve liegt, färbe ich den Knoten ein, der den Text enthält. Da es mehrere Zeilen unterschiedlicher Länge gibt, sieht die Beschriftung seltsam aus, wenn der gesamte Knoten eingefärbt ist. DieLösunghat dieses Problem gelöst, geht aber nicht auf mein (nicht klar formuliertes) Bedürfnis ein, dass der Zeilenabstand unverändert bleibt (aus Konsistenzgründen mit anderen mehrzeiligen Beschriftungen in meiner Abbildung).

Betrachten Sie dieses MWE:

\documentclass[class=minimal]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
  \draw[-] (-1,-0.5) .. controls (-1,1) and (1,0) .. 
    node[above left=-20pt and -11pt,align=center] 
    {\colorbox{yellow}{short line}\\\colorbox{yellow}{much longer line}} (1,1);
  \draw[-] (-0.105,0.576)  
    node[red,above left=-20pt and -11pt,align=center] 
    {short line\\much longer line};
\end{tikzpicture}
\end{document}

was gibt

Bildbeschreibung hier eingeben

Der rote Text hat den üblichen Zeilenabstand. Der schwarze Text mit der gewünschten „dichten“ Füllung hat einen etwas größeren Zeilenabstand.

Wie kann ich mehrzeiligen Text in einem Knoten „enge“ füllen, ohne den Zeilenabstand zu ändern?

Antwort1

Bildbeschreibung hier eingeben

Ich wollte sagen, dass Sie fboxep auf 0 setzen könnten (was hier 2 ist), aber ich schätze, Sie bevorzugen 3

\documentclass[class=minimal,border=0pt]{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{positioning}
\newcommand\ya[1]{\colorbox{yellow}{#1}}
\newcommand\yb[1]{{\fboxsep=0pt\colorbox{yellow}{#1}}}
\newcommand\yc[1]{\vphantom{#1}\smash{\colorbox{yellow}{#1}}}
\begin{document}
\begin{tikzpicture}
  \draw[-] (-1,-0.5) .. controls (-1,1) and (1,0) .. 
    node[above left=-20pt and -11pt,align=center] 
    {\ya{short line1}\\\ya{much longer line}} (1,1);
\end{tikzpicture}
\begin{tikzpicture}
  \draw[-] (-1,-0.5) .. controls (-1,1) and (1,0) .. 
    node[above left=-20pt and -11pt,align=center] 
    {\yb{short line2}\\\yb{much longer line}} (1,1);
\end{tikzpicture}
\begin{tikzpicture}
  \draw[-] (-1,-0.5) .. controls (-1,1) and (1,0) .. 
    node[above left=-20pt and -11pt,align=center] 
    {\yc{short line3}\\\yc{much longer line}} (1,1);
\end{tikzpicture}
\begin{tikzpicture}
  \draw[-] (-1,-0.5) .. controls (-1,1) and (1,0) .. 
    node[above left=-20pt and -11pt,align=center] 
    {short line4\llap{\rule[-.5pt]{25cm}{.5pt}}\\%
     much longer line\llap{\rule[-.5pt]{25cm}{.5pt}}} (1,1);
\end{tikzpicture}
\end{document}

verwandte Informationen