当你制作大量图表时使用 tikz 的有效方法

当你制作大量图表时使用 tikz 的有效方法

我将要做一个关于范畴论/代数几何的大项目,需要使用很多图表。

我想知道是否有一些技巧可以让它更快更容易。我认为这只是练习的问题,但我想知道人们在这种情况下通常会做什么。

我是否应该用最基本的图表定义很多命令?

我希望这不会太主观。

如下图所示:

在此处输入图片描述

答案1

我建议你使用tikz-cd。此包基于 TikZ 构建,专门用于绘制交换图。它非常通用,提供了很多自定义可能性,并且语法非常简洁方便;此外,您可以使用各种箭头(您拥有通常在这些图中发现的所有标准箭头),并且可以在需要时使用 TikZ 的所有功能。

以下是您问题中的图表的简单演示:

\documentclass{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{mleftright}

\DeclareMathOperator{\Ker}{ker}
\newcommand\TwoMor[2]{
\mleft(\begin{smallmatrix}#1 \\ #2\end{smallmatrix}\mright)
}

\begin{document}

\begin{tikzcd}[row sep=2cm,column sep=1.5cm]
X
  \ar[dr,dotted,"w"]
  \ar[ddr,"v",swap]
  \ar[drr,"u"] 
& & &
\\
& 
\Ker\TwoMor{f}{g}
  \ar[r,dotted,"b'"] 
  \ar[d,dotted,"a'",swap] 
  \ar[dr,rightarrowtail,"k"] 
& 
B
  \ar[d,rightarrowtail,"b"] 
\\
& 
A
   \ar[r,"a",swap]
& 
C
  \ar[r,"f"] 
  \ar[d,"g",swap] 
  \ar[dr,"\TwoMor{f}{g}"] 
& 
D 
\\
& & 
E 
& 
D\times E
  \ar[u,"p_{D}",swap]
  \ar[l,"p_{E}"]
\end{tikzcd}

\end{document}

在此处输入图片描述

正如您在问题中所建议的那样,我不会为图表本身定义命令,而是宁愿为图表中经常使用的元素定义命令;为了举例说明,我定义了\TwoMor

\newcommand\TwoMor[2]{
\mleft(\begin{smallmatrix}#1 \\ #2\end{smallmatrix}\mright)
}

快速构建一对态射。

相关内容