How to draw this diagram with tikzcd or other packagesSetting the name of matrix in tikz-cdHow to delete unnecessary white space?how to combine features of tikz-picture with tikz-cdPullback diagram of moduli spacesHow do I draw parallel arrows in commutative diagrams with TikZ?How to draw labeled parallel arrows in commutative diagram with TikZ?How to draw this pyramid with TeX?Cannot draw this diagram using tikz-cdDraw syntax diagram with tikzHow to draw rectangular boxes with TikZ?Remove vertical spacing between normal text line and loop made with tikzcdCan I draw this diagram in Tikz?tex studio not comfortable with tikzcd?How can I fix the label locations on my tikzcd diagram?

How to avoid typing 'git' at the begining of every Git command

Is it safe to dpkg --set-selections on a newer version of a distro?

Etymology of the expression "to entertain an idea"

How to show a "node near coord" even when it is out of bounds (with clip = true)?

How can powerful telekinesis avoid violating Newton's 3rd Law?

C++ logging library

In The Incredibles 2, why does Screenslaver's name use a pun on something that doesn't exist in the 1950s pastiche?

Why is my power MOSFET heating up when on?

What do you call the action of "describing events as they happen" like sports anchors do?

Course development: can I pay someone to make slides for the course?

Print "N NE E SE S SW W NW"

What is this object?

What do I need to do, tax-wise, for a sudden windfall?

one-hot-encoding categorical data gives error

How (un)safe is it to ride barefoot?

What's the difference between DHCP and NAT? Are they mutually exclusive?

In Pandemic, why take the extra step of eradicating a disease after you've cured it?

Enchiridion, 16: Does a stoic moan, or not?

In American Politics, why is the Justice Department under the President?

That's not my X, its Y is too Z

Can a Warforged suffer from magical exhaustion?

How can you estimate a spike story?

What does this line mean in Zelazny's "The Courts of Chaos"?

Create a cube from identical 3D objects



How to draw this diagram with tikzcd or other packages


Setting the name of matrix in tikz-cdHow to delete unnecessary white space?how to combine features of tikz-picture with tikz-cdPullback diagram of moduli spacesHow do I draw parallel arrows in commutative diagrams with TikZ?How to draw labeled parallel arrows in commutative diagram with TikZ?How to draw this pyramid with TeX?Cannot draw this diagram using tikz-cdDraw syntax diagram with tikzHow to draw rectangular boxes with TikZ?Remove vertical spacing between normal text line and loop made with tikzcdCan I draw this diagram in Tikz?tex studio not comfortable with tikzcd?How can I fix the label locations on my tikzcd diagram?













4















I just could draw the one with four arrows up parallel with one longer down also with appropriate spacing:



enter image description here.










share|improve this question









New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.














  • 1





    I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

    – schtandard
    Jun 6 at 10:57











  • I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

    – Phelype Oleinik
    Jun 7 at 13:12












  • I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

    – marmot
    Jun 7 at 16:24















4















I just could draw the one with four arrows up parallel with one longer down also with appropriate spacing:



enter image description here.










share|improve this question









New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.














  • 1





    I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

    – schtandard
    Jun 6 at 10:57











  • I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

    – Phelype Oleinik
    Jun 7 at 13:12












  • I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

    – marmot
    Jun 7 at 16:24













4












4








4








I just could draw the one with four arrows up parallel with one longer down also with appropriate spacing:



enter image description here.










share|improve this question









New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I just could draw the one with four arrows up parallel with one longer down also with appropriate spacing:



enter image description here.







tikz-pgf tikz-cd






share|improve this question









New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.










share|improve this question









New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








share|improve this question




share|improve this question








edited Jun 7 at 13:31







Upc













New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








asked Jun 4 at 20:15









UpcUpc

1484




1484




New contributor



Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




New contributor




Upc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









  • 1





    I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

    – schtandard
    Jun 6 at 10:57











  • I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

    – Phelype Oleinik
    Jun 7 at 13:12












  • I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

    – marmot
    Jun 7 at 16:24












  • 1





    I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

    – schtandard
    Jun 6 at 10:57











  • I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

    – Phelype Oleinik
    Jun 7 at 13:12












  • I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

    – marmot
    Jun 7 at 16:24







