PSTricks 图形两侧间距不等

PSTricks 图形两侧间距不等

摘自“PSTikZ 的答案”PSTricks 图形太大;正常缩放似乎不起作用“(并在\fbox其周围加上一个来说明问题),我得到以下内容:

\documentclass{article}

\usepackage{pstricks}

\begin{document}

\begin{figure}
\psset{
  unit=0.2,
  linewidth=1pt
}
\def\radius{19.2}
\def\lige{33.3}
\newlength\R \R=\radius\psunit
\newlength\hW \hW=\lige\psunit
\hW=0.5\hW
 \centering
\fbox{%
  \begin{pspicture}(-\dimexpr\hW+\R,-\radius)(\dimexpr\hW+\R,\radius)
   \psset{
     linecolor=red
   }
    \psarc( \hW,0){\R}{270}{90}
    \psarc(-\hW,0){\R}{90}{270}
    \psline(-\hW, \R)(\hW, \R)  
    \psline(-\hW,-\R)(\hW,-\R)
   \psset{
     linecolor=black,
     linestyle=dotted
   }
    \psline(-\hW,-\R)(-\hW,\R)
    \psline( \hW,-\R)( \hW,\R)
    \psline(\dimexpr-\hW-\R,0)(\dimexpr\hW+\R,0)
    \rput*(0,0){\lige\,cm}
    \rput*(\dimexpr-\hW-0.5\R,0){\radius\,cm}
    \rput*(\dimexpr \hW+0.5\R,0){\radius\,cm}
    \rput(-\hW,0){\textbf{+}}
    \rput( \hW,0){\textbf{+}}
  \end{pspicture}
}
\end{figure}

\end{document}

输出

为什么图右侧的空间比左侧的空间大?

PS 这是PSTricks 图片的普遍问题/“特征”。

答案1

;之后有一个虚假的空格\end{pspicture},请将其删除(例如,通过将其注释掉):

\documentclass{article}

\usepackage{pstricks}

\begin{document}

\begin{figure}
\psset{
  unit=0.2,
  linewidth=1pt
}
\def\radius{19.2}
\def\lige{33.3}
\newlength\R \R=\radius\psunit
\newlength\hW \hW=\lige\psunit
\hW=0.5\hW
 \centering
\fbox{%
  \begin{pspicture}(-\dimexpr\hW+\R,-\radius)(\dimexpr\hW+\R,\radius)
   \psset{
     linecolor=red
   }
    \psarc( \hW,0){\R}{270}{90}
    \psarc(-\hW,0){\R}{90}{270}
    \psline(-\hW, \R)(\hW, \R)  
    \psline(-\hW,-\R)(\hW,-\R)
   \psset{
     linecolor=black,
     linestyle=dotted
   }
    \psline(-\hW,-\R)(-\hW,\R)
    \psline( \hW,-\R)( \hW,\R)
    \psline(\dimexpr-\hW-\R,0)(\dimexpr\hW+\R,0)
    \rput*(0,0){\lige\,cm}
    \rput*(\dimexpr-\hW-0.5\R,0){\radius\,cm}
    \rput*(\dimexpr \hW+0.5\R,0){\radius\,cm}
    \rput(-\hW,0){\textbf{+}}
    \rput( \hW,0){\textbf{+}}
  \end{pspicture}%
}
\end{figure}

\end{document}

在此处输入图片描述

答案2

首先,我没有注意到下面您重写的代码有任何差距。

为了轻松找到特殊之处,最好将每个图表放在一个可编译的输入中,如下所示。

% your-diagram.tex
\documentclass[pstricks,border=0.5pt]{standalone}
\def\radius{19.2}
\def\lige{33.3}

\psset
{
    unit=0.2,
    linewidth=1pt,
}

\newlength\R
\newlength\hW  

\R=\radius\psunit
\hW=\lige\psunit
\hW=0.5\hW

\begin{document}
\begin{pspicture}[showgrid=false](-\dimexpr\hW+\R,-\radius)(\dimexpr\hW+\R,\radius)
    \psset
    {
        linecolor=red,
    }
    \psarc(\hW,0){\R}{270}{90}
    \psarc(-\hW,0){\R}{90}{270}
    \psline(-\hW,\R)(\hW,\R)
    \psline(-\hW,-\R)(\hW,-\R)
    \psset
    {
        linecolor=black,
        linestyle=dotted,
    }
    \psline(-\hW,-\R)(-\hW,\R)
    \psline(\hW,-\R)(\hW,\R)
    \psline(\dimexpr-\hW-\R,0)(\dimexpr\hW+\R,0)
    \rput*(0,0){\lige\,cm}
    \rput*(\dimexpr-\hW-\R/2,0){\radius\,cm}
    \rput*(\dimexpr\hW+\R/2,0){\radius\,cm}
    \rput(-\hW,0){\textbf{+}}
    \rput(\hW,0){\textbf{+}}
\end{pspicture}
\end{document}

按序列编译它latex->dvips-ps2pdf以获得 PDF 输出。

在此处输入图片描述

\includegraphics从主输入文件中,您可以使用包导入PDF 图像graphicx

% main-input-file.tex
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\includegraphics{your-diagram}
\caption{Your diagram in action}
\label{fig:your-diagram}
\end{figure}
\end{document}

关注点分离方法的优点:

  • 您可以轻松地注意到、发现并解决任何异常、错误等。
  • 您可以将您的图表重复用于其他项目。
  • 您的主要输入文件变得更干净、更整洁。
  • 由于您不必重新编译未改变的图表,因此编译时间可以显著减少。

相关内容