tikz-cd 图表的显示问题

tikz-cd 图表的显示问题

我使用 tikz-cd 包来构建数学图。代码如下:

\documentclass[12pt, a4 paper]{article}

\usepackage[utf8]{inputenc}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{mathdots}

\begin{document}

\begin{tikzcd}[column sep = tiny, row sep = small]
& & & & & &M   \arrow[hookleftarrow]{dr} & & & & &\\
& & & & &M_{n-1} \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} &  &N_{p-1} \arrow[hookleftarrow]{dr} & & & & \\
& & & &M_{n-2} \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} & &M'_{n-1}  \arrow[hookrightarrow]{ur} & &N_{p-2} \arrow[hookleftarrow]{dr} & & & \\
& & & \iddots  \arrow[hookrightarrow]{ur} & &M'_{n-2} \arrow[hookrightarrow]{ur} & & & & \ddots \arrow[hookleftarrow]{dr} & & \\
& &M_1 \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} & & \iddots \arrow[hookrightarrow]{ur} & & & & & & N_1 \arrow[hookleftarrow]{dr} & \\
& M_0 \arrow[hookrightarrow]{ur} \arrow[equal]{dr} & & M'_1 \arrow[hookrightarrow]{ur} & & & & & & & & N_0 \\
& &M'_0 \arrow[hookrightarrow]{ur} & & & & & & & & &
\end{tikzcd} 

\end{document}

我得到这个图表: 图表

看起来不太好。我尝试了很多方法让图片看起来更好,但没有得到相关的结果。最大的问题是那些对角点。有人能帮我改进我的代码吗?谢谢!另外,我想给这个图贴上标签,让它下面是“图 1”。我提到这个图必须出现在证明的中间(在证明环境中)。

答案1

问题在于单元格宽度不同。您可以使用between origins来修复此问题。

我还将圆点改为“旋转\cdots”。命令\updots\downdots有一个可选参数,用于针对不同情况微调角度(默认为 45)。

\documentclass[12pt, a4paper]{article}

\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{graphicx}

\newcommand\updots[1][45]{%
  \makebox[1em]{\smash{\rotatebox[origin=c]{#1}{$\cdots\!$}}\vphantom{$|$}}%
}
\newcommand\downdots[1][45]{%
  \makebox[1em]{\smash{\rotatebox[origin=c]{-#1}{$\cdots\!$}}\vphantom{$|$}}%
}

\begin{document}

\begin{tikzcd}[column sep ={2.75em,between origins}, row sep = {2.75em,between origins}]
& & & & & &M   \arrow[hookleftarrow]{dr} & & & & &\\
& & & & &M_{n-1} \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} &  &N_{p-1} \arrow[hookleftarrow]{dr} & & & & \\
& & & &M_{n-2} \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} & &M'_{n-1}  \arrow[hookrightarrow]{ur} & &N_{p-2} \arrow[hookleftarrow]{dr} & & & \\
& & & \updots  \arrow[hookrightarrow]{ur} & &M'_{n-2} \arrow[hookrightarrow]{ur} & & & & \downdots \arrow[hookleftarrow]{dr} & & \\
& &M_1 \arrow[hookrightarrow]{ur} \arrow[hookleftarrow]{dr} & & \updots \arrow[hookrightarrow]{ur} & & & & & & N_1 \arrow[hookleftarrow]{dr} & \\
& M_0 \arrow[hookrightarrow]{ur} \arrow[equal]{dr} & & M'_1 \arrow[hookrightarrow]{ur} & & & & & & & & N_0 \\
& &M'_0 \arrow[hookrightarrow]{ur} & & & & & & & & &
\end{tikzcd} 

\end{document}

在此处输入图片描述

相关内容