
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\begin{document}
\begin{pspicture}(3,4)
\pstGeonode(1,1){A_i}
\pstGeonode[PointName=A_j](1,2){Aj}
\pstGeonode[PointName=R_{i,j,k,l}](1,3){Rijkl}
\end{pspicture}
\end{document}
Wie verhindere ich, dass meine Knotenbezeichnung R_{i,j,k,l}
nach links verschoben wird, ohne zu verwenden PointNameSep
?
Antwort1
Natürlich handelt es sich hierbei nicht um einen Fehler, sondern um ein nicht identifiziertes Feature ;)
Sie können beispielsweise einen neuen Schlüssel definieren PointNameAlign
und neu definieren, \Pst@PutPointLabel
um diesen Schlüssel als Ausrichtungsparameter für Folgendes zu verwenden \rput
:
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-eucl}
\makeatletter
\define@key[psset]{pst-eucl}{PointNameAlign}{\edef\psk@PointNameAlign{#1}}%
\psset[pst-eucl]{PointNameAlign=c}
\def\Pst@PutPointLabel#1{%DR 041104
\ifx\psk@PointName\@none\else
\rput[\psk@PointNameAlign]{*0}([nodesep=\ifx\psk@PointNameSep\@default{1em}\else\psk@PointNameSep\fi,
angle=\ifx\psk@PosAngle\@undef{0}\else\psk@PosAngle\fi]#1)%
{\ifPst@PtNameMath$\Pst@WhichLabel{#1}$\else\Pst@WhichLabel{#1}\fi}
\fi}%
\makeatother
\begin{document}
\begin{pspicture}(3,4)
\psset[pst-eucl]{PointNameAlign=l}
\pstGeonode(1,1){A_i}
\pstGeonode[PointName=A_j](1,2){Aj}
\pstGeonode[PointName=R_{i,j,k,l}](1,3){Rijkl}
\end{pspicture}
\end{document}
Der einzige Unterschied zur ursprünglichen Definition ist das [\psk@PointNameAlign]
.
Antwort2
Der Grund dafür ist, dass, so wie ich es verstehe, die Platzierung der Beschriftungen von abhängt \rput
. Der Standardwert von PointNameSep
ist 1em, und dann wird die Beschriftung selbst an left
der so definierten Position platziert. Sie sollte rechts für Beschriftungen rechts vom Punkt sein und links für Beschriftungen links. Eine Lösung besteht darin, den Wert von PointNameSep durch Ausprobieren zu erhöhen; eine andere besteht darin, festzulegen PointName=none
und zu verwenden \uput
. Beide Lösungen werden mit diesem Code veranschaulicht:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage{pstricks}
\usepackage{pst-eucl}
\usepackage{auto-pst-pdf}
\begin{document}
\begin{pspicture}(0,0)(3,5)%
\pstGeonode(1,1){A_i}
\pstGeonode[PointName=A_j](1,2){Aj}
\pstGeonode[PointName=R_{i,j,k,l},PointNameSep =1.85em](1,3){Rijkl}
\pstGeonode[PointName=none](1,4){Sijkl}\uput{1pt}[r](Sijkl){$ S_{i,j,k,l} $}
\end{pspicture}
\end{document}