大家好 :) 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}