1




1





I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

– schtandard
Jun 6 at 10:57





I voted to keep this question open because, while this different question (and its answers) contains exaclty the same drawing, the question itself is distinct. If anyone wants to add another possibility to draw this in the future, I would say that the new answer should go here, not there. (Though the usefulness of a "How to draw this" question in general is, of course, dubious.)

– schtandard
Jun 6 at 10:57













I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

– Phelype Oleinik
Jun 7 at 13:12






I voted to reopen the question because it does not fit the duplicate and because it has good answers. However I think you should ask a new question instead of editing this one...

– Phelype Oleinik
Jun 7 at 13:12














I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

– marmot
Jun 7 at 16:24





I reopened the question because the post that this was suggested to be a duplicate of really was on something completely different.

– marmot
Jun 7 at 16:24










3 Answers
3






active

oldest

votes


















7














Not trivial…



The timesmathbbP^1 part is set in a zero width box.



documentclassarticle
usepackageamsmath,mathtools,amssymb,tikz-cd

begindocument

begintikzcd[row sep=3em,column sep=3em]
& M_0,4mathrlaptimesmathbbP^1
arrow[d,"pi"',";bigguparrowbigguparrowbigguparrowbigguparrowsigma_i"]
\
B arrow[r,"kappa"'] & M_0,4
endtikzcd

enddocument


There are possibly different ways.



enter image description here






share|improve this answer























  • @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

    – Upc
    Jun 7 at 13:58


















6














With this answer it is very easy. You can use the nodes for anything you want.



documentclassarticle
usepackagetikz-cd
usepackageamsmath,amssymb
begindocument
begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
foreach X in 1,2,3,4
draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
(aux-X) --
(aux-X
]
& |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1
arrow[d,"pi" swap] \
B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
endtikzcd

begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
foreach X in 1,2,3,4
draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
(aux-X) to[out=-90,in=80-X*10] (M2)
ifnumX=4
node[midway,right] $sigma_i$
fi;
]
& |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1arrow[d,"pi" swap] \
B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
endtikzcd

begintikzcd[column sep=4.5em,row sep=2.5em,execute at end picture=
foreach Y in 1,2 foreach X in 1,2,3,4
-M2Y.north)
ifnumX=4
node[midway,right] $sigma_iifnumY=1 'fi$
fi;
]
|[alias=M11,text width=width("$B'$")]|B'times mathbbP^1
arrow[r,shorten <=2.1em] arrow[d,"pi'" swap]
& |[alias=M12,text width=width("$B$")]|Btimes mathbbP^1arrow[d,"pi" swap] \
|[alias=M21]| B' arrow[r,"phi" swap] & |[alias=M22]| B \
endtikzcd
enddocument


enter image description here



As you can see more clearly in the second example, the advantage of this hybrid approach is that you have access to the full TikZ machinery while keeping the tikz-cd functionality.






share|improve this answer

























  • If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

    – marmot
    Jun 4 at 20:42











  • @marmor: This is nice too. Can this be modified to my need as I discribed again?

    – Upc
    Jun 7 at 12:19











  • @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

    – marmot
    Jun 7 at 14:18


















3














TikZ is enough for (most) block figures.



documentclass[tikz,border=5mm]standalone
usepackageamsmath,amssymb
begindocument
begintikzpicture[>=latex]
path
(0,0) node (M) $M_0,4$
+(180:2) node (B) $B$
++(90:1.5)+(0:.3) node (P)
$M_0,4times mathbbP^1$;

draw[->] (B)--(M) node[below,midway]$kappa$;
draw[<-,shorten >=2mm] (M.120)--(P-|M.120)
node[left,midway]$pi$;
foreach i in 0,1,2
draw[->] (M.45)++(90:1mm)++(0:i*1.5mm)--+(90:.8);
draw[->] (M.45)++(90:1mm)++(0:3*1.5mm)--+(90:.8)
node[right,midway]$sigma_i$;
endtikzpicture
enddocument


