노드 레이블이 왼쪽으로 옮겨지는 것을 방지하는 방법은 무엇입니까?

노드 레이블이 왼쪽으로 옮겨지는 것을 방지하는 방법은 무엇입니까?
\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. 기본값은 PointNameSep1em이며, 라벨 자체는 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} 

여기에 이미지 설명을 입력하세요

관련 정보