PSTricks 绘图中不需要的输出

PSTricks 绘图中不需要的输出

首先

我很抱歉没有把这个例子做得绝对简约。

代码

test.tex

% lualatex test.tex


%%%%%%%%%%%%%%%%%%%%%%%%
%%                    %%
%%   Dokumentklasse   %%
%%                    %%
%%%%%%%%%%%%%%%%%%%%%%%%


\documentclass[
  a4paper,
  12pt,
  danish
]{article}


%%%%%%%%%%%%%%%%
%%            %%
%%   Pakker   %%
%%            %%
%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% LaTeX --> DVIPS --> PS2PDF %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Tillader `æ', `ø' og `å' (i inputfilen).
%\usepackage{inputenc}

% Hjælper med orddeling og lignende ved `æ', `ø' og `å'.
%\usepackage[T1]{fontenc}

% Sørger for dansk orddeling og dansk opsætning af `specielle' ord.
%\usepackage{babel}

% Sætter skrifttypen.
%\usepackage[sc]{mathpazo}

%%%%%%%%%%%%%%
%% LuaLaTeX %%
%%%%%%%%%%%%%%

% Opsætning af skrift til LuaLaTeX.
\usepackage{fontspec}
\setmainfont[
  Extension      = .otf,
  UprightFont    = *-regular,
  BoldFont       = *-bold,
  ItalicFont     = *-italic,
  BoldItalicFont = *-bolditalic,
  Ligatures = {
    TeX,
    CommonOff
  }
]{NewCM10}

% Matematik.
\usepackage[
  math-style = TeX,
  warnings-off = {
    mathtools-colon
  }
]{unicode-math}
\setmathfont{NewCMMath-Regular.otf}
\setmathfont[
  version = bold,
  FakeBold = 2
]{NewCMMath-Regular.otf}

% Sørger for dansk orddeling og dansk opsætning af `specielle' ord.
\usepackage{polyglossia}
\setdefaultlanguage{danish}

%%%%%%%%%%%%%%%%%%%%%

% Marginer.
\usepackage[
  hmargin = 2.4cm,
  vmargin = 3cm
]{geometry}

% Sidehoved og -fod.
\usepackage{fancyhdr}

% Sidetal.
\usepackage[
  lastpage
]{zref}

% Placering af floats.
\usepackage{float}

% Fysiske enheder.
\usepackage{siunitx}

% Intern vektorgrafik.
\usepackage{pstricks-add}

% Interaktive krydsreferencer med mere.
\usepackage{hyperref}


%%%%%%%%%%%%%%%%%
%%             %%
%%   Makroer   %%
%%             %%
%%%%%%%%%%%%%%%%%


% Opsætning af pakker.
% ``siunitx''
\sisetup{
  locale = DE
}
% ``pstricks''
\psset{
  dimen = m
}
% ``hyperref''
\hypersetup{
  pdftitle = {FSA, matematisk problemløsning, maj~2000},
  pdfauthor = {Svend Mortensen},
  pdfsubject = {Eksamenssæt, matematik},
  pdfstartview = FitH,
  breaklinks = true,
  hidelinks
}

