我正在使用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
(如注释中所建议),这是我以前没有做过的。在这两种情况下,都显示了很多错误,我不知道要显示哪些错误才能使其相关,但通常我给出的步骤和代码应该足以重现这些错误。