Как предотвратить смещение метки узла влево?

Как предотвратить смещение метки узла влево?
\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}

введите описание изображения здесь

Как предотвратить смещение метки узла R_{i,j,k,l}влево без использования PointNameSep?

решение1

Конечно, это не баг, а неопознанная фича ;)

Вы можете определить новый ключ, например, PointNameAlignи переопределить его \Pst@PutPointLabel, чтобы использовать этот ключ в качестве параметра выравнивания для \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}

Единственное отличие от исходного определения — это [\psk@PointNameAlign].

введите описание изображения здесь

решение2

Причина в том, что, как я понимаю, размещение меток зависит от \rput. Значение по умолчанию PointNameSepравно 1em, а затем сама метка размещается на leftпозиции, определенной таким образом. Она должна быть справа для меток справа от точки и слева для меток слева. Одно из решений — увеличить значение PointNameSep методом проб и ошибок; другое — установить PointName=noneи использовать \uput. Оба решения проиллюстрированы с помощью этого кода:

    \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} 

введите описание изображения здесь

Связанный контент