这是我的 MWE:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage[all]{xy}
\makeatletter
\newcommand{\test}{\xymatrix@M=-.3pt@=10pt}
\newcommand{\testt}[2][1]{\ar@[|(1)]@#1{-}[#2]}
\makeatother
\begin{document}
\begin{align*}
&f=\test{
& \bullet \testt{dl} \testt{dr} \\
\bullet & & \circ }
&g=\test{
& & \bullet \testt{dl}\testt{d}\testt{dr}\\
& \bullet & \bullet \testt{d} & \bullet \testt{d}\\
& & \circ & \circ }
\end{align*}
\end{document}
请帮忙!!!!!
与此相关这是‘xymatrix’、‘input’命令和.sty 文件之间的错误吗?但解决方案不起作用
答案1
只需注释掉\makeatletter
(和\makeatother
),否则@
(和它们后面的普通字符)将成为宏的一部分。(这就是您链接到的答案试图表达的意思。)
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage[all]{xy}
%\makeatletter
\newcommand{\test}{\xymatrix@M=-.3pt@=10pt}
\newcommand{\testt}[2][1]{\ar@[|(1)]@#1{-}[#2]}
%\makeatother
\begin{document}
\begin{align*}
&f=\test{
& \bullet \testt{dl} \testt{dr} \\
\bullet & & \circ }
&g=\test{
& & \bullet \testt{dl}\testt{d}\testt{dr}\\
& \bullet & \bullet \testt{d} & \bullet \testt{d}\\
& & \circ & \circ }
\end{align*}
\end{document}