如何更改由 tkz-graph 在 LaTeX 中创建的图形中边的颜色

如何更改由 tkz-graph 在 LaTeX 中创建的图形中边的颜色

我正在尝试将下面由 tkz-graph LaTeX 代码创建的基本图形中的两条边的颜色更改为红色,将另外两条边的颜色更改为蓝色,但我似乎找不到办法……如能得到任何帮助,我将不胜感激。谢谢。

\documentclass[a4paper,12pt,reqno]{amsart}
\usepackage{amsmath, amssymb, amsthm, verbatim, inputenc, graphicx, bbold, 
float, calc, bm, dsfont, tikz, pgf, mathtools}
\usepackage{tkz-graph}
\GraphInit[vstyle = Normal]
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\graphicspath{ {C:\Users\Tom\Desktop\Tropical\main document} }


\usetikzlibrary{arrows,shapes,snakes,automata,backgrounds,petri,positioning}

\begin{document}
\tikzset{
    LabelStyle/.append style = { rectangle, draw, minimum width = 2em, fill = white, text = black},
    VertexStyle/.append style = { inner sep=5pt,
        font = \Large\bfseries},
    EdgeStyle/.append style = {->} 
}
\begin{figure}[H]
    \begin{tikzpicture}
    \SetGraphUnit{5}
    \Vertex{1}
    \EA(1){2}
    \SO(1){3}
    \EA(3){4}
    \Edge[color=blue](1)(2)
    \Edge[color=blue](3)(1)
    \tikzset{EdgeStyle/.append style = {->, bend left}}
    \Edge[color=red](3)(4)
    \Edge[color=red](4)(3)
    \end{tikzpicture}
    \caption{caption}
    \label{label}
\end{figure}
\end{document}

如果我可以将它们设为虚线和非虚线边缘线而不是不同的颜色,那就更好了,但我也不知道该怎么做。

答案1

color您的设置不起作用的原因似乎是\GraphInit[vstyle = Normal],删除它后您的代码就可以起作用。

您也可以将red和添加blue到两个\tikzset{EdgeStyle/.append style = {...}}声明中。也就是说,如果您有\tikzset{EdgeStyle/.append style={red}},则后面的\Edge将是红色的。请注意append style不会覆盖样式的现有定义,如果您确实想替换现有样式,请使用\tikzset{EdgeStyle/.style={...}}

最后,对您的序言进行一点评论。您多次加载了多个包,尽管是隐式的,因此可以稍微清理一下:

  • tkz-graph加载 TikZ,而 TikZ 又加载pgf,因此后两者不需要。TikZ 实际上还加载graphicx
  • 该类amsart加载amsmathamsthm,然后加载amsfonts,进而加载amssymb。(mathtools也加载amsmath,但它也扩展了它,因此可以保留。)

通常在使用该包时,您会在可选参数中inputenc指定文件的编码,例如。.tex\usepackage[utf8]{inputenc}

\documentclass[a4paper,12pt,reqno]{amsart}
\usepackage{
  verbatim,
  inputenc,
  float,
  calc,
  bm,
  mathtools,
  bbold,
  dsfonts
}

\usepackage{tkz-graph}
\GraphInit[vstyle = Normal]
\usetikzlibrary{arrows,shapes,snakes,automata,backgrounds,petri,positioning}

\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{cor}[thm]{Corollary}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\graphicspath{ {C:\Users\Tom\Desktop\Tropical\main document} }

\begin{document}
\tikzset{
    LabelStyle/.append style = { rectangle, draw, minimum width = 2em, fill = white, text = black},
    VertexStyle/.append style = { inner sep=5pt,
        font = \Large\bfseries},
    EdgeStyle/.append style = {->,blue} % added blue
}
\begin{figure}[H]
    \begin{tikzpicture}
    \SetGraphUnit{5}
    \Vertex{1}
    \EA(1){2}
    \SO(1){3}
    \EA(3){4}
    \Edge[color=blue](1)(2)
    \Edge[color=blue](3)(1)
    \tikzset{EdgeStyle/.append style = {bend left,red}} % added red
    \Edge[color=red](3)(4)
    \Edge[color=red](4)(3)
    \end{tikzpicture}
    \caption{caption}
    \label{label}
\end{figure}
\end{document}

相关内容