使用 Latex 调整权重大小以使其变小

使用 Latex 调整权重大小以使其变小

下面是使用 Latex 生成 3 个节点和 3 条边的图的代码,如图所示。它运行完美,只有一个小问题。因此,每条边有 7、31、31,代表边的权重。

我的问题是,如何增加数字大小(7,31,31),使其变得更大,看起来更清晰。我希望编码增加权重的大小。我会得到相同的结果,但边缘权重(7,31,31)在图片中看起来会更大。

我附上了第二张图片;正如你所看到的,重量(7,31,31)的尺寸变大了,但是其他部分保持不变 - 只是这样的视角。

\documentclass[11pt]{scrartcl}

\centering

\newcommand\rad{6.5}

\PassOptionsToPackage{usenames,dvipsnames,svgnames}{xcolor}  

\usepackage{tikz}

\usetikzlibrary{arrows,positioning,automata}

\begin{document}

\begin{tikzpicture}[>=stealth',shorten >=1pt,node distance=7cm,on grid,initial/.style    ={}]

  \node[state]          (S1)  at (120:\rad)    {$S1$};

  \node[state]          (S2)  at (240:\rad)    {$S2$};

  \node[state]          (S3)  at (360:\rad)   {$S3$};

\tikzset{mystyle/.style={->,double=orange}}

\tikzset{every node/.style={fill=white}}

\path (S1)     edge [mystyle]    node   {$7$}   (S2)

      (S2)     edge [mystyle]    node   {$31$}  (S3)

      (S1)     edge [mystyle]    node   {$31$}  (S3);

\end{tikzpicture}

\end{document}

在此处输入图片描述

在此处输入图片描述

答案1

\documentclass[11pt]{scrartcl}
\PassOptionsToPackage{usenames,dvipsnames,svgnames}{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,automata,
                positioning,
                quotes}

\begin{document}
    \begin{tikzpicture}[
state/.append style = {minimum size=1.8em, inner sep=0pt},
  every edge/.style = {draw=orange, semithick, 
                       -{Stealth[scale=0.8]}, shorten > = 1pt},
every edge quotes/.style = {fill=white, font=\footnotesize}
                        ]
\newcommand\rad{1.44} % for distance ~ 1cm between nodes
%
\node[state]    (S1)  at (120:\rad)    {$S1$};
\node[state]    (S2)  at (240:\rad)    {$S2$};
\node[state]    (S3)  at (360:\rad)   {$S3$};

\path (S1)  edge ["$7$" ]   (S2)
      (S2)  edge ["$33$"]  (S3)
      (S1)  edge ["$33$"]  (S3);
    \end{tikzpicture}
\end{document}

编辑(1): 如果您希望将节点的位置设在其他地方,则需要选择不同的坐标位置。在上述 MWE(最小工作示例)中,坐标遵循 MWE 中定义的坐标。它们在极坐标系中定义:<angle>:<distance其中,在您的例子中,坐标的起点被视为(0,0)

如果将节点的位置更改为例如

\node[state]    (S1)  at (180:\rad)    {$S1$};
\node[state]    (S2)  at (270:\rad)    {$S2$};
\node[state]    (S3)  at ( 60:\rad)   {$S3$};

那么结果图像是:

在此处输入图片描述

当然,你可以定义节点的笛卡尔坐标。例如,使用相对坐标系:

\documentclass[11pt]{scrartcl}
\PassOptionsToPackage{usenames,dvipsnames,svgnames}{xcolor}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,automata,
                positioning,
                quotes}

\begin{document}
    \begin{tikzpicture}[
state/.append style = {minimum size=1.8em, inner sep=0pt},
  every edge/.style = {draw=orange, semithick, 
                       -{Stealth[scale=0.8]}, shorten > = 1pt},
every edge quotes/.style = {fill=white, font=\footnotesize}
                        ]
%
\node[state]    (S1)  at (0,0)  {$S1$};
\node[state, above right=1cm and 1.4cm of S1]   (S2)    {$S2$};
\node[state, below right=1.4cm and 1cm of S1]   (S3)    {$S3$};

\path (S1)  edge ["$7$" ]   (S2)
      (S2)  edge ["$31$"]   (S3)
      (S1)  edge ["$31$"]   (S3);
    \end{tikzpicture}
\end{document}

请注意,根据(基本)几何学,如果节点对称放置在平面上,即它们位于圆上,则相等距离(约 1cm)是可能的。您可以计算圆的半径。这很简单,如果您考虑距离,请考虑节​​点中心之间的距离。

在此处输入图片描述

编辑(2): 从下面的评论可以看出,您关心的只是边缘标签字体 sute。我的答案中的所有 MWE 都是由代码行决定的:

every edge quotes/.style = {fill=white, font=\Large} % <--- here you can set font size of edge labels

使用上述设置可得出:

在此处输入图片描述

如果\Large不够,您可以将其更改为\huge甚至\Huge预定义字体大小,或者使用以下方式定义自己的大小:

font=\fontsize{<desired size>}{<baselineskip>}\selectfont

例如font=\fontsize{24pt}{28pt}\selectfont,对于一些愚蠢的大尺寸边缘标签:

在此处输入图片描述

相关内容