如何在tikz-cd交换图中为D、E、F构成的底部三角形添加外框?
给tikz-cd中底部三角形添加外框的实现方法
嘿,我来帮你搞定这个外框的问题!要给D、E、F组成的底部三角形加外框,咱们可以借助tikz的fit库来精准拟合这三个节点,具体操作如下:
步骤拆解
- 加载fit库:因为要自动包围多个节点,需要先加载tikz的
fit扩展库,直接在导言区添加即可。 - 给目标节点命名:给D、E、F三个节点分别设置名称,方便tikz定位它们。
- 绘制外框:用
fit节点来拟合这三个节点,同时可以自定义边框的样式(比如粗细、圆角等)。
完整代码示例
\documentclass{article} \usepackage{amsmath} \usepackage{tikz-cd} \usetikzlibrary{fit} % 加载fit库,用于拟合节点外框 \begin{document} \[ \begin{tikzcd}[row sep=2.5em] & \text{A} \\ \arrow[rightarrow]{d}{R_4}\text{B} \arrow[leftarrow]{ur}{R_1} \arrow[dashed,leftrightarrow]{rr}{R_3} && \text{C} \\ \node (D) {\text{D}};\arrow[leftrightarrow]{rr}{R_3} & & \node (E) {\text{E}}; \arrow[leftrightarrow]{ld}{R_2}\\ & \node (F) {\text{F}}; & % 绘制包围D、E、F的外框 \node[fit=(D)(E)(F), draw, thick, inner sep=6pt, rounded corners] {}; \end{tikzcd} \] \end{document}
关键代码解释
\usetikzlibrary{fit}:启用fit库,让tikz可以自动计算多个节点的包围区域。\node (D) {\text{D}};:给D节点设置名称为D,同理E和F节点分别命名为E、F,方便后续定位。\node[fit=(D)(E)(F), draw, thick, inner sep=6pt, rounded corners] {};:fit=(D)(E)(F):指定要包围的三个目标节点;draw:表示绘制边框;thick:设置边框的粗细,也可以换成thin或ultra thick调整;inner sep=6pt:调整边框和节点之间的间距,数值越大间距越宽;rounded corners:给边框添加圆角效果(可选,不需要的话直接删掉即可)。
你可以根据自己的需求调整边框样式,比如改成黑色实线、蓝色虚线等,灵活度很高~
内容的提问来源于stack exchange,提问作者Aleph
相关产品推荐
相关产品推荐

