¿Cómo convencer a las etiquetas de borde de que estén por encima o por debajo del borde cuando están inclinadas?

¿Cómo convencer a las etiquetas de borde de que estén por encima o por debajo del borde cuando están inclinadas?

con el

\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{quotes}

\begin{document}
    \begin{tikzpicture}[auto]
\draw (0,0) to ["AA" '] + (2,0);
\draw (0,0) to ["BB"]   + (0,2);
%
\draw (3,0) to ["AA" ']      +(2,0);
\draw (3,0) to ["BB",sloped] +(0,2);
    \end{tikzpicture}
\end{document}

yo obtengo

ingrese la descripción de la imagen aquí

si predefino comillas de borde, por ejemplo, como

every edge quotes/.append style = {auto=left, font=\footnotesize\sffamily,
                                   anchor=south, sloped}

que swapo 'la opción no tiene ninguna influencia en el posicionamiento de la etiqueta (de alguna manera se esperaba, ya que el ancla es fija).

¿Hay alguna manera de que la etiqueta de la segunda imagen se coloque arriba/izquierda o debajo/derecha de una línea y al mismo tiempo sea sensible a la opción swap(o ')?

Respuesta1

No estoy seguro si esto es lo que esperas.

\documentclass[tikz]{standalone}

\begin{document}

\makeatletter
\def\tikz@install@auto@anchor@sloped{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{sloped}}
\def\tikz@install@auto@anchor@sroped{\let\tikz@do@auto@anchor=\tikz@auto@anchor@on\def\tikz@auto@anchor@direction{sroped}}
\def\tikz@auto@anchor@sloped{\pgfslopedattimetrue\tikz@auto@pre\tikz@auto@anchor@sloped@\tikz@auto@post}
\def\tikz@auto@anchor@sroped{\pgfslopedattimetrue\tikz@auto@pre\tikz@auto@anchor@sroped@\tikz@auto@post}
\def\tikz@auto@anchor@sloped@{%
    \ifdim\pgf@x<0pt%
        \def\tikz@anchor{north}%
    \else%
        \def\tikz@anchor{south}%
    \fi%
}
\def\tikz@auto@anchor@sroped@{%
    \ifdim\pgf@x<0pt%
        \def\tikz@anchor{south}%
    \else%
        \def\tikz@anchor{north}%
    \fi%
}
\tikzoption{swap}[]{%
    \def\tikz@swap@left@to{right}%
    \def\tikz@swap@right@to{left}%
    \def\tikz@swap@sloped@to{sroped}%
    \def\tikz@swap@sroped@to{sloped}%
    \edef\tikz@auto@anchor@direction{\csname tikz@swap@\tikz@auto@anchor@direction @to\endcsname}
}

\tikz\draw foreach\i in{3,6,...,36}{(0,0)--node[auto=sloped]{ABC}+(\i0:3)};

\tikz\draw foreach\i in{3,6,...,36}{(0,0)--node[auto=sloped,']{ABC}+(\i0:3)};

\tikz\draw foreach\i in{3,6,...,36}{(0,0)--node[auto=sroped]{ABC}+(\i0:3)}; % sroped = sloped'

\end{document}

información relacionada