我一直在尝试使用 Tikz 绘制霍奇菱形(它们出现在凯勒几何的上下文中)。我已经得到了以下结果
但是,我希望得到类似这样的结果(即,我希望添加这些漂亮的 Serre、Hodge 和共轭标签及其箭头)。此外,我还想添加一个垂直的 Betti 数列,表示菱形行数的总和。
编辑。我明白了,但是我遇到了另一个问题。我使用的是 MathTimePro 2 字体,因此由于这些字体有自己的箭头和大小,因此看起来并不完全符合预期。所以,我只是要求一个如下所示的解决方案,但是使用 tikzcd 制作箭头和标签(而不是诸如 \longleftrightarrow 之类的东西)。这是结果,使用现代计算机/AMS 看起来非常好,所以我将在下面保留它的代码,但使用 MathTime 效果不太好,这就是为什么我需要使用 Tikz-cd 来制作箭头,这样它们最终的行为就与主字体相同了……
\documentclass{article}
\usepackage{amsmath, amssymb, amsfonts, graphicx, pgfplots, tikz, tikz-cd, stmaryrd}
\begin{document}
\[ \begin{tikzcd}[row sep=small, column sep=tiny]
& &&&&h^{0,0}&&&& && b_0 \\
& &&&h^{1,0}&&h^{0,1}&&&&& b_1 \\
& &&h^{2,0}&&h^{1, 1}&&h^{0,2}&&&& b_2 \\
& &\reflectbox{$\ddots$} &&&\vdots &&&\ddots&&& \vdots \\
\mathrm{Hodge}\enspace\rotatebox[origin=c]{90}{$\longleftrightarrow$} & h^{n,0}& &\cdots && \underset{\textstyle\mathrm{Serre}}{ \scalebox{1.5}{$ \curvearrowleft $} } &&\cdots&&h^{0, n}&& b_n\\
& &\ddots &&&\vdots &&&\reflectbox{$\ddots$}&&& \vdots \\
& &&h^{n, n-2}&&h^{n-1,n-1}&&h^{n-2,n}&& && b_{2n-2}\\
& &&&h^{n,n-1}&&h^{n-1,n}&& &&& b_{2n-1}\\
& &&&&h^{n,n}&&&&&& b_{2n} \\
& &&&& \underset{\textstyle\mathrm{conjugation}}{\longleftrightarrow} &&&&&&\\
\end{tikzcd} \]
\end{document}
答案1
在一般情况下可能没什么用,但手动定位节点会让事情变得相当简单。可以通过定义一个常量(即零元函数)来帮助元素的位置/实验室,从而稍微作弊。
\documentclass[tikz,border=10pt]{standalone}
\usepackage{amsmath,amssymb}
\pgfmathdeclarefunction{n}{0}{\def\pgfmathresult{4}}
\def\rdots{\reflectbox{$\ddots$}}
\begin{document}
\begin{tikzpicture}
\begin{scope}[x={(-1.25cm,-.75cm)},y={(1.25cm,-.75cm)}]
\foreach \i/\j/\k in {
0/0, 0/1, 0/2, 0/n, 1/0, 2/0, n/0, n/n-2,
n/n-1, n/n, n-2/n, n-1/n, 1/1, n-1/n-1,
0/3/\ddots, n/1/\ddots, 3/0/\rdots, 1/n/\rdots,
3/1/\dots, 1/3/\dots,
1.5/1.5/\vdots, 2.5/2.5/\vdots}
\node at (\i, \j) {\ifx\j\k$h^{\i,\j}$\else$\k$\fi };
\node [label=below:Serre] at (2, 2) {$\curvearrowleft$};
\node [label=below:conjugation] at (n + .5, n + .5) {$\leftrightarrow$};
\node [label=right:Hodge] at (-.5, n + .5) {$\updownarrow$};
\end{scope}
\foreach \i/\j in {0/b_0, 1/b_1, 2/b_2,
3/\vdots, 4/b_n, 5/\vdots,
6/b_{2n-2}, 7/b_{2n-1}, 8/b_{2n}}
\node[y=0.75cm] at (9, -\i) {$\j$};
\end{tikzpicture}
\end{document}