
Aqui está um exemplo do problema que encontro com o xypic
\documentclass[10pt,a4paper,french,oneside]{amsbook}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[all,cmtip]{xy}
\begin{document}
\[
\xymatrix@!{
P\ar[r]^{p_{2}}\ar[d]_{p_{1}}&Y\ar[d]^g\\
X\ar[r]^f&Z}
\]
\end{document}
E abaixo está o erro que recebi quando escrevi
./essai.tex:16: Xy-pic error: <addop> or <direction> or one of 1RCMLHW*! expect
ed.
\xyerror@ ...#2}\fi \errmessage {Xy-pic error: #1}
}
l.16 \xymatrix@!
{
Eu suspeito fortemente que isso venha do babel e da opção francesa bagunçando as coisas, já que o personagem ! não parece ser reconhecido (@R funciona bem, por exemplo). O que posso fazer sobre isso?
Responder1
Resolver o problema !
não é suficiente, como também ?;:^="
é usado na sintaxe Xy-pic.
Você pode resolvê-lo globalmente desativando as abreviações em todas as construções Xy-pic:
\documentclass[10pt,a4paper,french,oneside]{amsbook}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[all,cmtip]{xy}
\usepackage{etoolbox}
\preto\xy{\shorthandoff{!?;:^="}}
\begin{document}
\[
\xymatrix@!{
P\ar[r]^{p_{2}}\ar[d]_{p_{1}}&Y\ar[d]^g\\
X\ar[r]^f&Z}
\]
\end{document}
Sem etoolbox
ele seria, em vez de \preto\xy{...}
,
\toks0=\expandafter{\xy}
\edef\xy{\noexpand\shorthandoff{!?;:^="}\the\toks0 }
Responder2
Você pode !
voltar localmente com \shorthandoff{!}
:
\documentclass[10pt,a4paper,french,oneside]{amsbook}
\usepackage{babel}
\usepackage[T1]{fontenc}
\usepackage[applemac]{inputenc}
\usepackage[all,cmtip]{xy}
\begin{document}
\[\shorthandoff{!}
\xymatrix@!{
P\ar[r]^{p_{2}}\ar[d]_{p_{1}}&Y\ar[d]^g\\
X\ar[r]^f&Z}
\]
\end{document}