如何在用 fancytikzposter 制作的海报中包含交换 tikzcd 图?

如何在用 fancytikzposter 制作的海报中包含交换 tikzcd 图?

我正在使用tikzposter 包要创建一个关于范畴论的小型演示文稿,不可避免地必须使用交换图。在经典文档中,我知道如何做到这一点以及它的工作方式,但显然在 tikzposter 中它不起作用,用作者的话来说:

默认的图形环境在 tikzpicture 中不起作用。我根据 Stephan Thober 发送的代码创建了一个可以替代使用的新图形环境:

\begin{tikzfigure}[Caption]
. . .
\end{tikzfigure}

我对 tikz/tikcd 了解不够,不知道如何添加一个可以做我想做的事情的环境,即使用 tikzcd 在我的海报中包含交换图。

举例来说,假设我想包含下图:

\begin{tikzcd}
\mathcal C \arrow[dd, "F"'] &  & A \arrow[rr, "f"] \arrow[rrdd, "g\circ f"'] &  & B \arrow[dd, "g"] &  & F(A) \arrow[rr, "F(f)"] \arrow[rrdd, "F(g \circ f)"'] &  & F(B) \arrow[dd, "F(g)"] \\
                            &  &                                             &  &                   &  &                                                       &  &                         \\
\mathcal D                  &  &                                             &  & C                 &  &                                                       &  & F(C)                   
\end{tikzcd}

对应这张图:

在此处输入图片描述

---编辑---

我提供了一个使用 tikzcd 包的示例。如果您需要步骤,我只需进入 OverLeaf 模板,然后打开此链接作为可编辑的 OverLeaf 文档(链接提供了包),删除了此示例所有不必要的内容,然后保留以下代码:

\documentclass{a0poster}
\usepackage{fancytikzposter} 
\usepackage[margin=\margin cm, paperwidth=84.1cm, paperheight=118.9cm]{geometry}
\usepackage{cmbright}
\usepackage[math]{kurier}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{graphicx}

\title{Scientific Poster with TikZ \qquad version 2.1}
\author{Elena Botoeva\\
  KRDB Research Centre, Free University of Bozen-Bolzano, Italy\\
  \texttt{[email protected]}
}

\begin{document}

\ClearShipoutPicture
\AddToShipoutPicture{\BackgroundPicture}

\noindent
\begin{tikzpicture}
    \initializesizeandshifts
    \ifthenelse{\equal{\template}{1}}{ 
        \titleblock{47}{1}
        }{
        \titleblock{47}{1.5}
    }
    
    \blocknode%
    {Example of tikz-cd}%
    {
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc interdum semper velit, a sollicitudin elit ornare sed. Ut felis neque, ullamcorper id lacus sit amet, consectetur posuere dolor. Fusce fermentum mauris diam, a tempor justo consectetur quis. Sed luctus molestie lectus, sed gravida erat maximus sed. Proin a laoreet tellus, eget congue ex.

        \begin{tikzfigure}
        \begin{tikzcd}
            \mathcal C \arrow[dd, "F"'] &  & A \arrow[rr, "f"] \arrow[rrdd, "g\circ f"'] &  & B \arrow[dd, "g"] &  & F(A) \arrow[rr, "F(f)"] \arrow[rrdd, "F(g \circ f)"'] &  & F(B) \arrow[dd, "F(g)"] \\
            &  &                                             &  &                   &  &                                                       &  &                         \\
            \mathcal D                  &  &                                             &  & C                 &  &                                                       &  & F(C)                   
        \end{tikzcd}
        \end{tikzfigure}
        
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc interdum semper velit, a sollicitudin elit ornare sed. Ut felis neque, ullamcorper id lacus sit amet, consectetur posuere dolor. Fusce fermentum mauris diam, a tempor justo consectetur quis. Sed luctus molestie lectus, sed gravida erat maximus sed. Proin a laoreet tellus, eget congue ex.
    }
 
\end{tikzpicture}
\end{document}

因此重要的代码是这样的:

\blocknode
{Example of tikz-cd}
{
    ...

    \begin{tikzfigure}
    \begin{tikzcd}
        \mathcal C \arrow[dd, "F"'] &  & A \arrow[rr, "f"] \arrow[rrdd, "g\circ f"'] &  & B \arrow[dd, "g"] &  & F(A) \arrow[rr, "F(f)"] \arrow[rrdd, "F(g \circ f)"'] &  & F(B) \arrow[dd, "F(g)"] \\
        &  &                                             &  &                   &  &                                                       &  &                         \\
        \mathcal D                  &  &                                             &  & C                 &  &                                                       &  & F(C)                   
    \end{tikzcd}
    \end{tikzfigure}
    
    ...
}

在上面的代码中,我把tikzcd环境包含在内tikzfigure(如注释中所建议),这是我以前没有做过的。在这两种情况下,都显示了很多错误,我不知道要显示哪些错误才能使其相关,但通常我给出的步骤和代码应该足以重现这些错误。

相关内容