如何用相同的标签标记多个顶点?

如何用相同的标签标记多个顶点?

在下图中,我将两个顶点标记为“3”。现在,每当我尝试在顶点“1”和顶点“3”(右)之间绘制一条边时,边总是绘制在左顶点“3”上。

我想在顶点“1”和右顶点“3”之间画一条边。我该怎么画?我还想增加顶点的标签大小。该怎么做?

\documentclass[legalpaper,landscape]{article}
\usepackage[utf8]{inputenc}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[paperheight=22cm,paperwidth=22cm,bottom=0.5cm,top=0.5cm,left=0cm,right=0cm]{geometry}

\usepackage[upright]{fourier}
\usepackage{tkz-graph}
\usetikzlibrary{arrows}
\thispagestyle{empty}
\begin{document}
\SetVertexNormal[Shape      = circle,
                 FillColor  = Black,
                 LineWidth  = 2pt,
                 InnerSep =  0pt,
                                   ]
\SetUpEdge[lw         = 3pt,
           color      = black,
           labelcolor = white,
           labelcolor = white,
           labeltext  = black,
           labelstyle = {sloped above,draw,text=black}
           ]


\begin{center}



\begin{tikzpicture}

    \Vertex[x=0,y=0,LabelOut=true,Lpos=90]{3}
     \Vertex[x=10,y=0,LabelOut=true,Lpos=90]{4}
      \Vertex[x=5,y=5,LabelOut=true,Lpos=90]{1}
      \Vertex[x=5,y=-5,LabelOut=true,Lpos=180,LableStyle{lw=8pt}]{2}
       \Vertex[x=0,y=-10,LabelOut=true,Lpos=90]{4}
        \Vertex[x=10,y=-10,LabelOut=true,Lpos=90]{3}
         \Edge(1)(3)
         \Edge(3)(4)
         \Edge(4)(2)
         \Edge(2)(3)
         \Edges(1,2,3)





\end{tikzpicture}
\end{center}

\end{document} 

在此处输入图片描述

答案1

要使多个顶点具有相同的标签但不同的内部名称,请使用选项L=<text>分配标签并使用不同的内部名称(3a在我的示例中);这样,您将拥有两个具有相同标签3但具有不同内部名称的顶点3,并3a允许您将这些不同的名称用于边或任何其他可能性。我对标记为的两个顶点做了同样的事情4

要更改标签大小,我必须修补内部\@@vertex并定义一个\LabelSize默认为 的命令\normalsize\rmfamily。重新定义它以满足您的需要(请参阅%Here我将其更改为 的标记行\LARGE\rmfamily)。

\documentclass[legalpaper,landscape]{article}
\usepackage[utf8]{inputenc}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[paperheight=22cm,paperwidth=22cm,bottom=0.5cm,top=0.5cm,left=0cm,right=0cm]{geometry}

\usepackage[upright]{fourier}
\usepackage{tkz-graph}
\usetikzlibrary{arrows}
\usepackage{etoolbox}

\newcommand\LabelFont{\normalsize\rmfamily}
\makeatletter
\patchcmd{\@@vertex}
  {\cmdGR@vertex@style}
  {font=\LabelFont,\cmdGR@vertex@style}
  {}
  {}
\makeatother

\thispagestyle{empty}

\begin{document}
\SetVertexNormal[
  Shape = circle,
  FillColor  = Black,
  LineWidth  = 2pt,
  InnerSep =  0pt,
  MinSize=1cm,
]

\SetUpEdge[
  lw = 3pt,
  color = black,
  labelcolor = white,
  labelcolor = white,
  labeltext  = black\fontsize{30}{36}\selectfont,
  labelstyle = {sloped above,draw}
]

\begin{center}
\renewcommand\LabelFont{\LARGE\rmfamily}% Here
\begin{tikzpicture}

  \Vertex[x=0,y=0,LabelOut=true,Lpos=90,L=3]{3a}
  \Vertex[x=10,y=0,LabelOut=true,Lpos=90,L=4]{4a}
  \Vertex[x=5,y=5,LabelOut=true,Lpos=90]{1}
  \Vertex[x=5,y=-5,LabelOut=true,Lpos=180,LableStyle{lw=8pt}]{2}
  \Vertex[x=0,y=-10,LabelOut=true,Lpos=90]{4}
  \Vertex[x=10,y=-10,LabelOut=true,Lpos=90]{3}
  \Edge(1)(3a)
  \Edge(3)(4)
  \Edge(4)(2)
  \Edge(2)(3)
  \Edges(1,2,3)
\end{tikzpicture}
\end{center}

\end{document}

结果:

在此处输入图片描述

相关内容