我们可以在 LaTeX 中旋转符号吗?我们应该如何制作此图表?

我们可以在 LaTeX 中旋转符号吗?我们应该如何制作此图表?

我想插入此图表

在此处输入图片描述

放入我的 LaTeX 文档中。但是,我不知道是否可以旋转符号,以及如何将它们放入图表中(请注意 \cong 符号已逆时针旋转 90 度)。那么,如何制作此图表?

提前感谢您的关注。

答案1

两种解决方案,一种使用“标准”工具,一种使用tikz-cdLaRiFaRi 的代码。

\documentclass{article}
\usepackage{amsmath,amssymb} % for both solutions

\usepackage{graphicx} % for the first solution

\usepackage{tikz-cd} % for the second solution

% for the first solution
\newcommand{\overiso}[2]{%
  \overset{\substack{\textstyle #1\\[0.5ex]\rotcong\\[0.5ex]}}{#2}%
}
\newcommand{\rotcong}{\rotatebox[origin=c]{90}{$\cong$}}
% ===

% for the second solution, see https://tex.stackexchange.com/a/216042/4427
\tikzset{
  symbol/.style={
    draw=none,
    every to/.append style={
      edge node={node [sloped, allow upside down, auto=false]{$#1$}}}
  }
}
% ===

% general commands
\newcommand{\numberset}[1]{\mathbb{#1}}
\newcommand{\Z}{\numberset{Z}}

\begin{document}

\[
\dots
\xrightarrow{\cong}
\overiso{\Z}{C_3(*)}
\xrightarrow{0}
\overiso{\Z}{C_2(*)}
\xrightarrow{\cong}
\overiso{\Z}{C_1(*)}
\xrightarrow{0}
\overiso{\Z}{C_0(*)}
\rightarrow
0
\]

\[
\begin{tikzcd}[row sep=1em]
& \Z & \Z & \Z & \Z \\
\dotsb \arrow[r,"\cong"] &
C_3(*) \arrow[r,"0"] \arrow[u,symbol=\cong] &
C_2(*) \arrow[r,"\cong"] \arrow[u,symbol=\cong] &
C_1(*) \arrow[r,"0"] \arrow[u,symbol=\cong] &
C_0(*) \arrow[r] \arrow[u,symbol=\cong] &
0
\end{tikzcd}
\]

\end{document}

在此处输入图片描述

答案2

解决方案如下stackengine

\documentclass{article}

\usepackage{amsmath, amssymb, graphicx}
\usepackage[usestackEOL]{stackengine}

\begin{document}

\[ \stackMath
\dotsm
\xrightarrow{\enspace\cong\enspace}
\Shortstack{\mathbb{Z} \\ \rotatebox[origin=c]{90}{$\cong$} \\ C_3(*)}
\xrightarrow{\enspace 0\enspace}
\Shortstack{\mathbb{Z} \\ \rotatebox[origin=c]{90}{$\cong$} \\ C_2(*)}
\xrightarrow{\enspace\cong\enspace}
\Shortstack{\mathbb{Z} \\ \rotatebox[origin=c]{90}{$\cong$} \\ C_1(*)}
\xrightarrow{\enspace 0\enspace}
\Shortstack{\mathbb{Z} \\ \rotatebox[origin=c]{90}{$\cong$} \\ C_0(*)}
\xrightarrow{\hspace{1.25em}}0
\]

\end{document} 

在此处输入图片描述

答案3

使用 Ti 的解决方案Z(手动放置):

\documentclass[border=3.14,tikz]{standalone}

\usetikzlibrary{positioning}
\usepackage{amssymb}

\begin{document}
\begin{tikzpicture}
  \node at (0,0) (d) {\ldots};
  \node[right=of d]  (c3) {$C_3(*)$};
  \node[right=of c3] (c2) {$C_2(*)$};
  \node[right=of c2] (c1) {$C_1(*)$};
  \node[right=of c1] (c0) {$C_0(*)$};
  \node[right=of c0] (0)  {$0$};
  \draw[->] (d) --node[above]{$\cong$} (c3);
  \draw[->] (c3) --node[above]{$0$} (c2);
  \draw[->] (c2) --node[above]{$\cong$} (c1);
  \draw[->] (c1) --node[above]{$0$} (c0);
  \draw[->] (c0) -- (0);
  \foreach\x in {0,...,3}
    {
      \node[node distance=0.5cm,above=of c\x] (z\x) {$\mathbb{Z}$};
      \path (c\x) --node[rotate=90]{$\cong$} (z\x);
    }
\end{tikzpicture}
\end{document}

Z 使用graphsquotes语法:

\documentclass[border=3.14,tikz]{standalone}

\usetikzlibrary{graphs,quotes,positioning}
\usepackage{amssymb}

\begin{document}
\begin{tikzpicture}
  \graph[grow right=2cm]
    {
      d [as=\ldots] ->["$\cong$"]
      c3 [as=$C_3(*)$] ->["$0$"]
      c2 [as=$C_2(*)$] ->["$\cong$"]
      c1 [as=$C_1(*)$] ->["$0$"]
      c0 [as=$C_0(*)$] ->
      0 [as=$0$]
    };
  \foreach\x in {3,...,0}
    {
      \node[node distance=0.5cm,above=of c\x] (z\x) {$\mathbb{Z}$};
      \path (c\x) --node[rotate=90]{$\cong$} (z\x);
    }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案4

如果您使用tikz-cd,则不必引入人为的行。毕竟tikz-cd是基于 的,其中有s 用于此目的。 因此,如果您想在上面有一个 Z 和 a,您只需添加到该单元格,其中只是该标签的简写。tikzlabel\cong|[la]|la

\documentclass{article}
\usepackage{amsmath,amsfonts}
\usepackage{tikz-cd}
\begin{document}
\[
\begin{tikzcd}[row sep=1em,/tikz/la/.style={label={[rotate=90,anchor=west,inner
sep=1pt,label={right:\mathbb{Z}}]:\cong}}]
\dotsb \arrow[r,"\cong"] &
|[la]| C_3(*) \arrow[r,"0"]  &
|[la]| C_2(*) \arrow[r,"\cong"] &
|[la]| C_1(*) \arrow[r,"0"] &
|[la]| C_0(*) \arrow[r]  &
0
\end{tikzcd}
\]
\end{document}

在此处输入图片描述

相关内容