How to delete unnecessary white space?

You need to put the matrix somewhere, e.g. using \rput. This is the way to nest pspictures.

\documentclass[border=10pt]{standalone}
\usepackage{pstricks-add,amsmath,amssymb}
\begin{document}
\begin{pspicture}[showgrid,arrowinset=0](-.5,-1)(4,2)
\rput[bl](0,0){\begin{psmatrix}[colsep=.5cm,rowsep=1.2cm]
& [name=A]\,\,\,\,\,\,\,\,\,\,\,\,$M_{0,4} \times \mathbb{P}^1 $\\
[name=B]$B$ & [name=C]\,\,\,\,\,\,$M_{0,4}$
\end{psmatrix}}
\pcline[nodesep=.3]{->}(B)(C)       \nbput{$\kappa$}
\pcline[nodesep=.3]{->}(A)(C)       \nbput[labelsep=.1]{$\pi$}
\naput{\foreach \i in {0.1,0.25,0.4,0.55}{%
    \pcline{->}(\i,-.4)(\i,.45)} \nbput[labelsep=.1]{$\sigma_i$}}
\end{pspicture}
\end{document}

enter image description here

If you make the picture smaller, it will become smaller.

  \begin{pspicture}[showgrid,arrowinset=0](-.5,-0.3)(3,2)

enter image description here


It makes no sense to use the pspicture envorimnent in this case:

\documentclass[border=10pt]{standalone}
\usepackage{pst-node,amsmath,amssymb}
\begin{document}

\begin{psmatrix}[colsep=.5cm,rowsep=1.2cm]
& [name=A]\qquad$M_{0,4} \times \mathbb{P}^1 $\\
[name=B]$B$ & [name=C]\quad$M_{0,4}$
\end{psmatrix}
\pcline[nodesep=.3]{->}(B)(C)       \nbput{$\kappa$}
\pcline[nodesep=.3]{->}(A)(C)       \nbput[labelsep=.1]{$\pi$}
\naput{\foreach \i in {0.1,0.25,0.4,0.55}{%
    \pcline{->}(\i,-.4)(\i,.45)} \nbput[labelsep=.1]{$\sigma_i$}}

\end{document}

enter image description here

If you really need the grid, then write the \psmatrix, which is internally nothing else than an array, into a box of zero width:

\documentclass[border=10pt]{standalone}
\usepackage{pst-node,amsmath,amssymb}
\begin{document}

\begin{pspicture}[showgrid,arrowinset=0](0,-1)(4,2) 
\makebox[0pt][l]{%
\begin{psmatrix}[colsep=.5cm,rowsep=1.2cm]
    & [name=A]\qquad$M_{0,4} \times \mathbb{P}^1 $\\
    [name=B]$B$ & [name=C]\quad$M_{0,4}$
\end{psmatrix}}
\pcline[nodesep=.3]{->}(B)(C)       \nbput{$\kappa$}
\pcline[nodesep=.3]{->}(A)(C)       \nbput[labelsep=.1]{$\pi$}
\naput{\foreach \i in {0.1,0.25,0.4,0.55}{%
    \pcline{->}(\i,-.4)(\i,.45)} \nbput[labelsep=.1]{$\sigma_i$}}
\end{pspicture}

\end{document}

enter image description here

\makebox does the same as \rput. It is the same behaviour as mentioned in your question Why do directly-inserted labels in pspicture displace other following objects? The array (\psmatrix) has a width and that's the reason why the old coordinate system is shifted to the right and you get the whitespace. Real PSTricks objects have no width. However, \psmatrix should not be inside pspicture.

Tags:

Pstricks