我想用 tikz 写一个交换图,其中有些箭头用矩阵标记。我知道嵌套会在 tikz 中产生问题,我不知道如何处理这个问题。我通常将箭头命令放入方括号中,例如以下方式
\arrow[r, hook, "f"]
现在我想出了一个临时解决方案,但由于某些原因,用方括号书写无法解决问题。所以我必须使用花括号。但使用后者,我无法移动标签,因此它们会重叠。我怎样才能将标签移出图表?(或者增加列之间的空间,或任何其他解决方案,但我还希望知道在使用花括号书写时如何交换标签的侧面)
以下是 MWE:
\documentclass[a4paper,11pt,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphicx, tikz-cd}
\usepackage{indentfirst}
\usepackage{amsmath,amssymb, mathtools}
\usepackage{microtype}
\begin{tikzcd}[ampersand replacement=\&]
A_n\oplus A_{n-1} \arrow{r}{\begin{psmallmatrix} d_n^A & (-1)^n \\ 0 & d_{n-1}^A \end{psmallmatrix}} \arrow{d}{\begin{psmallmatrix} 0 & 1 \\ f_n & 0 \end{psmallmatrix}}
\&A_{n-1}\oplus A_{n-2}\arrow{d}{\begin{psmallmatrix} 0 & 1 \\ f_n & 0 \end{psmallmatrix}}
\\
A_{n-1} \oplus B_n \arrow{r}{\begin{psmallmatrix} -d^A_{n-1} & 0 \\ f_{n-1} & d^B_n \end{psmallmatrix}}
\& A_{n-2} \oplus B_{n-1}
\end{tikzcd}
答案1
您需要,ampersand replacement
因为否则&
矩阵将无法工作。
只需增加列和行的间距即可容纳大标签。
进一步的技巧是使用"{\begin{bsmallmatrix}...\end{bsmallmatrix}}"
周围的括号,以便解析器不会感到困惑。
\documentclass[a4paper,11pt,twoside]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{graphicx, tikz-cd}
\usepackage{indentfirst}
\usepackage{amsmath,amssymb, mathtools}
\usepackage{microtype}
\begin{document}
\begin{tikzcd}[ampersand replacement=\&,column sep = 6em, row sep=3em]
A_n\oplus A_{n-1}
\arrow[r,"{\begin{bsmallmatrix} d_n^A & (-1)^n \\ 0 & d_{n-1}^A \end{bsmallmatrix}}"]
\arrow[d,"{\begin{bsmallmatrix} 0 & 1 \\ f_n & 0 \end{bsmallmatrix}}"']
\&
A_{n-1}\oplus A_{n-2}
\arrow[d,"{\begin{bsmallmatrix} 0 & 1 \\ f_n & 0 \end{bsmallmatrix}}"]
\\
A_{n-1} \oplus B_n
\arrow[r,"{\begin{bsmallmatrix} -d^A_{n-1} & 0 \\ f_{n-1} & d^B_n \end{bsmallmatrix}}"]
\& A_{n-2} \oplus B_{n-1}
\end{tikzcd}
\end{document}
答案2
只是为了比较..tikz-cd
使用xy
包......
\documentclass[a4paper,12pt]{article}
\usepackage[all,cmtip]{xy}
\usepackage{mathtools}
\begin{document}
\[\xymatrix@C=6pc{
A_{n}\oplus A_{n-1} \ar[d] \ar[r]^{\begin{bsmallmatrix} d_{n}^{A} & (-1)^{n} \\ 0 & d_{n-1}^{A} \end{bsmallmatrix}} & A_{n-1}\oplus A_{n-2} \ar[d] \\
A_{n-1} \oplus B_{n} \ar[r]^{\begin{bsmallmatrix} -d^A_{n-1} & 0 \\ f_{n-1} & d^B_n \end{bsmallmatrix}} & A_{n-2} \oplus B_{n-1}}\]
\end{document}