How to delete unnecessary white space?
You need to put the matrix somewhere, e.g. using \rput
. This is the way to nest pspicture
s.
\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}
If you make the picture smaller, it will become smaller.
\begin{pspicture}[showgrid,arrowinset=0](-.5,-0.3)(3,2)
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}
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}
\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
.