如何在 fbox 中使用 tikz?

如何在 fbox 中使用 tikz?

我正在尝试将图表放入一个框中

\fbox{
\begin{tikzcd}
A \arrow[rd] \arrow[r, "\phi"] & B \\
& C
\end{tikzcd}
}

整个代码是

\documentclass[10pt]{amsart}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage[new]{old-arrows}
\usepackage{extpfeil}
\usepackage{mathtools}
\usepackage[margin = 0.5 in]{geometry}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[usenames, dvipsnames]{color}
\usepackage{fancyhdr}
\usepackage{tikz-cd}
\usetikzlibrary{cd}
\begin{document}
\fbox{ d}
\begin{tikzcd}
A \arrow[rd] \arrow[r, "\phi"] & B \\
& C
\end{tikzcd}
\end{document}

但每次都会出错。有什么方法可以将图表放入框中吗?

答案1

通过使用ampersand replacement

\documentclass[10pt]{amsart}
\usepackage{amssymb}
\usepackage{tikz-cd}
\begin{document}
\fbox{
\begin{tikzcd}[ampersand replacement=\&]
A \arrow[rd] \arrow[r, "\phi"] \& B \\
\& C
\end{tikzcd}}
\end{document}

在此处输入图片描述

答案2

问题是,如果内容被抓取一次作为参数,类别代码就会固定。下面使用grabbox包来定义另一种形式,\fbox它不将其内容作为参数,而是作为\hbox(您collectbox也可以使用包)。

\documentclass[10pt]{amsart}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage{amsmath}
\usepackage[new]{old-arrows}
\usepackage{extpfeil}
\usepackage{mathtools}
\usepackage[margin = 0.5 in]{geometry}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage[usenames, dvipsnames]{color}
\usepackage{fancyhdr}
\usepackage{tikz-cd}
\usetikzlibrary{cd}

\usepackage{grabbox}

\newcommand\Fbox
  {%
    \begingroup\grabbox0\hbox{\fbox{\usebox0}\endgroup}%
  }
\begin{document}
\Fbox{\begin{tikzcd}
A \arrow[rd] \arrow[r, "\phi"] & B \\
& C
\end{tikzcd}}
\end{document}

在此处输入图片描述

相关内容