Целесообразный метод идеальной подгонки изображения к 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}

Где 10cmи 17cmвычисляется путем вычитания соответствующих координат, а 8pt— удвоенное linewidthзначение. (Вы также можете написать 4pt*2)

Связанный контент