
Considere o código:
\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}
que produz
A saída é o que eu quero; no entanto, o método que usei para obtê-lo foitentativa e erro. Mais especificamente, centralizei a imagem em pspicture
at (0,3.5)
e tentei vários valores até chegar em width=.86\linewidth
and height=1.49\linewidth
which parece produzir o que desejo.
PERGUNTA: Existe uma abordagem mais conveniente que eu possa usar que não envolva tentativa e erro para ajustar automaticamente perfeitamente uma imagem dentro de uma imagem pspicture
como a que descrevi?
Eu compilo o código com xelatex
.
Obrigado.
Responder1
Eu usei lualatex
. Coloque a origem no canto inferior esquerdo!
\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}
Responder2
Basta calcular os valores com 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}
Onde 10cm
e 17cm
é calculado subtraindo as coordenadas correspondentes e 8pt
é o dobro do linewidth
valor. (você também pode escrever 4pt*2
)