无法在 amsart 下绘制交换图

无法在 amsart 下绘制交换图

这里我附上了代码

\documentclass[11pt]{amsart}

\usepackage[dvips]{epsfig}

\usepackage[all,cmtip]{xy}

\usepackage{graphicx}

\usepackage{tikz-cd}

\usepackage{tikz}

\usetikzlibrary{cd}

\usetikzlibrary{matrix,arrows,decorations.pathmorphing}

\usepackage{pst-node}

\usepackage{pstricks}

\usepackage{amsgen, amstext,amsbsy,
amsopn, amsthm, amsfonts,amssymb,
amscd,amsmath,euscript,enumerate,url,
verbatim,calc,xypic}

\usepackage{amscd}


\textwidth6.5in

\textheight9in

\oddsidemargin.2in

\evensidemargin.2in

\topmargin-1cm

\renewcommand{\baselinestretch}{1.2}

\usepackage{amsmath}

\newtheorem{theorem}{Theorem}[section]

\newtheorem{definition}[theorem]{Definition}%[theorem]

\newtheorem{defn}[theorem]{Definition}

\newtheorem{exercise}[theorem]{Exercise}

\newtheorem{problem}[theorem]{Problem}

\newtheorem{qns}[theorem]{Question}

\newtheorem{obs}[theorem]{Observation}

\newtheorem{example}[theorem]{Example}%[section]

%\newtheorem{Exam}{Example}[section]

%\newtheorem{prop}{proposition}[section]

%\newtheorem{exer}{Exercise}[section]

\newtheorem{proposition}[theorem]{Proposition}%[section]

%\newtheorem{theorem}{Theorem}[section]

\newtheorem{remark}[theorem]{Remark}%[section]

\newtheorem{corollary}[theorem]{Corollary}%[section]

\newtheorem{lemma}[theorem]{Lemma}%[section]

\newcommand{\QQ}{\mathbb Q}

\newcommand{\ZZ}{\mathbb Z}

\newcommand{\CC}{\mathbb C}

\newcommand{\FF}{\mathbb F}

\newcommand{\RR}{\mathbb R}

\newcommand{\NN}{\mathbb N}

\newcommand{\ra}{\rightarrow}

%\operatorname{deg}{{\deg}}

\newcommand{\irr}{\;\text{irr}\;}

\newcommand{\disc}{\:\text{disc}\;}

\newcommand{\ov}{\overline}

\newcommand{\sign}{\mbox{ sign }}

\newcommand{\gs}{\sigma}

\newcommand{\gt}{\tau}

\newcommand{\m}{\mathfrak m}

\newcommand{\Hom}{\mbox { Hom }}

\newcommand{\ga}{\alpha}

\newcommand{\gb}{\beta}

%\newcommand{\gg}{\gamma}

%\newcommand{\char}{\mbox{ char }}

\title[]{Algebra}

\author[]{Ripan Das}

\begin{document}

\maketitle




\newpage



\begin{tikzcd}

\cdots \arrow[r] & M_1 \arrow[r] \arrow[d] & M_2 \arrow[r] \arrow[d] & M_3 \arrow[d] \arrow[r] & \cdots \arrow[r] & M_n \arrow[d] \arrow[r] & {} \\
\cdots \arrow[r] & N_1 \arrow[r]           & N_2 \arrow[r]           & N_3 \arrow[r]           & \cdots \arrow[r] & N_n \arrow[r]           & {}
\end{tikzcd}


