Eu gostaria de compor, usando xypic
, as identidades dos triângulos a partir da definição de funtores adjuntos na teoria das categorias. Meu problema é criar a seta dupla conectando a hipotenusa e o canto oposto.
Aqui está a parte (completamente trivial) que posso fazer sozinho, que é tudo menos as setas duplas:
\xymatrix{ C\ar[r]^{F}\ar[dr]_{1_{C}} & D\ar[d]^{G} & & D\ar[dr]^{1_{D}}\ar[d]_{G}\\ & C & & C\ar[r]_{F} & D }
Supostamente, existe uma maneira de criar esses "diagramas de colagem" no xypic
, mas não encontrei nenhuma instrução clara em lugar nenhum; Eu sei que o comando \compositemap
está de alguma forma envolvido, mas não consegui descobrir como usá-lo.
Responder1
Não uso xy
mais, pois não é tão fácil e poderoso comotikz-cd. Espero que esta solução também ajude você:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[row sep=3em]
C \arrow{r}{F} \arrow[""{name=foo}]{dr}[swap]{1_C} & D \arrow{d}{G} \arrow[Rightarrow, from=foo, swap, near start, "\eta"]& D \arrow{d}[swap]{G} \arrow[""{name=bar, below}]{dr}{1_D} & \\
& C & C \arrow{r}[swap]{F} \arrow[Rightarrow, to=bar, swap, near start, "\varepsilon"] & D
\end{tikzcd}\]
\end{document}
Como você desejava, aqui está uma solução com xy
. É bastante hackeado. Usar os exemplos mencionados por Sigur seria melhor, eu acho. Mas como xy
é capaz de gerenciar entradas vazias de matrizes, usei isso para apontar setas para onde eu quero. Porém, a quantidade dupla de nós da matriz é necessária.
% arara: pdflatex
\documentclass{article}
\usepackage[%
,all
%,cmtip % recommended, but I do not know how to get it to work for the double arrow
]{xy}
\begin{document}
\[\xymatrix@R=4mm @C=4mm{
C\ar[rr]^{F} \ar[ddrr]_{1_{C}} & & D \ar[dd]^{G} & & D \ar[ddrr]^{1_{D}} \ar[dd]_{G} & & \\
&\ar@2{->}[ur]_{\eta} & & & & & \\
& & C & & C \ar@2{->}[ur]_{\varepsilon} \ar[rr]_{F} & & D
}\]
\end{document}
Responder2
Outra xy-pic
solução com uma abordagem diferente:
\documentclass{article}
\usepackage[all]{xy}
\begin{document}
\[
\xymatrix{
C\ar[r]^{F}\ar[dr]_{1_{C}} & D\ar[d]^{G}\ar@{<=}[dl]+<22pt>^>>>{\eta} & & D\ar[dr]^{1_{D}}\ar[d]_{G} & \\
& C & & C\ar[r]_{F}\ar@{=>}[ur]-<22pt>_>>>{\varepsilon} & D
}
\]
\end{document}
Saída:
Responder3
Eu apenas olhei para a mesma coisa e tentei usar o 2cell
recurso no xy-pic
. Depois de ler omanual de referencia, acho que a solução "certa" é a seguinte
\documentclass[border=10pt]{standalone}
\usepackage[all,2cell]{xy}
\UseAllTwocells
\begin{document}
\[
\xymatrix{C\drtwocell\omit{^<-2>\eta}\ar_{1_C}[dr]\ar^F[r]&D\ar^G[d]&
D\drtwocell\omit{^<2>\varepsilon}\ar^{1_D}[dr]\ar_G[d]&\\
&C&C\ar_F[r]&D}
\]
\end{document}
O código é lido como \drtwocell\omit{^<-2>\eta}
, onde \omit
diz que omitiremos as duas setas curvas, ^
especifica a direção das 2 células e <-2>
desloca o rótulo (caso contrário, estará no ponto central).
Saída:
Há um problema: vocênão podeespecifique de que lado o rótulo está em relação às 2 células. Parece que isso não está implementado, então talvez seja o melhor que podemos fazer sem alguns outros hacks.