
考慮代碼:
\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
at中(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
)