TikZ-cd:如何在多个节点周围绘制边框?

TikZ-cd:如何在多个节点周围绘制边框?

我想知道是否有办法在 中围绕选定的一组节点绘制边框tikz-cd。有一些关于 TikZ 的过去帖子,它们太复杂了,我无法理解。我基本上想画

一幅画

我可以按照手册轻松地定位这三个节点;但是,我没有看到在多个节点(周围和这里)tikz-cd周围绘制形状的方法......a1a2

\begin{tikzcd}[column sep=small,row sep=small] 
& a_3 &\\  a_1 \arrow[rr] & & a_2 \arrow[ll,shift left] \end{tikzcd} 

答案1

欢迎来到 TeX.SE!您可以使用fitTiZ 库通过将两个要装箱的节点和fit=(A1) (A2)作为选项传递来实现。由于允许在 Ti 时传递标记的语法,可以在矩阵中完成别名nodeA1A2tikz-cd|...|自动构建 Z 矩阵节点。一旦相关节点被赋予方便的别名,就可以通过样式进行最终绘图/tikz/execute at end picture

\documentclass[tikz, border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{cd, fit}

\begin{document}

\begin{tikzcd}[
  column sep=small, row sep=small,
  /tikz/execute at end picture={
    \node (large) [rectangle, draw, fit=(A1) (A2)] {};
    \draw[->] (large) -- (A3);
  }]
               & |[alias=A3]| a_3 & \\[5ex]
|[alias=A1]| a_1 \arrow[rr] &     & |[alias=A2]| a_2 \arrow[ll, shift left]
\end{tikzcd}

\end{document}

在此处输入图片描述

答案2

使用普通的 TikZ 和fit库:

在此处输入图片描述

\documentclass[tikz, border=2mm]{standalone}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}
\path 
(-1,0) node (a1) {$a_1$}
(1,0) node (a2) {$a_2$}
(0,1.5) node (a3) {$a_3$};
\node[draw,fit=(a1) (a2)] (a12) {};
\draw[->] (a12)--(a3);
\draw[->] (a1.15)--(a2.165);
\draw[<-] (a1.-15)--(a2.-165);
\end{tikzpicture}
\end{document}

相关内容