\[\begin{tikzcd}

    G & {G'} \\
    {G/H} & {}
    \arrow["f"', from=1-1, to=1-2]
    \arrow["\pi"', from=1-1, to=2-1]
    \arrow["g"', from=2-1, to=1-2]

\end{tikzcd}\]






\end{document}

该代码在 overleaf 中运行并生成一个漂亮的交换图,但在 texmaker 中它无法生成并且只显示节点而不显示箭头。这里我附上了我在 texstudio 中得到的内容

答案1

您有不兼容的软件包,除非你选择了这latex-dvips-ps2pdf条路线(我相信在 Overleaf 上是可行的)。你的环境中还有空行tikzcd,这是不允许的。

首先,你的序言很乱。你正在加载

  • epsfig,仅用于兼容 1995 年之前编写的文档

  • pstricks,这需要使用latex+dvips+ps2pdf

您还会多次加载包。例如,amsmath出现两次,它会自动加载、和amsgenamstext此外,还会由类自动加载,以及的内部版本。amsbsyamsopnamsmathamsartamsthm

如今,使用enumitem比 更受欢迎enumerate:您真的在使用它的功能吗?在这种情况下,翻译enumitem并不困难。

加载tikz和库cd与加载相同tikz-cd

我不明白为什么要加载amscd:它提供的是非常基本的图表,用 可以更好地制作。如果您只需要其交换图功能,tikz-cd那么也没有理由加载xy(而不是)。xypic\xymatrix

设置\textheightamsart,但此类设置必须紧随其后\calclayout

的正确语法\mathbb\mathbb{A},不是\mathbb A,类似地\mathfrak。我还更改了一些定义以实现更好的间距统一性,特别是\irr\disc注意\mathrm和 不是\text,因为您希望在任何情况下都具有直立形状。

顺便说一句,LaTeX 提供了\to的简写\rightarrow。无需定义\ra,那样就不那么透明了。

\documentclass[11pt]{amsart}
\usepackage{graphicx}

\usepackage{tikz}
\usetikzlibrary{cd,matrix,arrows,decorations.pathmorphing}

% for these you need latex+dvips+ps2pdf
% the last one with the -dALLOWTRANSPARENCY option
%\usepackage{pstricks}
%\usepackage{pst-node}

\usepackage{
  %amsmath,
  %amsthm,
  amssymb,
  euscript,
  %enumerate,% better enumitem
  url,
  verbatim,
  calc,
}


\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9in}
\calclayout
\linespread{1.2}

%\oddsidemargin.2in % wrong
%\evensidemargin.2in % wrong
%\topmargin-1cm % wrong


\newtheorem{theorem}{Theorem}[section]
\newtheorem{definition}[theorem]{Definition}%[theorem]
\newtheorem{defn}[theorem]{Definition}
\newtheorem{exercise}[theorem]{Exercise}
\newtheorem{problem}[theorem]{Problem}
\newtheorem{qns}[theorem]{Question}
\newtheorem{obs}[theorem]{Observation}
\newtheorem{example}[theorem]{Example}%[section]
%\newtheorem{Exam}{Example}[section]
%\newtheorem{prop}{proposition}[section]
%\newtheorem{exer}{Exercise}[section]
\newtheorem{proposition}[theorem]{Proposition}%[section]
%\newtheorem{theorem}{Theorem}[section]
\newtheorem{remark}[theorem]{Remark}%[section]
\newtheorem{corollary}[theorem]{Corollary}%[section]
\newtheorem{lemma}[theorem]{Lemma}%[section]

\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\CC}{\mathbb{C}}
\newcommand{\FF}{\mathbb{F}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\NN}{\mathbb{N}}

\newcommand{\ra}{\rightarrow} % isn't \to better than \ra?
\newcommand{\irr}{\mathrel{\mathrm{irr}}}
\newcommand{\disc}{\mathrel{\mathrm{disc}}}
\newcommand{\ov}{\overline}
\DeclareMathOperator{\sign}{sign}

\newcommand{\ga}{\alpha}
\newcommand{\gb}{\beta}
%\newcommand{\gg}{\gamma}
\newcommand{\gs}{\sigma}
\newcommand{\gt}{\tau}

\newcommand{\m}{\mathfrak{m}}

\DeclareMathOperator{\Hom}{Hom}

\title[]{Algebra}

\author[]{Ripan Das}

\begin{document}

\maketitle

\begin{tikzcd}
\cdots \arrow[r] & M_1 \arrow[r] \arrow[d] & M_2 \arrow[r] \arrow[d] & M_3 \arrow[d] \arrow[r] & \cdots \arrow[r] & M_n \arrow[d] \arrow[r] & {} \\
\cdots \arrow[r] & N_1 \arrow[r]           & N_2 \arrow[r]           & N_3 \arrow[r]           & \cdots \arrow[r] & N_n \arrow[r]           & {}
\end{tikzcd}


\[\begin{tikzcd}
    G & {G'} \\
    {G/H} & {}
    \arrow["f", from=1-1, to=1-2]
    \arrow["\pi"', from=1-1, to=2-1]
    \arrow["g"', from=2-1, to=1-2]
\end{tikzcd}\]

\end{document}

在此处输入图片描述

答案2

首先,您的代码无法编译,因为环境中不能有空行tikzcd。但即使删除了这些空行,您也无法在 Overleaf 或其他地方获得所需的结果。问题在于您正在加载的所有包。

您加载的许多包都是不必要的。例如,您用来tikz-cd制作图表的包。您也不需要cdamscdxypic。一般来说,不要加载您不使用的包。

在这种情况下,您是否使用epsfig包?如果是,则必须加载它 tikz-cd以避免意想不到的后果。如果您不使用它,请将其删除。正如@egreg 指出的那样,epsfig很长时间以来它都是不必要的。

在此处输入图片描述

\documentclass[11pt]{amsart}

\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
\cdots \arrow[r] & M_1 \arrow[r] \arrow[d] & M_2 \arrow[r] \arrow[d] & M_3 \arrow[d] \arrow[r] & \cdots \arrow[r] & M_n \arrow[d] \arrow[r] & {} \\
\cdots \arrow[r] & N_1 \arrow[r]           & N_2 \arrow[r]           & N_3 \arrow[r]           & \cdots \arrow[r] & N_n \arrow[r]           & {}
\end{tikzcd}

\[\begin{tikzcd}
    G & {G'} \\
    {G/H} & {}
    \arrow["f"', from=1-1, to=1-2]
    \arrow["\pi"', from=1-1, to=2-1]
    \arrow["g"', from=2-1, to=1-2]
\end{tikzcd}\]

\end{document}

相关内容