Đặt các ô trong tikzcd theo cách thủ công
Tôi đã cố gắng làm cho việc chuyển ô thủ công trong sơ đồ tikz-cd hoạt động trong trường hợp của tôi, nhưng tôi đang gặp phải một số vấn đề khi sơ đồ của tôi quá lớn.
Sơ đồ mong muốn của tôi giống như
\documentclass[a41empaperpt]{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\begin{document}
\begin{equation}
\begin{tikzcd}
& S(F) \arrow[ddddl, "\operatorname{id}"']\arrow[dd, "\operatorname{pr}^*"] \arrow{rr} & & F \arrow[dd, "\operatorname{pr}^*"]\rar{R} & Z(F) \arrow[ddddddl, bend left = 75, dotted, "\beta"]\arrow[dd, "\operatorname{pr}^*"] \\
& & \circled{2} & & \\
& IS(F) \arrow[ddl, "\partial_0^*", "\simeq"' ] \arrow[dddd, bend left = 90, "0", "\circled{3}"'] \arrow[dd, "\operatorname{id}"]\arrow[rr] & & I(F) \arrow[dddd, bend left = 30, "\partial_1^*-\partial_0^*"] \rar{R} & IZ(F) \arrow[ddddl, bend left = 45, dotted, "\alpha"]\\
\\
S(F) \arrow[ddr, "0"']\arrow[r, "\operatorname{pr}^*", "\simeq"'] &[-10pt] IS(F) \arrow[dd, "\operatorname{\partial_1^*-\partial_0^*}"] & & \circled{1} \\
\\
& S(F)\arrow[rr] & & F
\end{tikzcd}
\end{equation}
\end{document}
Nhưng mũi tên uốn cong đi qua \circled{3}, tôi muốn di chuyển nó sang trái theo cách thủ công để tránh va chạm với mũi tên. CHỈNH SỬA: Bây giờ mũi tên uốn cong không va chạm, nhưng \circled{3}nhỏ hơn những mũi tên khác.
Sử dụng câu hỏi được liên kết, tôi có thể làm điều gì đó như
\begin{equation}
\begin{tikzcd}
& IS(F) \arrow[rrr] \arrow[d, "\operatorname{id}"]\arrow[dd, bend left = 75, "0"]&[-30pt] & & I(F)\\
S(F) & IS(F) \arrow[d, "\partial_1^*-\partial_0^*"]&\circled{3}& \circled{1}& \\
& S(F) &&& F \\
\end{tikzcd}
\end{equtation}
Điều này dường như hoạt động, ngoại trừ khi tôi thêm một hàng trên cùng, nó sẽ bị hỏng:
\begin{equation}
\begin{tikzcd}
& S(F) & F \\
& IS(F) \arrow[rrr] \arrow[d, "\operatorname{id}"]\arrow[dd, bend left = 75, "0"]&[-30pt] & & I(F)\\
S(F) & IS(F) \arrow[d, "\partial_1^*-\partial_0^*"]&\circled{3}& \circled{1}& \\
& S(F) &&& F \\
\end{tikzcd}
\end{equation}
Bất kỳ trợ giúp được đánh giá cao!
Trả lời
Như đã giải thích trong các bình luận, vấn đề là nó \circled{3}được đặt trong một ô và do đó không thể di chuyển được. Chỉ cần đặt một nút thứ hai ở mũi tên để đặt nút này 3ở vị trí mong muốn. Để làm điều này, một phong cách circled 2được tạo ra.
Tôi tô màu xanh lam để bạn có thể thấy những thay đổi. Tôi đã tạo một phong cách được gọi là circled 2. Mã được nhận xét với%<--
\documentclass[a41empaperpt]{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\tikzset{circled 2/.style={draw,circle,font=\normalsize,inner sep=2pt}} %<-- new style circled 2
\begin{document}
\begin{equation}
\begin{tikzcd}
& S(F) \arrow[ddddl, "\operatorname{id}"']\arrow[dd, "\operatorname{pr}^*"] \arrow{rr} & & F \arrow[dd, "\operatorname{pr}^*"]\rar{R} & Z(F) \arrow[ddddddl, bend left = 75, dotted, "\beta"]\arrow[dd, "\operatorname{pr}^*"] \\
& & \circled{2} & & \\
& IS(F) \arrow[ddl, "\partial_0^*", "\simeq"' ] \arrow[dddd,blue, bend left = 90, "0", "3"{circled 2,swap,xshift=-2pt}] \arrow[dd, "\operatorname{id}"]\arrow[rr] & & I(F) \arrow[dddd, bend left = 30, "\partial_1^*-\partial_0^*"] \rar{R} & IZ(F) \arrow[ddddl, bend left = 45, dotted, "\alpha"]\\
\\
S(F) \arrow[ddr, "0"']\arrow[r, "\operatorname{pr}^*", "\simeq"'] &[-10pt] IS(F) \arrow[dd, "\operatorname{\partial_1^*-\partial_0^*}"] & & \circled{1} \\
\\
& S(F)\arrow[rr] & & F
\end{tikzcd}
\end{equation}
\end{document}
Tôi tin rằng lỗi đến từ một số phụ '. Tôi đã xóa chúng và thực hiện một số thay đổi nhỏ trong mã của bạn, bạn có thể dễ dàng tìm thấy các thay đổi: some {name=...}, an |[alias=is]|. Tôi đã đặt các số được khoanh tròn bằng cách sử dụng phím phantom, bạn có thể thấy công dụng của nó với mũi tên mới từ S(F)đến I(F)và hai mũi tên ở cuối.
\documentclass[a41empaperpt]{article}
\usepackage{tikz-cd}
\usepackage{amsmath}
\usepackage{tikz}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\begin{document}
\begin{equation}
\begin{tikzcd}[row sep=5em]
& S(F)\arrow[rr] \arrow[d,"\operatorname{pr}^*"]
\arrow[ddl,"\operatorname{id}"swap]
\arrow[rrd,phantom,"\circled{2}"]
&& F\arrow[r,"R"]\arrow[d,"\operatorname{pr}^*"]
& Z(F)\arrow[d,"\operatorname{pr}^*"]
\arrow[dddl, bend left = 75, dotted, "\beta"] \\
&IS(F)\arrow[rr] \arrow[d,"\operatorname{id}"]
\arrow[dl,"\partial_0^*", "\simeq"swap]
\arrow[dd,bend left = 90, "0"{name=0},""{name=o,left}]
&& I(F)\arrow[r,"R"]
\arrow[dd,bend left = 30, "\partial_1^*-\partial_0^*",""{name=p,left}]
& IZ(F)\arrow[ddl, bend left = 45, dotted, "\alpha"]\\
S(F)\arrow[r,"\operatorname{pr}^*", "\simeq"swap] \arrow[dr,"0"swap]
& |[alias=is]| IS(F)\arrow[d,"\operatorname{\partial_1^*-\partial_0^*}"]\\
& S(F)\arrow[rr]
&& F
\arrow[Rightarrow,from=0,to=p,phantom,"\circled{1}"]
\arrow[Rightarrow,from=is,to=o,phantom,"\circled{3}"]
\end{tikzcd}
\end{equation}
\end{document}
Các số được khoanh tròn luôn xuất hiện ở chính giữa các nhãn tương ứng. Lưu ý rằng bạn không cần thêm hàng để đặt chúng. Tôi cũng đã thêm swapvào các mũi tên ngoài cùng bên trái, tôi tin rằng nó sẽ đẹp hơn nếu các mũi tên idvà 0được đặt bên ngoài các hình tam giác.