
右側の 2 つの矢印の正しい位置を取得するのに問題があります。矢印を「中央」に配置したいのです。
コード:
\documentclass[12pt,a4paper]{scrartcl}
\begin{document}
\usetikzlibrary{decorations.markings}
\usepackage{tikz}
\begin{figure}[htbp]
\centering
\begin{minipage}[b]{.4\linewidth}
\begin{tikzpicture}
\node (System) [draw,minimum size=24mm] {Motor};
\coordinate[above left = of System.west] (a1);
\coordinate[below = 7mm of a1] (a2);
\coordinate[below = 7mm of a2] (a3);
\coordinate[below = 6.5mm of a3] (a4);
\coordinate[above right= of System.east] (b1);
\foreach \i [count=\xi from 1] in {2,...,5}
\coordinate[below=of b\xi] (b\i);
\foreach \i [count=\xi from 1] in {$u_\mathrm{a}$,$i_\mathrm{a}$,$u_\mathrm{f}$,$i_\mathrm{f}$}
\draw[-latex'] (a\xi) node[left] {\i} -- (a\xi-| System.west);
\foreach \i [count=\xi from 1] in {$n$,$M$}
\draw[-latex'] (System.east |- b\xi) -- (b\xi) node[right] {\i};
\end{tikzpicture}
\caption{GSM als Motor}
\label{fig:gsmmotor}
\end{minipage}
\qquad
\begin{minipage}[b]{.4\linewidth}
\begin{tikzpicture}
\node (System) [draw,minimum size=24mm] {Generator};
\coordinate[above left = of System.west] (a1);
\coordinate[below = 7mm of a1] (a2);
\coordinate[below = 7mm of a2] (a3);
\coordinate[below = 6.5mm of a3] (a4);
\coordinate[above right= of System.east] (b1);
\foreach \i [count=\xi from 1] in {2,...,5}
\coordinate[below=of b\xi] (b\i);
\foreach \i [count=\xi from 1] in {$n$,$M$,$u_\mathrm{f}$,$i_\mathrm{f}$}
\draw[-latex'] (a\xi) node[left] {\i} -- (a\xi-| System.west);
\foreach \i [count=\xi from 1] in {$u_a$,$i_a$}
\draw[-latex'] (System.east |- b\xi) -- (b\xi) node[right] {\i};
\end{tikzpicture}
\caption{GSM als Generator}
\label{fig:gsmgenerator}
\end{minipage}
\end{figure}
\end{document}
矢印を中央に配置するにはどうすればいいですか?
ありがとう!
答え1
に基づく私の答え:
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,
positioning}
\begin{document}
\begin{figure}[htbp]
\centering
\begin{minipage}[b]{.4\linewidth}
\centering
\begin{tikzpicture}[
node distance = 3mm and 12mm
]
\node (System) [draw,minimum size=24mm] {Motor};
%
\coordinate[above left = of System.west, label=left:$u_a$] (a2);
\coordinate[above = 6mm of a2, label=left:$i_a$] (a1);
\coordinate[below left = of System.west, label=left:$u_f$] (a3);
\coordinate[below = 6mm of a3, label=left:$u_f$] (a4);
%
\coordinate[above right = of System.east, label=right:$n$] (b1);
\coordinate[below right = of System.east, label=right:$M$] (b2);
%
\foreach \i in {1,...,4}{\draw[-Latex] (a\i) -- (a\i -| System.west);}
\foreach \i in {1,2}{\draw[-Latex] (b\i -| System.east) -- (b\i);}
\end{tikzpicture}
\caption{GSM als Motor}
\label{fig:mimo}
\end{minipage}
\hfil
\begin{minipage}[b]{.4\linewidth}
\centering
\begin{tikzpicture}[
node distance = 3mm and 12mm
]
\node (System) [draw,minimum size=24mm] {Generator};
%
\coordinate[above left = of System.west, label=left:$n$] (a2);
\coordinate[above = 6mm of a2, label=left:$M$] (a1);
\coordinate[below left = of System.west, label=left:$u_3$] (a3);
\coordinate[below = 6mm of a3, label=left:$u_2$] (a4);
%
\coordinate[above right = of System.east, label=right:$u_a$] (b1);
\coordinate[below right = of System.east, label=right:$i_a$] (b2);
%
\foreach \i in {1,...,4}{\draw[-Latex] (a\i) -- (a\i -| System.west);}
\foreach \i in {1,2}{\draw[-Latex] (b\i -| System.east) -- (b\i);}
\end{tikzpicture}
\caption{GSM als Generator}
\label{fig:mimo}
\end{minipage}
\end{figure}
\end{document}
答え2
これにはライブラリも複雑なコマンドも必要ありません。pos=<fraction>
それぞれのエッジのいくつかの部分に座標を追加し、矢印とノードを追加することができます。これはすべて次のように言うだけで簡単です。
\path (System.south west) -- (System.north west)
foreach \X/\Z in {0.05/i_f,0.35/u_f,0.65/M,0.95/n}
{coordinate[pos=\X](aux) (aux) edge[latex-] ++ (-1,0)
node[left=1cm]{$\Z$}};
MWE:
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{tikz}
\begin{document}
\begin{figure}[htbp]
\centering
\begin{minipage}[b]{.4\linewidth}
\begin{tikzpicture}
\node (System) [draw,minimum size=24mm] {Motor};
\path (System.south west) -- (System.north west)
foreach \X/\Z in {0.05/i_f,0.35/u_f,0.65/M,0.95/n}
{coordinate[pos=\X](aux) (aux) edge[latex-] ++ (-1,0)
node[left=1cm]{$\Z$}};
\path (System.south east) -- (System.north east)
foreach \X/\Z in {0.3/u_a,0.7/i_a}
{coordinate[pos=\X] (aux) (aux) edge[-latex] ++ (1,0) node[right=1cm]{$\Z$}};
\end{tikzpicture}
\caption{GSM als Motor.}
\label{fig:gsmmotor}
\end{minipage}
\qquad
\begin{minipage}[b]{.4\linewidth}
\begin{tikzpicture}
\node (System) [draw,minimum size=24mm] {Motor};
\path (System.south west) -- (System.north west)
foreach \X/\Z in {0.05/i_f,0.35/u_f,0.65/M,0.95/n}
{coordinate[pos=\X](aux) (aux) edge[latex-] ++ (-1,0)
node[left=1cm]{$\Z$}};
\path (System.south east) -- (System.north east)
foreach \X/\Z in {0.3/u_a,0.7/i_a}
{coordinate[pos=\X] (aux) (aux) edge[-latex] ++ (1,0) node[right=1cm]{$\Z$}};
\end{tikzpicture}
\caption{GSM als Generator.}
\label{fig:gsmgenerator}
\end{minipage}
\end{figure}
\end{document}
答え3
2つの矢印を配置するには真ん中、私はあなたが望んでいたと考えました(間違っていなければいいのですが)この2つの矢印は三番目そして3分の2側面の。これを行うには、
calc
これらのサードパーティを正確に特定できるライブラリを使用します。\coordinate (u) at ($(System.north east)!.3333!(System.south east)$); \coordinate (i) at ($(System.north east)!.6666!(System.south east)$);
水平に配置するには
arrow
、まずテキストをright
、まず各の三番目システムノードの、次の構文で矢印を描きますedge
。\node[right =of u]{$n$}edge[<-](u); \node[right =of i]{$M$}edge[<-](i);
私は TikZ を使って 2 つの図を並べて配置してみました。これを行うには、それぞれを 環境に配置し
scope
、2 番目の環境を でシフトしましたxshift=7cm
。各スコープ環境に と という名前を付けたlocal bounding box=motor
のでlocal bounding box=generator
、テキストを下に簡単に配置できます。\begin{scope}[local bounding box=motor] % code for figure 1 % ... \end{scope} \node [anchor=north,text width=6cm]at (motor.south) {\captionof{figure}{GSM als Motor}}; % caption text
\begin{scope}[xshift=7cm,local bounding box=generator] % code for figure 2 % .... \end{scope} \node [anchor=north,text width=6cm]at (generator.south) {\captionof{figure}{GSM als Generator}}; % caption text
数字に手動で番号を付けないようにするため、下線で示すようにトルビョルン・T最初の解決策では、
capt-of
浮動していないオブジェクトに番号を付けることができるパッケージを使用します。- そこで、もう使用しないコード行すべてにコメントを付けました(削除せずに)。
www.DeepL.com/Translatorで翻訳
\documentclass[12pt,a4paper]{scrartcl}
\usepackage{tikz,capt-of}
\usetikzlibrary{decorations.markings,positioning,arrows,calc}
\begin{document}
%\begin{figure}[htbp]
\centering
%\begin{minipage}[b]{.4\linewidth}
\begin{tikzpicture}
\begin{scope}[local bounding box=motor]
\node (System) [draw,minimum size=24mm] {Motor};
\coordinate[above left = of System.west] (a1);
\coordinate[below = 7mm of a1] (a2);
\coordinate[below = 7mm of a2] (a3);
\coordinate[below = 6.5mm of a3] (a4);
\coordinate[above right= of System.east] (b1);
\foreach \i [count=\xi from 1] in {2,...,5}
\coordinate[below=of b\xi] (b\i);
\foreach \i [count=\xi from 1] in {$u_\mathrm{a}$,$i_\mathrm{a}$,$u_\mathrm{f}$,$i_\mathrm{f}$}
\draw[-latex'] (a\xi) node[left] {\i} -- (a\xi-| System.west);
% \foreach \i [count=\xi from 1] in {$n$,$M$}
% \draw[-latex'] (System.east |- b\xi) -- (b\xi) node[right] {\i};
\coordinate (u) at ($(System.north east)!.3333!(System.south east)$);
\coordinate (i) at ($(System.north east)!.6666!(System.south east)$);
\node[right =of u]{$n$}edge[<-](u);
\node[right =of i]{$M$}edge[<-](i);
\end{scope}
%\node[anchor=north,yshift=-5mm] at (motor.south){Figure\,1: GSM als Motor};
\node [anchor=north,text width=6cm]at (motor.south) {\captionof{figure}{GSM als Motor}};
% \end{tikzpicture}
% \caption{GSM als Motor}
% \label{fig:gsmmotor}
%\end{minipage}
%\qquad
%\begin{minipage}[b]{.4\linewidth}
% \begin{tikzpicture}
\begin{scope}[xshift=7cm,local bounding box=generator]
\node (System) [draw,minimum size=24mm] {Generator};
\coordinate[above left = of System.west] (a1);
\coordinate[below = 7mm of a1] (a2);
\coordinate[below = 7mm of a2] (a3);
\coordinate[below = 6.5mm of a3] (a4);
\coordinate[above right= of System.east] (b1);
\foreach \i [count=\xi from 1] in {2,...,5}
\coordinate[below=of b\xi] (b\i);
\foreach \i [count=\xi from 1] in {$n$,$M$,$u_\mathrm{f}$,$i_\mathrm{f}$}
\draw[-latex'] (a\xi) node[left] {\i} -- (a\xi-| System.west);
% \foreach \i [count=\xi from 1] in {$u_a$,$i_a$}
% \draw[-latex'] (System.east |- b\xi) -- (b\xi) node[right] {\i};
\coordinate (u) at ($(System.north east)!.3333!(System.south east)$);
\coordinate (i) at ($(System.north east)!.6666!(System.south east)$);
\node[right =of u]{$u_a$}edge[<-](u);
\node[right =of i]{$i_a$}edge[<-](i);
\end{scope}
%\node[anchor=north,yshift=-5mm] at (generator.south){Figure\,2: GSM als Generator};
\node [anchor=north,text width=6cm]at (generator.south) {\captionof{figure}{GSM als Generator}};
\end{tikzpicture}
% \caption{GSM als Generator}
\label{fig:gsmgenerator}
%\end{minipage}
%\end{figure}
\end{document}