我需要在 LaTeX 中创建哈斯图(即格子图)。目前,我在 tikz-cd 中有以下代码。
\documentclass{standalone}
\usepackage{amsmath,tikz, tikz-cd}
\begin{document}
\begin{tikzpicture}[baseline= (a).base]
\node[scale=.85] (a) at (0,0){
\begin{tikzcd}[every arrow/.append style={dash}]
& & K_1
\arrow[ddll]
\arrow[d]\\
& & k_1
\arrow[ddll,sloped,pos=0.7,"\text{degree $p$}"]\\
K_0 \arrow[d,swap,"\text{degree 2} \, \,"] & & \\
k_0 & &
\end{tikzcd}
};
\end{tikzpicture}
\end{document}
我想在图表的侧面添加带标签的垂直括号,最好是花括号。例如,我想在图表的左侧添加一个垂直括号,标记为“H”,从底部的 K_0 到顶部的 K_1。(注意:这是不是整个图表——括号应延伸到 K_0,而不是一直延伸到图表底部的 k_0。)
添加这些括号的最简单方法是什么?我可以在 tikz-cd 中做到这一点吗?如果不行,最简单的替代方法是什么?
答案1
我不知道如何使用 tikz 添加仅包含图形高度一部分的括号,但使用以下命令可以轻松获得它pstricks
:
\documentclass[border=3mm]{standalone}
\usepackage{amsmath, pstricks-add}
\usepackage{auto-pst-pdf}
\begin{document}
\psset{linejoin=1}
\everypsbox{\footnotesize}
$ \begin{psmatrix}[rowsep=1.3cm, colsep=2.5cm]
\pnode[-4pt, 1.5ex]{K1}\phantom{K₁} & K₁ \\
& k₁ \\
\pnode[-4pt, -0.5ex]{K0}K₀ \\
k₀
\psset{nodesep=4pt, labelsep=2pt}
\ncline{3,1}{1,2}\ncline{4,1}{2,2}\nbput[nrot=:U]{\text{degree $ p $}}
\ncline{1,2}{2,2}\ncline{4,1}{3,1}\naput[nrot=:U]{\text{degree $ 2 $}}
\psset{braceWidthInner=3pt,braceWidthOuter=3pt, braceWidth =0.8pt, nodesepB=-4pt, nodesepA=-1pt}
\psbrace(K1)(K0){H}
\end{psmatrix} $
\end{document}
答案2
一个简单的cases
环境就可以了:
\documentclass[border=3mm]{standalone}
\usepackage{amsmath, tikz, tikz-cd}
\begin{document}
$ H \begin{cases}
\begin{tikzpicture}[baseline= (a).base]
\node[scale=.85] (a) at (0,0){
\begin{tikzcd}[every arrow/.append style={dash}]
& & K_1
\arrow[ddll]
\arrow[d]\\
& & k_1
\arrow[ddll,sloped,pos=0.7,"\text{degree $p$}"]\\
K_0 \arrow[d,swap,"\text{degree 2} \, \,"] & & \\
k_0 & &
\end{tikzcd}
};
\end{tikzpicture}
\end{cases} $
\end{document}
答案3
拥有\left\lbrace
和\right.
\documentclass[border=3mm]{standalone}
\usepackage{amsmath,tikz, tikz-cd}
\begin{document}
$H \left\lbrace
\begin{tikzpicture}[baseline= (a).base]
\node[scale=.85] (a) at (0,0){
\begin{tikzcd}[every arrow/.append style={dash}]
& & K_1
\arrow[ddll]
\arrow[d]\\
& & k_1
\arrow[ddll,sloped,pos=0.7,"\text{degree $p$}"]\\
K_0 \arrow[d,swap,"\text{degree 2} \, \,"] & & \\
k_0 & &
\end{tikzcd}
};
\end{tikzpicture}
\right.$
\end{document}
答案4
tikz-cd 的解决方案decorations.pathreplacing
\documentclass{standalone}
\usepackage{amsmath,tikz}
\usetikzlibrary{cd,decorations.pathreplacing}
\begin{document}
\begin{tikzcd}[every arrow/.append style={dash}]
\vphantom{K_1} \arrow[dd, start anchor=north, end anchor=south, no head, xshift=-1em, decorate, decoration={brace,mirror}, "H" left=3pt] & & K_1 \arrow[ddll] \arrow[d]\\
& & k_1 \arrow[ddll,sloped,pos=0.7,"\text{degree $p$}"]\\
K_0
\arrow[d,swap,"\text{degree 2} \, \,"] & & \\
k_0 & &
\end{tikzcd}
\end{document}
注意\vphantom{K_1}
确保锚北处于正确的位置。
以下其他问题的答案很有帮助
- 如何插入大括号、箭头交叉等
- tikzcd 图表的问题 (顺便说一句,这个问题的标题太笼统了。)
- tikz 中的高架支撑
- 表格下方和旁边的水平和垂直括号
- tikz-cd:错误:未找到名为 tikz@f@1-0-1 的形状(
{}
绘制指向空单元格的箭头的位置)
以及以下网页链接