PSTricks 常数的定义和 Pantheon 绘制代码的改进

PSTricks 常数的定义和 Pantheon 绘制代码的改进

考虑以下。

代码

% pdflatex -shell-escape test.tex

\documentclass{article}

\usepackage{
  auto-pst-pdf,
  pst-eucl,
  pstricks-add
}
\usepackage{siunitx}

\begin{document}

\begin{figure}
\def\radius{21.65}      % radius
\def\vinkelA{12}        % angle
\def\faktor{0.33333333} % Scaling
\newlength\maksimum \maksimum=2\faktor\radius\psunit % This doesn't work!
 \centering
 \psset{
   unit=0.8cm,
   linecolor=red
 }
  \begin{pspicture}(\maksimum,\maksimum)
   \pnode(0,0){A}
   \pnode(!0 \faktor\space \radius\space mul){B}
   \pnode(!2 \faktor\space \radius\space mul mul \faktor\space \radius\space mul){C}
   \pnode(!2 \faktor\space \radius\space mul mul 0){D}
   \pnode(!\faktor\space \radius\space mul \faktor\space \radius\space mul){E}
   \psline(C)(D)(A)(B)
   \psarc(E){!\faktor\space \radius\space mul}{0}{!90 \vinkelA\space sub}
   \psarc(E){!\faktor\space \radius\space mul}{!90 \vinkelA\space add}{180}
   \psline[linestyle=dashed](B)(C)
   \psarc[linestyle=dashed](E){!\faktor\space \radius\space mul}{180}{360}
  \psset{
    linecolor=blue,
    linewidth=1.5pt
  }
   \psRelLine[angle=!270 \vinkelA\space add](E)(B){1}{P1}
   \psRelLine[angle=!90 \vinkelA\space sub](E)(C){1}{P2}
   \pcline(E)(P1)
   \pcline(E)(P2)
   \pcline[offset=12pt,linestyle=none](P1)(P2)
   \aput*{:U}{Oculus}
   \pcline(P1)(P2)
   \pnode(!\faktor\space \radius\space mul 1 \vinkelA\space cos add \faktor\space \radius\space mul mul){H}
   \pcline(E)(H)
  \psset{
    linecolor=black,
    linewidth=0.5pt,
    MarkAngleRadius=3.7,
    LabelSep=4
  }
   \psRelLine[linestyle=dotted,angle=45]{<->}(E)(C){1}{V}
   \ncline[linestyle=none]{E}{V}
   \naput[nrot=:U]{\small{\SI{\radius}{\m}}}
   \pstMarkAngle{H}{E}{P1}{\scriptsize{\SI{\vinkelA}{\degree}}}
   \pstMarkAngle{P2}{E}{H}{\scriptsize{\SI{\vinkelA}{\degree}}}
   \pstRightAngle{P1}{H}{E}
   \pstRightAngle{P2}{H}{E}
  \end{pspicture}
\end{figure}

\end{document}

输出

无,因为代码无法编译。

问题

我不明白如何使用\psunit;我尝试使用与这个帖子@Herbert 但它不起作用。话虽如此,我也想简化代码,但主要问题是使用 来\psunit摆脱一些\spaces。

答案1

第一的定义 PSTricks 单元。然后您可以使用更新 \psunit

[ ... ]
\psset{
   unit=0.8cm,
   linecolor=red
 }
\def\radius{21.65}      % radius
\def\vinkelA{12}        % angle
\def\faktor{0.33333333} % Scaling
\newlength\maksimum     % define the length
\maksimum=\radius\psunit% set it to the current value/unit 
\maksimum=\dimexpr\faktor\maksimum*2
[ ...]

相关内容