Tikz-cd 和交换图

Tikz-cd 和交换图

大家好 :) Tikz 对我来说很新,所以我问你这个问题。我使用 Tikz-cd 编写算术序列。到目前为止一切顺利。我想将其放在迷你页面中,问题就出在这里:

如果我从一个小页面编译出这个:

\begin{center}
\begin{tikzcd}
 x_{1} \arrow[r,red,bend left,"+r"] & x_{2} \arrow[r,red,bend left,"+r"] & 
x_{3} \arrow[r,red,bend left,"+r"] & x_{4} \arrow[r,red,bend left,"+r"] & 
x_{5} \arrow[r,red,bend left,"+r",end anchor={[yshift=0.225cm]north}] & 
\ldots
\end{tikzcd}
\end{center}

它不会产生任何问题。但如果我把它放在一个 minipage 环境中,比如

\fbox{\begin{minipage}{\textwidth}
\underline{\textbf{Définition}}:\newline\newline

Une suite \textbf{arithmétique} est 



$\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$\newline 

$\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$ \newline

$\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$ \newline

\begin{center}
\begin{tikzcd}
  x_{1} \arrow[r,red,bend left,"+r"] & x_{2} \arrow[r,red,bend left,"+r"] & x_{3} 
\arrow[r,red,bend left,"+r"] & x_{4} \arrow[r,red,bend left,"+r"] & x_{5} 
\arrow[r,red,bend left,"+r",end anchor={[yshift=0.225cm]north}] & \ldots
\end{tikzcd}
\end{center}

\end{minipage}}\newline\newline

它给出了相同的 15 个编译错误“未定义控制序列 blablablabla l... \end{minipage}\newline\newline”。这对我来说很奇怪。有人可以向我解释这个问题吗 :) ?是否有可能像我希望的那样将图表放在 minipage 中? :) 提前谢谢大家。

答案1

由于技术原因,当 TikZ 矩阵(并且就是tikzcd这样的对象)被吸收作为另一个命令的参数时,ampersand replacement必须强制执行该选项。

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}

\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}

\noindent
\fbox{\begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule}
\textbf{Définition}

\bigskip

Une suite \textbf{arithmétique} est 
\[
\begin{tikzcd}[ampersand replacement=\&]
  x_{1} \arrow[r,red,bend left,"+r"] \& x_{2} \arrow[r,red,bend left,"+r"] \& x_{3} 
\arrow[r,red,bend left,"+r"] \& x_{4} \arrow[r,red,bend left,"+r"] \& x_{5} 
\arrow[r,red,bend left,"+r",end anchor={[yshift=1ex]north}] \& \dots
\end{tikzcd}
\]
\end{minipage}}

\end{document}

在此处输入图片描述

答案2

一个简单的解决方案是使用framed环境,其优点是可以跨页面分页。

然而,当我这样做时,在样式中定义未编号的定理环境会更简单break,因为该 ntheorem包有一个[framed]选项。

在下面的代码中,我展示了两种解决方案。最后,我不建议在定理标题上加下划线。从印刷术上讲,这是一种非常糟糕的做法,可以追溯到打字机的古老时代,当时很难更改字体并使用斜体或粗体。

\documentclass[french, svgnames]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{geometry}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{tikz-cd}
\usepackage{framed}

\usepackage[amsmath, thmmarks, framed]{ntheorem}

\colorlet{framecolor}{Tomato}
\theoremstyle{nonumberbreak}
\theoremheaderfont{\bfseries}
\theorembodyfont{\normalfont}
\theoremseparator{:}
\theoreminframepreskip{0ex}
\theoreminframepostskip{0ex}
\theoremprework{\setlength{\fboxrule}{0.8pt}\let\oldfbox\fbox\def\fbox#1{\color{framecolor}\oldfbox{\color{black}#1}}}
\newframedtheorem{defi}{Définition}

\begin{document}


\begin{framed}\parindent = 0em
  \underline{\textbf{Définition}}:

  Une suite \textbf{arithmétique} est

  $\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$

  $\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$

  $\dotfill$

  \begin{center}
    \begin{tikzcd}
      x_{1} \arrow[r,red,bend left,"+r"] & x_{2} \arrow[r,red,bend left,"+r"] & x_{3}
      \arrow[r,red,bend left,"+r"] & x_{4} \arrow[r,red,bend left,"+r"] & x_{5}
      \arrow[r,red,bend left,"+r",end anchor={[yshift=0.225cm]north}] & \ldots
    \end{tikzcd}
  \end{center}

\end{framed}%

\begin{defi}
  Une suite \textbf{arithmétique} est

  $\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$

  $\ldots\ldots\ldots\ldots\ldots\ldots\ldots\ldots$

  $\dotfill$

  \begin{center}
    \begin{tikzcd}
      x_{1} \arrow[r,red,bend left,"+r"] & x_{2} \arrow[r,red,bend left,"+r"] & x_{3}
      \arrow[r,red,bend left,"+r"] & x_{4} \arrow[r,red,bend left,"+r"] & x_{5}
      \arrow[r,red,bend left,"+r",end anchor={[yshift=0.225cm]north}] & \ldots
    \end{tikzcd}
  \end{center}
\end{defi}

\end{document} 

在此处输入图片描述

相关内容