我想将一张大图像放置在多页文档中每页的水平和垂直中心,同时将每张图像放置在一个细的黑色框架中。每张图像的尺寸应比 mdframe 大一些,这样框架就会覆盖图像。
为什么下面的代码在所有三个方面(水平对齐、垂直对齐和框架)都失败了?
\documentclass[a4paper,11pt]{article}
\usepackage{graphicx}
\usepackage{mdframed}
\usepackage{mwe}
\begin{document}
\vfill
\begin{mdframed}[linewidth=1pt, leftmargin=0cm, rightmargin=0cm, align=left]
\centering
\includegraphics[width=1.25\textwidth]{example-image}
\end{mdframed}
\vfill
\pagebreak
\vfill
\begin{mdframed}[linewidth=1pt, align=center]
\centering
\includegraphics[width=1.25\textwidth]{example-image}
\end{mdframed}
\vfill
\pagebreak
\vfill
\begin{mdframed}[linewidth=1pt, align=right]
\centering
\includegraphics[width=1.25\textwidth]{example-image}
\end{mdframed}
\vfill
\end{document}
答案1
为了回答你的问题,为什么问题中的代码不起作用,
垂直居中无法实现,因为页面顶部的空格会被丢弃,就像在换行符处删除单词间空格一样,所以您不希望\vspace*{\fill}
表单\vfill
阻止*
删除空格。
框架与图像并不紧密,因为本质上您正在包裹一个宽度为 parbox 的盒子,\textwidth
因此框架围绕着它。图像使盒子过满,但这不会改变框架大小。
由于无法将过满的盒子居中,因此无法实现水平居中\centering
,溢出始终在右侧。
我不确定我是否理解了这些要求,但也许
B 计划
\documentclass[a4paper,11pt]{article}
\usepackage{graphicx}
\begin{document}
\centering
\linethickness{2pt}
\vspace*{\fill}
\sbox0{\includegraphics[width=1.25\textwidth,trim=10pt 10pt 10pt 10pt]{example-image}}
\makebox[0pt]{\usebox{0}\llap{\frame{\phantom{\usebox0}}}}
\vspace*{\fill}
\end{document}
计划A
\documentclass[a4paper,11pt]{article}
\usepackage{graphicx}
\begin{document}
\centering
\vspace*{\fill}
\makebox[\textwidth][l]{\frame{\includegraphics[width=1.25\textwidth]{example-image}}}
\vspace*{\fill}
\pagebreak
\vspace*{\fill}
\makebox[\textwidth][c]{\frame{\includegraphics[width=1.25\textwidth]{example-image}}}
\vspace*{\fill}
\pagebreak
\vspace*{\fill}
\makebox[\textwidth][r]{\frame{\includegraphics[width=1.25\textwidth]{example-image}}}
\vspace*{\fill}
\end{document}