我是 LaTeX 新手。Tikz 对我来说完全是新东西。
我已经看过了如何缩放 TiKZ 图片的局部?
- 假设我想
$a=(b,c)$
在进入 S 的箭头的开头写字。怎么做?(根据上面的问题)
按照我的图片,我在将箭头放在 A 块前面时遇到了问题。
My try: I did the following modification to the code:
initial text= $a=(b,c)$
a
直到我在和之间放置 '=' 符号后它才开始工作(b,c)
。
- 接下来,我想在结束节点(根据我的图片是 D)后面放置一个箭头和文本。怎么做?
我的目标是创建如下图所示的图片-
答案1
如果没有一个最小工作示例,很难提供很大帮助。(S 在哪里?你在哪里尝试了该代码?)当然,当你的问题明显表明你确实有代码,只是选择不分享它,以至于人们不得不从头开始时,这种情况尤其令人沮丧。当然,这不太可能有帮助,因为我们只能猜测问题可能是什么。
也就是说,您发布的图像可以使用chains
库和简单的循环轻松绘制,只需进行一些调整即可适应链的开始和结束。库quotes
用于标记。scopes
这里实际上不需要,但在使用时很有用chains
,所以我将它包括在内,以防您的图表变得复杂。
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{chains,scopes,quotes,arrows.meta}
\begin{document}
\begin{tikzpicture}
[
start chain=main going right,
every on chain/.append style={minimum width=25mm, minimum height=10mm, draw=green!50!yellow!60, thick, text centered},
every join/.append style={-{Triangle[]}, draw=blue!50!cyan, thick},
node distance=20mm
]
\node (in) [shape=coordinate] {};
{
\chainin (in);
\foreach \i/\j in {A/{$a=(b,c)$},B/{$x$},C/{$y$},D/{$z$}}
\node (\i) [on chain, join=by {"\j"}] {\i};
\node (out) [every on chain/.append style={draw=none, minimum width=0pt, minimum height=0pt}, on chain, join=by {"a"} ] {};
}
\end{tikzpicture}
\end{document}
答案2
我根据您之前提到的帖子创建了一个最小的、可工作的示例: latex4technics.com/?note=y917ox
梅威瑟:
\documentclass[10pt,letterpaper]{article}
\usepackage[left=1in,right=1in,top=1in,bottom=1in]{geometry}
\thispagestyle{empty}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[version=0.96]{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,shapes,automata,backgrounds,petri,positioning}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.shapes}
\usetikzlibrary{decorations.text}
\usetikzlibrary{decorations.fractals}
\usetikzlibrary{decorations.footprints}
\usetikzlibrary{shadows}
\begin{document}
\begin{center}
\begin{tikzpicture}[shorten >=1pt, node distance=3cm, auto, on grid, initial text={$a=(b,c)$},font=\small,>=stealth',
every state/.style={minimum size=7mm,draw=black!50,very thick,fill=red!50}]
\node[state,initial] (S) {S};
\node[state] (A) [right=of S] {A};
\node[state] (B) [below=of S] {B};
\node[state,accepting] (C) [right=of B] {C};
\path[->]
(S) edge[bend right] node{a} (A)
(S) edge[bend right] node[xshift=-4mm]{$\lambda$} (B)
(A) edge[bend right] node[yshift=5mm]{a,b} (S)
(A) edge[] node{$\lambda$} (C)
(A) edge[] node[yshift=7mm]{b} (B)
(B) edge[bend left] node{b, $\lambda$} (C)
(B) edge[bend right] node[xshift=4mm]{a} (S)
(C) edge[bend left] node{a,b} (B)
;
\end{tikzpicture}
\end{center}
\end{document}
你也可以阅读texample 上的 tikz 中的状态机作为介绍。
您能否具体说明您的第二个问题?您是否想从节点绘制箭头C到正确的? 草图会有帮助!