一种将图像完美拟合到Pspicture的简便方法

一种将图像完美拟合到Pspicture的简便方法

考虑以下代码:

\documentclass[a5paper,12pt,onecolumn,openany,final]{book}
\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}
\usepackage{pstricks}
\usepackage{graphicx}
    
\begin{document}
\thispagestyle{empty}
\begin{pspicture}(-5,-5)(5,12)%
\psframe[linecolor=black,linewidth=4pt](-5,-5)(5,12)% 
\rput(0,3.5){\includegraphics[width=.86\linewidth,height=1.49\linewidth]{example-image-a}}
\end{pspicture}
\end{document}

产生

在此处输入图片描述

输出是我想要的;但是,我用来获取它的方法是反复试验更具体地说,我将图像置于中心pspicture(0,3.5)然后尝试各种值,直到到达width=.86\linewidth并且height=1.49\linewidth似乎产生了我想要的结果。

问题:是否有一种更便捷的方法可以使用,而不需要反复试验就能自动完美地适应pspicture我所概述的图像?

我使用 编译了代码xelatex

谢谢。

答案1

我用了lualatex。把原点放到左下角!

\RequirePackage{pdfmanagement-testphase}% For opacity and lualatex
\DocumentMetadata{}                     % For opacity and lualatex
\documentclass[a5paper,12pt,onecolumn,openany,final]{book}
\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}
\usepackage{pstricks}
\usepackage{graphicx}

\begin{document}
    \thispagestyle{empty}
    \begin{pspicture}(-5,-5)(5,12)%
        \psframe[linecolor=black,linewidth=4pt,dimen=inner](-5,-5)(5,12)% 
        \rput[lb](-5,-5){\includegraphics[width=10cm,height=17cm]{example-image-a}}
        \psframe*[opacity=0.2,linecolor=red](-5,-5)(5,12)
    \end{pspicture}
\end{document}

在此处输入图片描述

答案2

只需使用 TeX 计算值?

%! TEX program = lualatex
\documentclass[a5paper,12pt,onecolumn,openany,final]{book}
\usepackage[hmargin=0.7in,vmargin=0.75in]{geometry}
\usepackage{pstricks}
\usepackage{graphicx}
    
\begin{document}
\thispagestyle{empty}
\begin{pspicture}(-5,-5)(5,12)%
\psframe[linecolor=black,linewidth=4pt](-5,-5)(5,12)% 
\rput(0,3.5){\includegraphics[width=\dimexpr10cm-8pt\relax,height=\dimexpr17cm-8pt\relax]{example-image-a}}
\end{pspicture}
\end{document}

其中10cm17cm是通过减去相应的坐标计算得出的,并且8pt是该值的两倍linewidth。(你也可以写成4pt*2

相关内容