1

How to draw the product topology diagram for $R^3$? How to draw this figure?

enter image description here

  • 2
    With use of tikz-cd this should not be so difficult ... What you try so far? – Zarko Feb 22 at 21:03
  • There is also xy package :-))) used very rarely but it gives the same results even if it's a bit complicated. – Sebastiano Feb 22 at 21:14
  • xy is not as good as tikz-cd.Try drawing monomorphisms or inclusions and you will see that the spacing is not right – Luis Turcio Feb 23 at 1:56
  • [for posterity] Questions about how to draw specific graphics that just post an image of the desired result are really not reasonable questions to ask on the site. Please post a minimal compilable document showing that you've tried to produce the image and then people will be happy to help you with any specific problems you may have. See minimal working example (MWE) for what needs to go into such a document. – Alessandro Cuttin Mar 17 at 11:29
7

This is a small variation of this answer. One thing that requires a bit attention is the left-aligned column, which one gets with

/tikz/column 2/.style={nodes={align=left,text width={width("$\realR^3=\realR\times\realR\times\realR$")}}}

Code (with two different double-stroke R's)

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{dsfont}
\newcommand{\realR}{\mathds{R}}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[row sep=2em,column sep=2.5em,
    /tikz/column 2/.style={nodes={align=left,text width={width("$\realR^3=\realR\times\realR\times\realR$")}}}]
 & \realR & \\
 \mathcal{W} \arrow[ur,out=80,in=180,"g_1"] \arrow[dr,out=-80,in=180,"g_2"]
 \arrow[rr,out=-90,in=-110,"g_3",overlay] \arrow[r,dashed,"g"] 
 & \realR^3=\realR\times\realR\times\realR \arrow[r,"Pr_3"]
 & \realR\\
 & \realR & \\
\end{tikzcd}\]
Or with another double-stroke R\renewcommand{\realR}{\mathbb{R}}
\[\begin{tikzcd}[row sep=2em,column sep=2.5em,
    /tikz/column 2/.style={nodes={align=left,text width={width("$\realR^3=\realR\times\realR\times\realR$")}}}]
 & \realR & \\
 \mathcal{W} \arrow[ur,out=80,in=180,"g_1"] \arrow[dr,out=-80,in=180,"g_2"]
 \arrow[rr,out=-90,in=-110,"g_3",overlay] \arrow[r,dashed,"g"] 
 & \realR^3=\realR\times\realR\times\realR \arrow[r,"Pr_3"]
 & \realR\\
 & \realR & \\
\end{tikzcd}\]
\end{document}

enter image description here

Addendum: a supplement to Zarko's answer, in which the shift of the arrows gets computed from the inner sep, outer sep and the width of the real R. ;-)

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{dsfont}
\newcommand{\realR}{\mathds{R}}
\usepackage{tikz-cd}
\begin{document}
\[\begin{tikzcd}[row sep=2em,column sep=2.5em,
    /tikz/column 2/.style={nodes={align=left,text width={width("$\realR^3=\realR\times\realR\times\realR$")}}}]
 & \realR & \\
 \mathcal{W} \arrow[ur,out=80,in=180,"g_1"] \arrow[dr,out=-80,in=180,"g_2"]
 \arrow[rr,out=-90,in=-110,"g_3",overlay] \arrow[r,dashed,"g"] 
 & \realR^3=\realR\times\realR\times\realR \arrow[r,"Pr_3"]
 % shift by half the width of the letter R + inner sep + outer sep (both equal 2pt)
 \arrow[u,start anchor={[xshift={width("$\realR$")/2+4pt}]north west},
    end anchor={[xshift={width("$\realR$")/2+4pt}]south west},"P_{p_1}"']
 \arrow[d,start anchor={[xshift={width("$\realR$")/2+4pt}]south west},
    end anchor={[xshift={width("$\realR$")/2+4pt}]north west},"P_{p_2}"]
 & \realR\\
 & \realR &\\
\end{tikzcd}\]
Or with another double-stroke R\renewcommand{\realR}{\mathbb{R}}
\[\begin{tikzcd}[row sep=2em,column sep=2.5em,
    /tikz/column 2/.style={nodes={align=left,text width={width("$\realR^3=\realR\times\realR\times\realR$")}}}]
 & \realR & \\
 \mathcal{W} \arrow[ur,out=80,in=180,"g_1"] \arrow[dr,out=-80,in=180,"g_2"]
 \arrow[rr,out=-90,in=-110,"g_3",overlay] \arrow[r,dashed,"g"] 
 & \realR^3=\realR\times\realR\times\realR \arrow[r,"Pr_3"]
 % shift by half the width of the letter R + inner sep + outer sep (both equal 2pt)
 \arrow[u,start anchor={[xshift={width("$\realR$")/2+4pt}]north west},
    end anchor={[xshift={width("$\realR$")/2+4pt}]south west},"P_{p_1}"']
 \arrow[d,start anchor={[xshift={width("$\realR$")/2+4pt}]south west},
    end anchor={[xshift={width("$\realR$")/2+4pt}]north west},"P_{p_2}"]
 & \realR\\
 & \realR & \\
\end{tikzcd}\]
\end{document}

enter image description here

|improve this answer|||||
4

As supplement to @Schrödinger's cat's answer. Added are vertical lines labeled P_{r_1} and P_{r_2} (which are shown in OP image but not in his answer) and made some small changes in image code:

\documentclass[margin=3mm,varwidth]{standalone}
\usepackage{tikz-cd}
\usepackage{amssymb}

\begin{document}
    \[
\begin{tikzcd}[row sep=huge,
/tikz/column 2/.style={nodes={text width = {width("$\mathbb{R}^3= \mathbb{R}\times\mathbb{R}\times\mathbb{R}$")}}},
                    ]
    & \mathbb{R} 
      \ar[d,start anchor={[xshift=1em]south west},  
              end anchor={[xshift=1em]north west}, "P_{r_1}",<-] 
                        &               \\
\mathcal{W} \ar[ur,bend left,"g_1"] 
            \ar[r,dashed,"g"]
            \ar[dr,bend right,"g_2"]
            \ar[rr,bend right=90,"g_3",looseness=1.5] 
    & \mathbb{R}^3=\mathbb{R}\times\mathbb{R}\times\mathbb{R} 
      \ar[r,"P_{r_3}"]  & \mathbb{R}    \\
    & \mathbb{R}
      \ar[u,start anchor={[xshift=1em]north west},
              end anchor={[xshift=1em]south west}, "P_{r_2}" ',<-]
                        &               \\
\end{tikzcd}
    \]    
\end{document}

enter image description here

|improve this answer|||||
3

I will add the worst answer here because I don't like diagrams with many curved arrows or that g_2 is so close to g_3.

\documentclass{article}

\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{tikz-cd}

\begin{document}

\begin{tikzcd}
& \mathbb{R}^3\\
W\ar{ru}{g_1}\ar[dashed]{r}[description]{g}\ar{rd}[swap]{g_2}\ar[out=270,in=270]{rrr}
& \mathbb{R}^3\ar{u}[swap]{pr_1}\ar{d}{pr_2}
&[-11mm] =\mathbb{R}\times\mathbb{R}\times\mathbb{R}\ar{r}{pr_3}
&\mathbb{R}\\
& \mathbb{R}
\end{tikzcd}


\end{document}

enter image description here

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.