![기울어졌을 때 가장자리 레이블이 가장자리 위/아래에 있도록 설득하는 방법은 무엇입니까?](https://rvso.com/image/370695/%EA%B8%B0%EC%9A%B8%EC%96%B4%EC%A1%8C%EC%9D%84%20%EB%95%8C%20%EA%B0%80%EC%9E%A5%EC%9E%90%EB%A6%AC%20%EB%A0%88%EC%9D%B4%EB%B8%94%EC%9D%B4%20%EA%B0%80%EC%9E%A5%EC%9E%90%EB%A6%AC%20%EC%9C%84%2F%EC%95%84%EB%9E%98%EC%97%90%20%EC%9E%88%EB%8F%84%EB%A1%9D%20%EC%84%A4%EB%93%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
와 더불어
\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}
나는 얻는다
예를 들어 가장자리 따옴표를 다음과 같이 미리 정의한 경우
every edge quotes/.append style = {auto=left, font=\footnotesize\sffamily,
anchor=south, sloped}
than swap
또는 '
옵션은 라벨 위치 지정에 아무런 영향을 미치지 않습니다(앵커가 고정되어 있으므로 어느 정도 예상됨).
두 번째 이미지 레이블에서 선의 위/왼쪽 또는 아래/오른쪽에 배치되고 동시에 옵션 swap
(또는 '
)에 민감한 방법이 있습니까?
답변1
이것이 당신이 기대하는 것인지 확실하지 않습니다.
\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}