如何将图像裁剪为特定的 x 和 y 尺寸?我尝试使用独立程序和裁剪参数,但结果始终是整页。
这是我现在正在使用的代码:
\documentclass[class=article,crop=true]{standalone}
%,pstricks=true
\usepackage{nopageno,pst-plot,graphicx}
%\def\pshlabel#1{\rotatebox{180}{#1}}
%\def\psvlabel#1{\rotatebox{180}{#1}}
\begin{document}
\psset{linecolor=black,linewidth=1pt,arrowsize=8pt,unit=1bp}
\pstVerb{gsave 1 0 0 setrgbcolor clippath fill grestore}
\begin{pspicture}(-160,-160)(160,160)
% Axes
\psset{linewidth=2pt}
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt 4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape a}}
\uput{10pt}[0](0,-160){{\large\itshape b}}
\end{pspicture}
\end{document}
顺便说一句,添加 pstricks=true 参数会导致我的图表消失,就像它从页面中删除一样。
谢谢。
[编辑]
这是我的最新代码。
\documentclass[pstricks,preview,margin=0pt]{standalone}
\usepackage{pst-plot,graphicx}
\def\pshlabel#1{\rotatebox{180}{#1}}
\def\psvlabel#1{\rotatebox{180}{#1}}
\begin{document}
\psset{linecolor=black,bgcolor=red,linewidth=1pt,arrowsize=8pt,unit=1bp}
\begin{pspicture}(-160,-160)(160,160)
% Axes
\psset{linewidth=2pt}
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt 4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape\rotatebox{180}{a}}}
\uput{10pt}[0](0,-160){{\large\itshape\rotatebox{180}{b}}}
\end{pspicture}
\end{document}
有用!
答案1
使用
pstricks
选项仅用于捕捉pspicture
环境。preview
激活类preview
内部使用的包的选项standalone
。它还用于避免出现已知错误。margin
选项来指定边距。格式,margin={left bottom right top}
但如果您想使所有空格都相等,请使用margin=<dimen>
。
平均能量损失
\documentclass[pstricks,preview,margin={1cm 2cm 3cm 4cm}]{standalone}
\usepackage{pst-plot}
\psset{linecolor=black,linewidth=1pt,arrowsize=8pt,unit=1bp,linewidth=2pt}
\pstVerb{gsave 1 0 0 setrgbcolor clippath fill grestore}
\begin{document}
\begin{pspicture}(-160,-160)(160,160)
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt 4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape a}}
\uput{10pt}[0](0,-160){{\large\itshape b}}
\end{pspicture}
\end{document}
注意:将 PDF 转换为 PNG 时故意添加了蓝框以显示边界框。上面的 MWE 肯定不会产生这个蓝框!
答案2
不要使用文档类article
的选项standalone
。此外,如果您想要将图像裁剪为特定尺寸(作为pspicture
环境的参数给出),请使用pspicture*
环境:如您所见,b
超出框架的字母(-160,-160)×(160,160)
被部分裁剪。
\documentclass[crop=true]{standalone}
\usepackage{pst-plot, auto-pst-pdf}
%\def\pshlabel#1{\rotatebox{180}{#1}}
%\def\psvlabel#1{\rotatebox{180}{#1}}
\begin{document}
\psset{linecolor=black,linewidth=1pt,arrowsize=8pt,unit=1bp}
\pstVerb{gsave 1 0 0 setrgbcolor clippath fill grestore}
\begin{pspicture*}(-160,-160)(160,160)
% Axes
\psset{linewidth=2pt}
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt 4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape a}}
\uput{10pt}[0](0,-160){{\large\itshape b}}
\end{pspicture*}
\end{document}
不要忘记使用pdflatex --enable-write18
(MiKTeX) 或pdflatex -shell-escape
(TeX Live, MacTeX) 进行编译。或者,不要加载auto-pst-ˆdf
和编译xelatex
。
答案3
你想要这样的东西吗?
使用 编译以下内容pdflatex --shell-escape
:
% based a bit on Bernard's answer: http://tex.stackexchange.com/a/341143/
\documentclass[]{standalone}
\usepackage{pst-plot,auto-pst-pdf}
\begin{document}
\psset{linecolor=black,bgcolor=red,linewidth=1pt,arrowsize=8pt,unit=1bp}
\begin{pspicture}(-160,-160)(160,160)
% Axes
\psset{linewidth=2pt}
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt 4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape a}}
\uput{0pt}[90](0,-160){{\large\itshape b}}
\end{pspicture}
\end{document}
答案4
无独立:
\documentclass{article}
\usepackage[paperwidth=320pt,paperheight=330pt,margin=0pt]{geometry}
\usepackage{nopageno,pst-plot,graphicx}
\parindent=0pt
\begin{document}
\psset{linewidth=1pt,arrowsize=8pt,unit=1pt}
\begin{pspicture}(-160,-170)(160,160)
\psframe*[linecolor=red](-160,-170)(160,160)
% Axes
\psset{linewidth=2pt}
\psaxes[Dx=32,Dy=32,labels=all,ticks=all,ticksize=-4pt
4pt,Ox=-128,Oy=-128]{-}(-128,-128)(-128,-128)(128,128)
\uput{10pt}[70](-160,0){{\large\itshape a}}
\uput{10pt}[0](0,-160){{\large\itshape b}}
\end{pspicture}
\end{document}