我在使用该软件包时遇到了问题diagxy
。也就是说,texmaker 不想编译以下代码
\begin{document}
\[
\bfig
\Square(600,0)[[\Delta,\ y\of A[f/\bar{x}]] `[\Gamma,\ x\of A]`\Delta` \Gamma;(f,\ y)`\pi_{A[f/\bar{x}]}`\pi_{A}`f]
\efig
\]
\end{document}
我认为问题基本上是由方括号引起的[
,并]
在 内使用\Square
。事实上,如果我把它们拿出来,一切都会好起来。我也试过用和[
替换,但这也不起作用。有没有办法规避这个问题?\left[
]
\right]
谢谢!
答案1
我不知道\of
是什么,所以我给它一个任意的定义。
你的诊断是正确的:LaTeX 对可选参数的关闭感到困惑]
。最好的方法是为此定义一个适当的宏。
\documentclass{article}
\usepackage{mathtools}
\input{diagxy}
\DeclarePairedDelimiter{\bracket}{[}{]}
\newcommand{\of}{???} % ???
\begin{document}
\[
\bfig
\Square(600,0)[
\bracket{\Delta,\ y\of A\bracket{f/\bar{x}}} `\bracket{\Gamma,\ x\of A}`\Delta`
\Gamma;(f,\ y)`\pi_{A\bracket{f/\bar{x}}}`\pi_{A}`f]
\efig
\]
\end{document}
您可能想看看它是如何实现的tikz-cd
:
\documentclass{article}
\usepackage{mathtools}
\usepackage{tikz-cd}
\newcommand{\of}{???}
\DeclarePairedDelimiter{\bracket}{[}{]}
\begin{document}
\[
\begin{tikzcd}[row sep=3em,column sep=4em]
\bracket{\Delta, y\of A\bracket{f/\bar{x}}}
\arrow[r,"{(f, y})"]
\arrow[d,swap,"\pi_{A\bracket{f/\bar{x}}}"] &
\bracket{\Gamma, x\of A}
\arrow[d,"\pi_{A}"]
\\
\Delta \arrow[r,"f" swap] & \Gamma
\end{tikzcd}
\]
\end{document}