画像を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\linewidthheight=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対応する座標を減算して計算され、 は値の8pt2 倍になりますlinewidth。( と書くこともできます4pt*2)

関連情報