TikZ:在边缘样式中指定标签位置

TikZ:在边缘样式中指定标签位置

我正在用 Ti 写很多小图表Z 的图库,通常包含循环。我不喜欢默认loop leftloop 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}

相关内容