![TikZ:在边缘样式中指定标签位置](https://linux22.com/image/302909/TikZ%EF%BC%9A%E5%9C%A8%E8%BE%B9%E7%BC%98%E6%A0%B7%E5%BC%8F%E4%B8%AD%E6%8C%87%E5%AE%9A%E6%A0%87%E7%AD%BE%E4%BD%8D%E7%BD%AE.png)
我正在用 Ti 写很多小图表钾Z 的图库,通常包含循环。我不喜欢默认loop left
或loop right
选项的外观,所以我制作了自己的样式,称为ll
此处。
这很好,但是当我使用引号语法提供标签时,我必须手动放置它,而这对于 来说不是必需的loop left
。我如何在序言中指定应放置标签的位置?
更新:Gonzalo Medina 的回答将标签放在了正确的一侧。我还希望它们更靠近边缘,就像我left=-2pt
在下面的代码中使用时一样。这可能吗?
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\usetikzlibrary{quotes}
\tikzset{ll/.style={in=210,out=150,distance=3mm},
dot/.style={circle,fill,inner sep=2pt}}
\begin{document}
\tikz \graph {a/[dot] --[ll,"1" left=-2pt] a}; What I want to see.
\tikz \graph {a/[dot] --[ll,"1"] a}; What I want to type.
\tikz \graph {a/[dot] --[loop left,"1"] a}; The `loop left' option ``knows'' what to do.
\end{document}
答案1
ll
我建议对调整in
和价值观做出不同的定义out
:
代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{graphs}
\usetikzlibrary{quotes}
%\tikzset{
% ll/.style={
% in=210,
% out=150,
% distance=3mm,
% looseness=8
% },
%}
\makeatletter
\tikzset{
ll/.style={
in=150,
out=210,
loop,
min distance=3mm,
every node/.append style={inner xsep=1pt}
},
dot/.style={circle,fill,inner sep=2pt}
}
\makeatother
\begin{document}
\tikz \graph {a/[dot] --[ll,"1"] a}; What I get with the \texttt{ll}a style.
\tikz \graph {a/[dot] --[loop left,"1"] a}; The \texttt{loop left} option ``knows'' what to do.
\end{document}