使用 tikz-network 时,边缘标签中的文本框太宽

使用 tikz-network 时,边缘标签中的文本框太宽

我是第一次使用 tikz-network,但我发现这很有趣。当我

\usepackage{tikz}
\usepackage{tikz-network}
\usetikzlibrary{arrows.meta}

\begin{document}
    \begin{tikzpicture}
        \usetikzlibrary {arrows.meta}
        \Vertex[label=a,fontscale=1.3,size=1.5]{a}
        \Vertex[label=b,fontscale=1.3,size=1.5,x=0,y=-4]{b}
        \Vertex[label=$u_1$,fontscale=1.3,x=-3,y=-6]{U1}
        \Vertex[label=$u_n$,fontscale=1.3,x=3,y=-6]{UN}
        %
        \Edge[style={dashed},bend=-25,label={$u_2,\ldots, u_{n-1}$},fontscale=1.3](U1)(UN)
        %
        \Edge[style={latex-latex},label={$E_{u,g}^h$, $E_{g,u}^h$},fontscale=1.3](a)(b)
        \Edge[Direct,label={$E_{u_1,g}^h$, $E_{g,u_1}^h$},fontscale=1.3](U1)(b)
        \Edge[Direct,label={$E_{u_n,g}^h$, $E_{g,u_n}^h$},fontscale=1.3](UN)(b)
    \end{tikzpicture}
\end{document}

边缘的标签位于白色框中,该框太宽并覆盖了相应的边缘。我还尝试了InnerSep手册中注明的一些参数( )(带有\SetEdgesStyle, \SetTextStyle),但我无法实现我想要的效果。啊,顺便说一句,所有内容都在 Overleaf 中。有什么建议吗?

截屏

答案1

您可以通过编辑默认值来更改边缘上标签的外观EdgeLabelStyle,其定义为(在这里您可以看到白色框实际上是一个圆圈):

\tikzset{EdgeLabelStyle/.style={circle,
                               fill           = \cmdNW@DES@TextFillColor,
                               fill opacity   = \cmdNW@DES@TextFillOpacity,
                               inner sep      = \cmdNW@DES@InnerSep,
                               outer sep      = \cmdNW@DES@OuterSep,
                               rotate         = \cmdNW@DES@TextRotation,
                               text opacity   = \cmdNW@DES@TextOpacity,
                               font           = \cmdNW@DES@TextFont}}
}%

因此,您可以执行以下操作:

\documentclass[border=1mm]{standalone}

\usepackage{tikz-network}
\usetikzlibrary{arrows.meta}

\tikzset{EdgeLabelStyle/.append style={
    rectangle,
    inner sep=3pt     % or change via \EdgeInnerSep
}}

\begin{document}

\begin{tikzpicture}
    \Vertex[label=a,fontscale=1.3,size=1.5]{a}
    \Vertex[label=b,fontscale=1.3,size=1.5,x=0,y=-4]{b}
    \Vertex[label=$u_1$,fontscale=1.3,x=-3,y=-6]{U1}
    \Vertex[label=$u_n$,fontscale=1.3,x=3,y=-6]{UN}
    %
    \Edge[style={dashed},bend=-25,label={$u_2,\ldots, u_{n-1}$},fontscale=1.3](U1)(UN)
    %
    \Edge[style={latex-latex},label={$E_{u,g}^h$, $E_{g,u}^h$},fontscale=1.3](a)(b)
    \Edge[Direct,label={$E_{u_1,g}^h$, $E_{g,u_1}^h$},fontscale=1.3](U1)(b)
    \Edge[Direct,label={$E_{u_n,g}^h$, $E_{g,u_n}^h$},fontscale=1.3](UN)(b)
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容