我一直在尝试寻找解决方案来编译我的代码,但出现了错误消息类似于这个。
在他的例子中,他给出了错误的对象尺寸数。然而,在我的例子中,问题出在两行几乎相同的代码之间。
这是一个最小的工作示例,其中注释第二个点对象会使点 A 出现,而删除注释会使图像消失:
\documentclass{article}
\usepackage{pst-solides3d}
\usepackage{fp}
\FPeval{\a}{2}
\FPeval{\b}{2}
\begin{document}
\begin{pspicture}[solidmemory](-4,-4)(10,10)
% ================== POINTS ==================
% Doesn't show unless point B is not included
\psSolid[object=point,args=0 0 \a, name=A, text=A, pos=uc]
% Remove this and the first point appears
\psSolid[object=point,args=0 \b \a, name=A, text=B, pos=uc]
\end{pspicture}
\end{document}
这两者之间的唯一区别\b
在于 y 输入。
它们都是具有 3 个 xyz 坐标的点,因此这不是维度错误。
有人知道为什么会发生这种情况吗?
这是错误输出:
Error: /typecheck in --mul--
Operand stack:
xObservateur --nostringval-- 0.707107
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1926 1 3 %oparray_pop 1925 1 3 %oparray_pop 1909 1 3 %oparray_pop 1803 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- --nostringval--
Dictionary stack:
--dict:1174/1684(ro)(G)-- --dict:0/20(G)-- --dict:117/200(L)-- --dict:752/1012(L)-- --dict:203/300(L)-- --dict:752/1012(L)-- --dict:3/6(L)--
Current allocation mode is local
Current file position is 5441
MiKTeX GPL Ghostscript 9.05: Unrecoverable error, exit code 1
** WARNING ** Couldn't open font map file "kanjix.map".
** WARNING ** Filtering file via command -->mgs.exe -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile="C:/Users/Chase/AppData/Local/Temp/mik1044.tmp" "C:/Users/Chase/AppData/Local/Temp/mik1043.tmp" -c quit<-- failed.
** WARNING ** Image format conversion for PSTricks failed.
** WARNING ** Interpreting special command pst: (ps:) failed.
** WARNING ** >> at page="1" position="(262.098, 433.624)" (in PDF)
** WARNING ** >> xxx "pst: tx@Dict begin STP newpath 1. .setopacityalpha 1 setlin"
)
(see the transcript file for additional information)
Output written on TexSE*-*minimalExample*For*SE.pdf (1 page).
SyncTeX written on TexSE - minimalExample For SE.synctex.gz.
Transcript written on "TexSE - minimalExample For SE.log".
上面也提到了这一点:
Overfull \hbox (68.33841pt too wide) in paragraph at lines 15--16
[][]
[1]
我尝试查看 hbox 过满错误,但人们提供的所有解决方法似乎都不起作用。如果是 hob 过满错误,似乎应该有一个非常简单的修复方法,可以强制所有内容运行并编译到页面上,但我找不到有关数字的修复方法。
我还在这里提供了一个更大的文本,它是希望更接近图像,我想要创建并将文本插入到我的主 pdflatex 文件中,尽管由于上述问题我无法判断它会是什么样子。 我在这里的另一个主题上提出了一个具有相同基本主题的问题,关于这个数字的更高端目标。
这是给出的相同文本,但没有注释掉的行,因此不会提供完整的所需图像:
\documentclass{article}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{pst-solides3d}
\usepackage[nomessages]{fp}
\pagestyle{empty}
\def \planeLocRatio {.7} % ratio of z location of plane and radius
\def \radius {0.5}
\def \planeLen {1} % half of one side of the plane
\FPeval{\contAng}{pi/4} % angle from z axis to intersection of plane at sphere edge
\FPeval{\a}{radius*cos(contAng)} % z location at plane intersection
\FPeval{\a2}{a/2}
\FPeval{\b}{radius*sin(contAng)} % radius of circle at plane intersection
\FPeval{\b2}{b/2}
\FPeval{\h}{radius-radius*cos(contAng)} % z distance from top of sphere to plane
\FPeval{\h2}{h/2}
\FPeval{\imgsize}{planeLen+1} % maybe increasing this helps /hbox errors?
\begin{document}
\begin{center}
\begin{pspicture}[solidmemory](-\imgsize,-\imgsize)(\imgsize,\imgsize)
% ================== VIEW ===================
\psset{
viewpoint=10 45 20 rtp2xyz,
lightsrc=viewpoint,
%lightintensity=1.25
xunit=0.5cm,
yunit=0.5cm
}
% ================== POINTS ==================
% origin
\psSolid[object=point,args=0 0 0, name=O, text=O, pos=br]
\psSolid[object=point,args=0 0 \a, name=A, text=A, pos=uc]
%%%%%%% Causes hbox problems, comment out everything from here to get working
\psSolid[object=point,args=0 \b \a, name=B, text=B, pos=uc]
% ================== LINES ==================
% origin to center of circle at plane intersection
\psSolid[object=line,linecolor=black!50,linewidth=2pt,args=O A, name=OA]
% label the equation to the side of the line midway through the line
\psProjection[object=point,definition=milieu,args=O A,text=$Rcos \theta$,pos=uc]
% line from origin to side of sphere intersected with plane
\psSolid[object=line,linecolor=black!50,linewidth=2pt,args=O B, name=OB]
\psProjection[object=point,definition=milieu,args=O B,text=$Rsin \theta$,pos=uc]
% line from A to B
\psSolid[object=line,linecolor=black!50,linewidth=2pt,args=A B, name=AB]
% ================== SPHERE ==================
\psSolid[
object=sphere,
name=mySphere,
r=\radius,
ngrid=30 30, % number of grid lines across 2 dimensions r
grid=false, % remove line edges
hue=0 0.5,
opacity=0.4,
hollow=true,
intersectiontype=0,
intersectionplan=0 0 1 \a,
intersectioncolor=(bleu)
](0,0,0)
\psSolid[
object=plan,
name=myPlane,
definition=solidface,
args=mySphere 1,
base=-1 1 -1 1,
action=draw,
](A,,)
% Just some placeholders
% Add different coloring to top surface of sphere
%??
% Add different coloring to circle where plane intersects sphere
%??
% add some labels for each line and surface
\uput[-135](0,0){$R cos \theta$}
%??
\end{pspicture}
\end{center}
\end{document}
答案1
当下面的语句被 TeX 扩展时
\psSolid[object=point,args=0 \b \a, name=A, text=B, pos=uc]
args=
在 PostScript 中将显示为
args=0 22
后面的空格\b
会被 TeX 吞掉。这与 中的相同\TeX forever
。使用
\psSolid[object=point,args=0 \b\space \a, name=A, text=B, pos=uc]
在您的第二个例子中,定义args=O A
是指平面上的两个点,但您O A
指的是 3D 中的两个点。
\psProjection[object=point,definition=milieu,args=O A,text=$Rsin \theta$,pos=uc]
请参阅 pst-splides3d 文档第 158 页的示例。