enter image description here






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "85"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );






    Upc is a new contributor. Be nice, and check out our Code of Conduct.









    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f494210%2fhow-to-draw-this-diagram-with-tikzcd-or-other-packages%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    7














    Not trivial…



    The timesmathbbP^1 part is set in a zero width box.



    documentclassarticle
    usepackageamsmath,mathtools,amssymb,tikz-cd

    begindocument

    begintikzcd[row sep=3em,column sep=3em]
    & M_0,4mathrlaptimesmathbbP^1
    arrow[d,"pi"',";bigguparrowbigguparrowbigguparrowbigguparrowsigma_i"]
    \
    B arrow[r,"kappa"'] & M_0,4
    endtikzcd

    enddocument


    There are possibly different ways.



    enter image description here






    share|improve this answer























    • @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

      – Upc
      Jun 7 at 13:58















    7














    Not trivial…



    The timesmathbbP^1 part is set in a zero width box.



    documentclassarticle
    usepackageamsmath,mathtools,amssymb,tikz-cd

    begindocument

    begintikzcd[row sep=3em,column sep=3em]
    & M_0,4mathrlaptimesmathbbP^1
    arrow[d,"pi"',";bigguparrowbigguparrowbigguparrowbigguparrowsigma_i"]
    \
    B arrow[r,"kappa"'] & M_0,4
    endtikzcd

    enddocument


    There are possibly different ways.



    enter image description here






    share|improve this answer























    • @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

      – Upc
      Jun 7 at 13:58













    7












    7








    7







    Not trivial…



    The timesmathbbP^1 part is set in a zero width box.



    documentclassarticle
    usepackageamsmath,mathtools,amssymb,tikz-cd

    begindocument

    begintikzcd[row sep=3em,column sep=3em]
    & M_0,4mathrlaptimesmathbbP^1
    arrow[d,"pi"',";bigguparrowbigguparrowbigguparrowbigguparrowsigma_i"]
    \
    B arrow[r,"kappa"'] & M_0,4
    endtikzcd

    enddocument


    There are possibly different ways.



    enter image description here






    share|improve this answer













    Not trivial…



    The timesmathbbP^1 part is set in a zero width box.



    documentclassarticle
    usepackageamsmath,mathtools,amssymb,tikz-cd

    begindocument

    begintikzcd[row sep=3em,column sep=3em]
    & M_0,4mathrlaptimesmathbbP^1
    arrow[d,"pi"',";bigguparrowbigguparrowbigguparrowbigguparrowsigma_i"]
    \
    B arrow[r,"kappa"'] & M_0,4
    endtikzcd

    enddocument


    There are possibly different ways.



    enter image description here







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Jun 4 at 20:26









    egregegreg

    748k8919543296




    748k8919543296












    • @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

      – Upc
      Jun 7 at 13:58

















    • @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

      – Upc
      Jun 7 at 13:58
















    @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

    – Upc
    Jun 7 at 13:58





    @Sigur: This works totally well. But I wanted the pullback diagram. The "bug" refers to the arrow problem. I edited here, but someone suggested me to post a new question. So I deleted it. I think you saw my new post too.

    – Upc
    Jun 7 at 13:58











    6














    With this answer it is very easy. You can use the nodes for anything you want.



    documentclassarticle
    usepackagetikz-cd
    usepackageamsmath,amssymb
    begindocument
    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) --
    (aux-X
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1
    arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) to[out=-90,in=80-X*10] (M2)
    ifnumX=4
    node[midway,right] $sigma_i$
    fi;
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=4.5em,row sep=2.5em,execute at end picture=
    foreach Y in 1,2 foreach X in 1,2,3,4
    -M2Y.north)
    ifnumX=4
    node[midway,right] $sigma_iifnumY=1 'fi$
    fi;
    ]
    |[alias=M11,text width=width("$B'$")]|B'times mathbbP^1
    arrow[r,shorten <=2.1em] arrow[d,"pi'" swap]
    & |[alias=M12,text width=width("$B$")]|Btimes mathbbP^1arrow[d,"pi" swap] \
    |[alias=M21]| B' arrow[r,"phi" swap] & |[alias=M22]| B \
    endtikzcd
    enddocument


    enter image description here



    As you can see more clearly in the second example, the advantage of this hybrid approach is that you have access to the full TikZ machinery while keeping the tikz-cd functionality.






    share|improve this answer

























    • If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

      – marmot
      Jun 4 at 20:42











    • @marmor: This is nice too. Can this be modified to my need as I discribed again?

      – Upc
      Jun 7 at 12:19











    • @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

      – marmot
      Jun 7 at 14:18















    6














    With this answer it is very easy. You can use the nodes for anything you want.



    documentclassarticle
    usepackagetikz-cd
    usepackageamsmath,amssymb
    begindocument
    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) --
    (aux-X
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1
    arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) to[out=-90,in=80-X*10] (M2)
    ifnumX=4
    node[midway,right] $sigma_i$
    fi;
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=4.5em,row sep=2.5em,execute at end picture=
    foreach Y in 1,2 foreach X in 1,2,3,4
    -M2Y.north)
    ifnumX=4
    node[midway,right] $sigma_iifnumY=1 'fi$
    fi;
    ]
    |[alias=M11,text width=width("$B'$")]|B'times mathbbP^1
    arrow[r,shorten <=2.1em] arrow[d,"pi'" swap]
    & |[alias=M12,text width=width("$B$")]|Btimes mathbbP^1arrow[d,"pi" swap] \
    |[alias=M21]| B' arrow[r,"phi" swap] & |[alias=M22]| B \
    endtikzcd
    enddocument


    enter image description here



    As you can see more clearly in the second example, the advantage of this hybrid approach is that you have access to the full TikZ machinery while keeping the tikz-cd functionality.






    share|improve this answer

























    • If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

      – marmot
      Jun 4 at 20:42











    • @marmor: This is nice too. Can this be modified to my need as I discribed again?

      – Upc
      Jun 7 at 12:19











    • @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

      – marmot
      Jun 7 at 14:18













    6












    6








    6







    With this answer it is very easy. You can use the nodes for anything you want.



    documentclassarticle
    usepackagetikz-cd
    usepackageamsmath,amssymb
    begindocument
    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) --
    (aux-X
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1
    arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) to[out=-90,in=80-X*10] (M2)
    ifnumX=4
    node[midway,right] $sigma_i$
    fi;
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=4.5em,row sep=2.5em,execute at end picture=
    foreach Y in 1,2 foreach X in 1,2,3,4
    -M2Y.north)
    ifnumX=4
    node[midway,right] $sigma_iifnumY=1 'fi$
    fi;
    ]
    |[alias=M11,text width=width("$B'$")]|B'times mathbbP^1
    arrow[r,shorten <=2.1em] arrow[d,"pi'" swap]
    & |[alias=M12,text width=width("$B$")]|Btimes mathbbP^1arrow[d,"pi" swap] \
    |[alias=M21]| B' arrow[r,"phi" swap] & |[alias=M22]| B \
    endtikzcd
    enddocument


    enter image description here



    As you can see more clearly in the second example, the advantage of this hybrid approach is that you have access to the full TikZ machinery while keeping the tikz-cd functionality.






    share|improve this answer















    With this answer it is very easy. You can use the nodes for anything you want.



    documentclassarticle
    usepackagetikz-cd
    usepackageamsmath,amssymb
    begindocument
    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) --
    (aux-X
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1
    arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=2.5em,row sep=2.5em,execute at end picture=
    foreach X in 1,2,3,4
    draw[latex-,shorten >=1pt,shorten <=1pt] ([xshift=X*1ex-1ex]M1.south east) coordinate
    (aux-X) to[out=-90,in=80-X*10] (M2)
    ifnumX=4
    node[midway,right] $sigma_i$
    fi;
    ]
    & |[alias=M1,text width=width("$M_0,4$")]|M_0,4times mathbbP^1arrow[d,"pi" swap] \
    B arrow[r,"kappa" swap] & |[alias=M2]| M_0,4 \
    endtikzcd

    begintikzcd[column sep=4.5em,row sep=2.5em,execute at end picture=
    foreach Y in 1,2 foreach X in 1,2,3,4
    -M2Y.north)
    ifnumX=4
    node[midway,right] $sigma_iifnumY=1 'fi$
    fi;
    ]
    |[alias=M11,text width=width("$B'$")]|B'times mathbbP^1
    arrow[r,shorten <=2.1em] arrow[d,"pi'" swap]
    & |[alias=M12,text width=width("$B$")]|Btimes mathbbP^1arrow[d,"pi" swap] \
    |[alias=M21]| B' arrow[r,"phi" swap] & |[alias=M22]| B \
    endtikzcd
    enddocument


    enter image description here



    As you can see more clearly in the second example, the advantage of this hybrid approach is that you have access to the full TikZ machinery while keeping the tikz-cd functionality.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Jun 7 at 14:15

























    answered Jun 4 at 20:32









    marmotmarmot

    135k6175323




    135k6175323












    • If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

      – marmot
      Jun 4 at 20:42











    • @marmor: This is nice too. Can this be modified to my need as I discribed again?

      – Upc
      Jun 7 at 12:19











    • @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

      – marmot
      Jun 7 at 14:18

















    • If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

      – marmot
      Jun 4 at 20:42











    • @marmor: This is nice too. Can this be modified to my need as I discribed again?

      – Upc
      Jun 7 at 12:19











    • @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

      – marmot
      Jun 7 at 14:18
















    If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

    – marmot
    Jun 4 at 20:42





    If you use foreach X in 1,2,3,4 -tikzcdmatrixname-2-2.north) ifnumX=4 node[midway,right] $sigma_i$ fi; the arrows resemble those on your screen shot even more.

    – marmot
    Jun 4 at 20:42













    @marmor: This is nice too. Can this be modified to my need as I discribed again?

    – Upc
    Jun 7 at 12:19





    @marmor: This is nice too. Can this be modified to my need as I discribed again?

    – Upc
    Jun 7 at 12:19













    @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

    – marmot
    Jun 7 at 14:18





    @Upc I added this here. With shorten you can also fix your code that is based on egreg's answer but IMHO on the long run you may want to switch to the execute at end picture because you can access all features of TikZ, or use TikZ only, as in Black Mild's nice answer.

    – marmot
    Jun 7 at 14:18











    3














    TikZ is enough for (most) block figures.



    documentclass[tikz,border=5mm]standalone
    usepackageamsmath,amssymb
    begindocument
    begintikzpicture[>=latex]
    path
    (0,0) node (M) $M_0,4$
    +(180:2) node (B) $B$
    ++(90:1.5)+(0:.3) node (P)
    $M_0,4times mathbbP^1$;

    draw[->] (B)--(M) node[below,midway]$kappa$;
    draw[<-,shorten >=2mm] (M.120)--(P-|M.120)
    node[left,midway]$pi$;
    foreach i in 0,1,2
    draw[->] (M.45)++(90:1mm)++(0:i*1.5mm)--+(90:.8);
    draw[->] (M.45)++(90:1mm)++(0:3*1.5mm)--+(90:.8)
    node[right,midway]$sigma_i$;
    endtikzpicture
    enddocument


    enter image description here






    share|improve this answer



























      3














      TikZ is enough for (most) block figures.



      documentclass[tikz,border=5mm]standalone
      usepackageamsmath,amssymb
      begindocument
      begintikzpicture[>=latex]
      path
      (0,0) node (M) $M_0,4$
      +(180:2) node (B) $B$
      ++(90:1.5)+(0:.3) node (P)
      $M_0,4times mathbbP^1$;

      draw[->] (B)--(M) node[below,midway]$kappa$;
      draw[<-,shorten >=2mm] (M.120)--(P-|M.120)
      node[left,midway]$pi$;
      foreach i in 0,1,2
      draw[->] (M.45)++(90:1mm)++(0:i*1.5mm)--+(90:.8);
      draw[->] (M.45)++(90:1mm)++(0:3*1.5mm)--+(90:.8)
      node[right,midway]$sigma_i$;
      endtikzpicture
      enddocument


      enter image description here






      share|improve this answer

























        3












        3








        3







        TikZ is enough for (most) block figures.



        documentclass[tikz,border=5mm]standalone
        usepackageamsmath,amssymb
        begindocument
        begintikzpicture[>=latex]
        path
        (0,0) node (M) $M_0,4$
        +(180:2) node (B) $B$
        ++(90:1.5)+(0:.3) node (P)
        $M_0,4times mathbbP^1$;

        draw[->] (B)--(M) node[below,midway]$kappa$;
        draw[<-,shorten >=2mm] (M.120)--(P-|M.120)
        node[left,midway]$pi$;
        foreach i in 0,1,2
        draw[->] (M.45)++(90:1mm)++(0:i*1.5mm)--+(90:.8);
        draw[->] (M.45)++(90:1mm)++(0:3*1.5mm)--+(90:.8)
        node[right,midway]$sigma_i$;
        endtikzpicture
        enddocument


        enter image description here






        share|improve this answer













        TikZ is enough for (most) block figures.



        documentclass[tikz,border=5mm]standalone
        usepackageamsmath,amssymb
        begindocument
        begintikzpicture[>=latex]
        path
        (0,0) node (M) $M_0,4$
        +(180:2) node (B) $B$
        ++(90:1.5)+(0:.3) node (P)
        $M_0,4times mathbbP^1$;

        draw[->] (B)--(M) node[below,midway]$kappa$;
        draw[<-,shorten >=2mm] (M.120)--(P-|M.120)
        node[left,midway]$pi$;
        foreach i in 0,1,2
        draw[->] (M.45)++(90:1mm)++(0:i*1.5mm)--+(90:.8);
        draw[->] (M.45)++(90:1mm)++(0:3*1.5mm)--+(90:.8)
        node[right,midway]$sigma_i$;
        endtikzpicture
        enddocument


        enter image description here







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jun 6 at 9:04









        Black MildBlack Mild

        891712




        891712




















            Upc is a new contributor. Be nice, and check out our Code of Conduct.









            draft saved

            draft discarded


















            Upc is a new contributor. Be nice, and check out our Code of Conduct.












            Upc is a new contributor. Be nice, and check out our Code of Conduct.











            Upc is a new contributor. Be nice, and check out our Code of Conduct.














            Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f494210%2fhow-to-draw-this-diagram-with-tikzcd-or-other-packages%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Get product attribute by attribute group code in magento 2get product attribute by product attribute group in magento 2Magento 2 Log Bundle Product Data in List Page?How to get all product attribute of a attribute group of Default attribute set?Magento 2.1 Create a filter in the product grid by new attributeMagento 2 : Get Product Attribute values By GroupMagento 2 How to get all existing values for one attributeMagento 2 get custom attribute of a single product inside a pluginMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?Magento2: how to develop rest API to get new productsGet product attribute by attribute group code ( [attribute_group_code] ) in magento 2

            Category:9 (number) SubcategoriesMedia in category "9 (number)"Navigation menuUpload mediaGND ID: 4485639-8Library of Congress authority ID: sh85091979ReasonatorScholiaStatistics

            Magento 2.3: How do i solve this, Not registered handle, on custom form?How can i rewrite TierPrice Block in Magento2magento 2 captcha not rendering if I override layout xmlmain.CRITICAL: Plugin class doesn't existMagento 2 : Problem while adding custom button order view page?Magento 2.2.5: Overriding Admin Controller sales/orderMagento 2.2.5: Add, Update and Delete existing products Custom OptionsMagento 2.3 : File Upload issue in UI Component FormMagento2 Not registered handleHow to configured Form Builder Js in my custom magento 2.3.0 module?Magento 2.3. How to create image upload field in an admin form