Wie kann man dafür sorgen, dass Randbeschriftungen über/unter dem Rand liegen, wenn sie schräg sind?

Wie kann man dafür sorgen, dass Randbeschriftungen über/unter dem Rand liegen, wenn sie schräg sind?

mit dem

\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}

ich erhalte

Bildbeschreibung hier eingeben

wenn ich Randanführungszeichen vordefiniere, zum Beispiel als

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

als die Option swap„oder '“ hat keinen Einfluss auf die Positionierung der Beschriftung (irgendwie zu erwarten, da der Anker fest ist).

gibt es eine Möglichkeit, die Beschriftung im zweiten Bild über/links oder unter/rechts einer Zeile zu positionieren und gleichzeitig auf die Option swap(oder ') zu reagieren?

Antwort1

Ich bin nicht sicher, ob Sie das erwarten.

\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}

verwandte Informationen