我使用 quiver 工具创建了一个图表,但在编译时发生冲突

我使用 quiver 工具创建了一个图表,但在编译时发生冲突

箭筒编辑器向我展示了这个

在此处输入图片描述

但是当我复制、粘贴并编译一个空白的 Overleaf 项目时,我得到了这个

在此处输入图片描述

这是我正在使用的代码

\documentclass{article}
\usepackage[spanish]{babel}

\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\usepackage{quiver}  

\begin{document}

\[\begin{tikzcd}
    F &&& F \\
    &&&& {} \\
    {K(s_2,...,s_n)(T)} & {} & {} & {K(s_2,...,s_n)(s_1)} \\
    & {K(T)} \\
    {K(s_2,...,s_n)} &&& {K(s_2,...,s_n)}
    \arrow["{\textrm{alg.} \\ ( \textrm{transit.})}"{description}, hook, from=3-1, to=1-1]
    \arrow[shorten <=2pt, Rightarrow, from=3-2, to=3-3]
    \arrow[hook', from=3-4, to=1-4]
    \arrow["{\textrm{alg.} \\ (T \textrm{ base})}"', hook, from=4-2, to=1-1]
    \arrow[hook', from=4-2, to=3-1]
    \arrow["{\textrm{alg.}}", curve={height=-30pt}, hook', from=5-1, to=1-1]
    \arrow["{\textrm{alg.} \\ \textrm{(si no, abs)}}"', hook', from=5-1, to=3-1]
    \arrow["{\textrm{alg.}}", curve={height=-30pt}, from=5-4, to=1-4]
    \arrow["{\textrm{alg.} \\ (\textrm{transit.})}"', hook', from=5-4, to=3-4]
\end{tikzcd}\]
\end{document}

有人知道为什么会发生这种情况吗?

答案1

您的代码中已经标明了所有换行符。您无需更改图表,只需使用以下命令启用它们即可

\tikzcdset{
  arrows={align=center}
}

完整 MWE:

\documentclass{article}
\usepackage[spanish]{babel}

\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\usepackage{quiver}  

\tikzcdset{
  arrows={align=center}
}

\begin{document}

\[\begin{tikzcd}[sep=large]
    F &&& F \\
    &&&& {} \\
    {K(s_2,...,s_n)(T)} & {} & {} & {K(s_2,...,s_n)(s_1)} \\
    & {K(T)} \\
    {K(s_2,...,s_n)} &&& {K(s_2,...,s_n)}
    \arrow["{\textrm{alg.} \\ (\textrm{transit.})}"{description}, hook, from=3-1, to=1-1]
    \arrow[shorten <=2pt, Rightarrow, from=3-2, to=3-3]
    \arrow[hook', from=3-4, to=1-4]
    \arrow["{\textrm{alg.} \\ (T \textrm{ base})}"', hook, from=4-2, to=1-1]
    \arrow[hook', from=4-2, to=3-1]
    \arrow["{\textrm{alg.}}", curve={height=-60pt}, hook', from=5-1, to=1-1]
    \arrow["{\textrm{alg.} \\ \textrm{(si no, abs)}}"', hook', from=5-1, to=3-1]
    \arrow["{\textrm{alg.}}", curve={height=-60pt}, from=5-4, to=1-4]
    \arrow["{\textrm{alg.} \\ (\textrm{transit.})}"', hook', from=5-4, to=3-4]
\end{tikzcd}\]
\end{document}

在此处输入图片描述

答案2

我对您的代码做了一些编辑,仅针对左图。我添加了一个,array以便将文本写成两行。

\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usepackage{tikz-cd}
\usetikzlibrary{babel}
\usepackage{quiver}  

\begin{document}

\[\begin{tikzcd}
    F &&& F \\
    &&&& {} \\
    {K(s_2,...,s_n)(T)} & {} & {} & {K(s_2,...,s_n)(s_1)} \\
    & {K(T)} \\
    {K(s_2,...,s_n)} &&& {K(s_2,...,s_n)}
    \arrow["{\arraycolsep=1pt\def\arraystretch{0.8}\begin{array}{c} \textrm{alg.} \\ \textrm{(transit.)}\end{array}}"{description}, hook, from=3-1, to=1-1]
    \arrow[shorten <=2pt, Rightarrow, from=3-2, to=3-3]
    \arrow[hook', from=3-4, to=1-4]
    \arrow["{\arraycolsep=1pt\def\arraystretch{.8}\begin{array}{c} \textrm{alg.} \\ \textrm{($T$ base)}\end{array}}"', hook, from=4-2, to=1-1]
    \arrow[hook', from=4-2, to=3-1]
    \arrow["{\arraycolsep=.5pt\begin{array}{c} \textrm{alg.}\\ \end{array}}", curve={height=-50pt}, hook', from=5-1, to=1-1]
    \arrow["{\arraycolsep=1pt\def\arraystretch{0.8}\begin{array}{c} \textrm{\quad alg.} \\ \quad \textrm{(si no, abs)}\end{array}}"', hook', from=5-1, to=3-1]
    \arrow["{\textrm{alg.}}", curve={height=-30pt}, from=5-4, to=1-4]
    \arrow["{\textrm{alg.} \\ (\textrm{transit.})}"', hook', from=5-4, to=3-4]
\end{tikzcd}\]
\end{document}

在此处输入图片描述

答案3

这是颤动图表编辑器,以前无法导出包含换行符的图表。此问题已在 1.5.1 版中修复。如果您在编辑器中重新打开图表(您可以通过打开导出图表附带的链接来执行此操作),然后重新导出,您将获得正确的 TikZ 输出。

将来,如果你遇到问题颤动请输出在错误跟踪器上报告,以便可以修复它。

(同时感谢其他答案提供的解决方案。)

相关内容