% Placering af floats.
\makeatletter
  \providecommand*\setfloatlocations[2]{\@namedef{fps@#1}{#2}}
\makeatother
\setfloatlocations{figure}{H}

% Letter notationen.
\newcommand*\fil[1]{\texttt{#1}}

% Opgave 3.2
\newcommand*\breddeA{\fpeval{\ydreA+0.62}}
\newcommand*\hoejdeA{\fpeval{sqrt(3)/2*\ydreA+0.59}}

% Opgave 3.4
\newcommand*\indreB{\fpeval{0.5*\ydreB}}
\newcommand*\lille{\fpeval{0.1*\ydreB}}
\newcommand*\breddeB{\fpeval{\ydreB+0.64}}
\newcommand*\hoejdeB{\fpeval{sqrt(3)/2*\ydreB+0.54}}

% Sidehoved- og fod.
\pagestyle{fancy}
\renewcommand*\headrulewidth{0pt}
\setlength\headheight{14.5pt}
\makeatletter
\zref@newprop*{numpage}{\the\value{page}}
\zref@addprop{main}{numpage}
\fancyhf{}
\fancyfoot[C]{
  \ifnum \zref@extractdefault{LastPage}{numpage}{0} > 1
    \thepage
  \fi
    %
}
\makeatother


%%%%%%%%%%%%%%%%%%%%%%%%%%
%%                      %%
%%   Selve dokumentet   %%
%%                      %%
%%%%%%%%%%%%%%%%%%%%%%%%%%


\begin{document}

\section{Cirkustelt}
\label{opg:3}
På svararket er vist en grundplan over manegen.

Til manegen vil Springboldene have et nyt tæppe, som
\begin{enumerate}
  \item skal være cirkelformet,
  \item skal være så stort som muligt og
  \item netop skal røre de $3$~teltpæle.
\end{enumerate}

\subsection{Første spørgsmål}
\label{spm:31}
Kald hjørnerne i manegen, der er en regulær sekskant, for $P_{1},P_{2},\dots,P_{6}$
og tegn dernæst (stiplede) linjestykker fra $P_{1}$ til $P_{4}$, fra $P_{2}$ til
$P_{5}$ og fra $P_{3}$ til $P_{6}$.

Linjestykkernes skæringspunkt er der hvor tæppets centrum skal ligge.

\subsection{Andet spørgsmål}
\label{spm:32}
Følgende figur viser en grundplan over manegen:

\begin{figure}
\def\indreA{3.5}
\def\ydreA{6}
\centering
 \psset{
   unit = 0.9
 }
  \begin{pspicture}(-\breddeA,-\hoejdeA)(\breddeA,\hoejdeA)
    \multido
      {\i = 1+1,
       \rA = 0+60,
       \rB = 6.5+60}
      {6}
      {\psRelNode[angle = \rA](A)(\ydreA,0){1}{P\i}
       \psdot(P\i)
       \uput[\rA](P\i){$P_{\i}$}
       \psRelNode[angle = \rA](A)(\indreA,0){1}{Q\i}
       \psdot(Q\i)
       \psRelNode[angle = \rB](A)(\indreA,0){1}{Q\i}
       \uput[\rB](Q\i){$Q_{\i}$}}
    \pnode
      (0,0){A}
    \pscircle(A){\indreA}
    \pspolygon(P1)(P2)(P3)(P4)(P5)(P6)
    \pcline[
      linestyle = none,
      offset = 12pt
    ](P2)(P1)
    \ncput*[
      nrot = :U
    ]{\qty{9}{\m}}
    \multido
      {\iA = 1+1,
       \iB = 4+1,
       \r = 90+120}
      {3}
      {\psline[
         linestyle = dashed
       ](P\iA)(P\iB)
       \psRelNode[
         angle = \r
       ](A)(\indreA,0){1}{Q\iA}
       \psdot[
         dotstyle = Bo
       ](Q\iA)
       \uput[\r](Q\iA){\scriptsize Teltpæl~$\iA$}}
  \end{pspicture}
 \caption{Grundplan over manegen.}
 \label{fig:1}
\end{figure}
\vspace{0ex}

\noindent
\textsf{Bemærkning:} Figuren er ikke i målestoksforholdet~$1\mathinner{:}150$, men
dens mål passer i forhold til hinanden. Det er dog også umuligt at opnå det korrekte
målestoksforhold, da det afhænger af skærmen, dokumentet læses på.

\subsection{Tredje spørgsmål}
\label{spm:33}
På \autoref{fig:1} aflæser vi, at $r \approx \qty{3.5}{\cm}$. Eftersom \autoref{fig:1}
er i målestoksforholdet~$1\mathinner{:}150$, er tæppets radius derfor
\begin{equation}
  r_{\text{tæppe}}
  \approx 150 \cdot \qty{3.5}{\cm}
  = \qty{525}{\cm}
  = \qty{525}{\cm} \cdot \frac{1}{100}\,\unit{\m\per\cm}
  = \frac{525 \cdot 1}{100}\,\unit{\m}
  = \qty{5.25}{\m}.
\end{equation}

\subsection{Fjerde spørgsmål}
\label{spm:34}
\autoref{fig:2} viser et manegetæppe med netop tre symmetriakser (de stiplede
linjestykker):

\begin{figure}
\def\ydreB{3.5}
\centering
  \begin{pspicture}(-\breddeB,-\hoejdeB)(\breddeB,\hoejdeB)
    \multido
      {\i = 1+1,
       \r = 0+60}
      {6}
      {\psRelNode[
         angle = \r
       ](A)(\ydreB,0){1}{Q\i}
       \psdot(Q\i)
       \uput[\r](Q\i){$Q_{\i}$}
       \psRelLine[
         angle = \r,
         linestyle = dotted
       ](0,0)(\ydreB,0){1}{B}}
    \pspolygon(Q1)(Q2)(Q3)(Q4)(Q5)(Q6)
    \multido
      {\i = 1+1,
       \r = 60+120}
      {3}
      {\psRelNode[
         angle = \r
       ](A)(\indreB,0){1}{Q\i}
       \pscircle[
         fillstyle = solid,
         fillcolor = red
       ](Q\i){\lille}}
    \pnode(0,0){A}
    \pscircle(A){\ydreB}
  \end{pspicture}
 \caption{Manegetæppe med netop tre symmetriakser.}
 \label{fig:2}
\end{figure}

\end{document}

问题

当我使用latex--> dvips-->进行编译时dvips -dALLOWPSTRANSPARENCY,我得到以下正确输出:

正确的

但是,当我使用进行编译时lualatex,出现以下错误输出:

错误的

我如何使用进行编译lualatex并获得正确的输出?

答案1

对于最小示例来说,所有页眉/页脚内容都是完全不需要的!

定义引用的节点\psRelNode 你用吧:

\begin{pspicture}(-\breddeB,-\hoejdeB)(\breddeB,\hoejdeB)
    \pnode(0,0){A}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    \multido
    {\i = 1+1,
        \r = 0+60}
    {6}
    {\psRelNode[
        angle = \r
        ](A)(\ydreB,0){1}{Q\i}
        \psdot(Q\i)
        \uput[\r](Q\i){$Q_{\i}$}
        \psRelLine[
        angle = \r,
        linestyle = dotted
        ](0,0)(\ydreB,0){1}{B}}
    \pspolygon(Q1)(Q2)(Q3)(Q4)(Q5)(Q6)

在此处输入图片描述

答案2

您在两张图片中都使用了节点A,它似乎泄露了。这不仅发生在路线上,lualatex也发生在路线上。如果两个节点的调用相同(右页, )和不同(左页,+ ) dvips,请比较结果。我不是 PSTricks 用户,不知道这是预期行为还是错误。DAB

\documentclass[]{article}
\usepackage{pstricks-add}


\begin{document}

  \begin{pspicture}(0,0)(3,3)
    \pnode
      (0,0){B}
  \end{pspicture}


 \begin{pspicture}(0,0)(5,5)
    \multido
      {\i = 1+1,
       \r = 0+60}
      {6}
      {\psRelNode[
         angle = \r
       ](A)(3.5,0){1}{Q\i}
       \psdot(Q\i)
       \uput[\r](Q\i){$Q_{\i}$}
      }
    \pspolygon(Q1)(Q2)(Q3)(Q4)(Q5)(Q6)
  \end{pspicture}
 
 \newpage 
 
  \begin{pspicture}(0,0)(3,3)
    \pnode
      (0,0){D}
  \end{pspicture}


 \begin{pspicture}(0,0)(5,5)
    \multido
      {\i = 1+1,
       \r = 0+60}
      {6}
      {\psRelNode[
         angle = \r
       ](D)(3.5,0){1}{Q\i}
       \psdot(Q\i)
       \uput[\r](Q\i){$Q_{\i}$}
      }
    \pspolygon(Q1)(Q2)(Q3)(Q4)(Q5)(Q6)
  \end{pspicture}
 
\end{document}

在此处输入图片描述

相关内容