xypic
나는 범주 이론의 수반 펑터 정의에 있는 삼각형 항등식을 사용하여 조판하고 싶습니다 . 내 문제는 빗변과 반대쪽 모서리를 연결하는 이중 화살표를 만드는 것입니다.
내가 직접 할 수 있는 (완전히 사소한) 부분은 다음과 같습니다. 이중 화살표를 제외한 모든 부분은 다음과 같습니다.
\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 }
에는 "다이어그램 붙여넣기"를 만드는 방법이 있을 것으로 추정되지만 xypic
어디에서도 명확한 지침을 찾지 못했습니다. 명령이 \compositemap
어떻게든 관련되어 있다는 것을 알고 있지만 사용 방법을 알 수 없습니다.
답변1
xy
생각보다 쉽고 강력하지 않아서 더 이상 사용하지 않습니다 .tikz-cd. 이 솔루션이 귀하에게도 도움이 되기를 바랍니다.
% 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}
원하는대로 여기에 xy
. 그것은 꽤 해키입니다. Sigur가 언급한 예를 사용하는 것이 더 좋을 것 같습니다. 그러나 xy
빈 행렬 항목을 관리할 수 있기 때문에 원하는 위치를 화살표로 가리키기 위해 이것을 사용했습니다. 하지만 두 배의 행렬 노드가 필요합니다.
% 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}
답변2
xy-pic
다른 접근 방식을 사용한 또 다른 솔루션:
\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}
산출:
답변3
2cell
방금 같은 것을 보고 에 있는 기능을 사용해 보았습니다 xy-pic
. 읽은 후참조 매뉴얼, 내 생각에 "올바른" 해결책은 다음과 같습니다
\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}
코드는 다음과 같이 읽습니다 \drtwocell\omit{^<-2>\eta}
. 여기서 \omit
두 개의 곡선 화살표를 생략하고 ^
2셀의 방향을 지정하며 <-2>
레이블을 조금씩 움직입니다(그렇지 않으면 중심점이 됩니다).
산출:
문제가 있습니다: 당신할 수 없다2셀을 기준으로 라벨이 어느 쪽에 있는지 지정합니다. 이것은 구현되지 않은 것 같으므로 아마도 다른 해킹 없이 할 수 있는 최선일 것입니다.