«Плотное» заполнение многострочного текста в узле без изменения межстрочного интервала

«Плотное» заполнение многострочного текста в узле без изменения межстрочного интервала

Это продолжение«Плотное» заполнение многострочного текста в узле, в котором я недостаточно ясно выразил свое желание оставить межстрочный интервал неизменным.

Короче говоря, мне нужно наложить многострочный текст на кривую. Чтобы текст был поверх кривой, я закрашиваю узел, содержащий текст. Поскольку есть несколько строк, различающихся по длине, метка выглядит странно, когда закрашен весь узел.решениерешило эту проблему, но не удовлетворяет мою (четко не сформулированную) потребность в том, чтобы межстрочный интервал не менялся (для согласованности с другими многострочными надписями на моем рисунке).

Рассмотрим этот 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}

который дает

введите описание изображения здесь

Красный текст имеет обычный межстрочный интервал. Черный текст с желаемой «плотной» заливкой имеет немного больший межстрочный интервал.

Как можно добиться «плотного» заполнения многострочного текста в узле, не меняя межстрочный интервал?

решение1

введите описание изображения здесь

Я хотел сказать, что вы можете установить fboxep на 0 (что здесь равно 2), но, полагаю, вы предпочитаете 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}

Связанный контент