我有一个图表代码,它类似于群论中第二同态定理的典型显示。在图中,$H$ 和 $K$ 表示阿贝尔群 G 的子群;因此 $H \cap K$ 和 $\mathit{HK}$ 是 G 的其他子群。$H \cap K$ 和 $H$ 之间的线表示 $H \cap K$ 是 $H$ 的子群,$H$ 和 $\mathit{HK}$ 之间的线表示 $H$ 是 $\mathit{HK}$ 的子群。
我不喜欢线条的显示方式。它们会干扰节点。我认为只需将节点“置于”路径(循环)“上方”即可使其看起来美观。 ofouter sep
可能1.5\pgflinewidth
比较合适。在我看来,TikZ
忽略了规范outer sep=1em
。
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,shapes,positioning,intersections,quotes,decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw (0,-2) node [blue] {$H \cap K$};
\draw (-1,0) node [outer sep=1em, violet] {$H$};
\draw (1,0) node [outer sep=1em, violet] {$K$};
\draw (0,2) node[outer sep=1em] {${\mathit{HK}}$};
\draw (0,-2) -- (-1,0) --(0,2) -- (1,0) -- (0,-2) -- cycle;
\end{tikzpicture}
\hspace{\fill}
\end{document}
答案1
这样怎么样?(没有outer sep
选择,只能明确偏移定位。)
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,shapes,positioning,intersections,quotes,decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw (0,-2) node [blue, below] {$H \cap K$};
\draw (-1,0) node [violet, left] {$H$};
\draw (1,0) node [right, violet] {$K$};
\draw (0,2) node[above] {${\mathit{HK}}$};
\draw (0,-2) -- (-1,0) --(0,2) -- (1,0) -- (0,-2) -- cycle;
\end{tikzpicture}
\hspace{\fill}
\end{document}
编辑另一种可能性是,标签“覆盖”路径。除了tikz
它本身之外,不需要其他包。注意:\mathit
中的指令$\mathit{HK}$
不是必需的,$HK$
但足够了。
\documentclass{amsart}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node[violet] (a) at (0:1) {$K$};
\node (b) at (90:2) {$HK$};
\node[violet] (c) at (180:1) {$H$};
\node[blue] (d) at (270:2) {$H \cap K$};
\draw (a) -- (b) -- (c) -- (d) -- (a);
\end{tikzpicture}
\end{document}
答案2
使用起来更简单tikz-cd
:
\documentclass{amsart}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[column sep=0em,row sep=3em]
& HK \arrow[dl,dash] \arrow[dr,dash] \\
H \arrow[dr,dash] && K \arrow[dl,dash] \\
& H\cap K
\end{tikzcd}
\end{document}
答案3
pstricks
来自 pst-node`` 的具有环境的解决方案psmatrix
:
\documentclass[pdf]{amsart}
\usepackage{pst-node}
\begin{document}
\psset{nodesep=2pt, linewidth=0.5pt, rowsep=\baselineskip, colsep=0.333em}
\[ \begin{psmatrix}
%% nodes:
& HK\\
H && K \\
& H ∩ K
% arrows
\ncline{1,2}{2,1}\ncline{1,2}{2,3}
\ncline{3,2}{2,1}\ncline{3,2}{2,3}
\end{psmatrix}
\]
\end{document}