使图像垂直居中

使图像垂直居中

我目前遇到了一些问题,即将图像放在页面中央(垂直和水平),同时放大图像以使其占据整个页面的宽度。

我设法将图片水平居中,但不能垂直居中。下面的代码显示了我制作的将图片水平居中的版本。我的问题是,我该怎么做才能使其垂直居中?

我有一个 srcbook 类 .tex:

\documentclass[11pt,a4paper,BCOR10mm,DIV11,toc=listof,parskip=full]{scrbook}

\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs}            
\usepackage{multicol}   

我目前正在这样定位图像:

\centerline\noindent\makebox[\textwidth]{\includegraphics[width=\paperwidth]{MyImage.jpg}

答案1

\centerline采取论点,所以

\centerline\noindent\makebox[\textwidth]{\includegraphics[width=\paperwidth]{MyImage.jpg}

论点就是\noindent

所以它相当于

\centerline{\noindent}%
\makebox[\textwidth]{\includegraphics[width=\paperwidth]{MyImage.jpg}}

因此您会得到一条空白的白线,\centerline然后是一个包含图像的溢出框。

也许你想要

\vspace*{\fill}
\noindent
\hspace*{-\oddsidemargin}%
\makebox[0pt][l]{\includegraphics[width=\paperwidth]{MyImage.jpg}}
\vspace*{\fill}

我在这里假设您确实希望图像的宽度与纸张一样宽,而不仅仅是与文本块一样宽,从而覆盖两个边距。

答案2

\documentclass[demo]{article}
\usepackage[a6paper,margin=2cm]{geometry}
\usepackage{graphicx}
\begin{document}
\null\vfill
\centering\includegraphics{xyz}
\vfill\null
\end{document}

如何证明?

\documentclass[pstricks,border=12pt]{standalone}

\usepackage{filecontents}
\begin{filecontents*}{foo.tex}
\documentclass[demo]{article}
\usepackage[a6paper,margin=2cm]{geometry}
\usepackage{graphicx}
\begin{document}
\null\vfill
\centering\includegraphics{xyz}
\vfill\null
\end{document}
\end{filecontents*}

\immediate\write18{pdflatex foo}
\immediate\write18{pdftops -f 1 -l 1 -eps foo.pdf}


\usepackage{graphicx}
\newsavebox\IBox
\savebox\IBox{\includegraphics{foo}}

\psset
{
    xunit=0.1\wd\IBox,
    yunit=0.1\ht\IBox,
}

\begin{document}
\begin{pspicture}[showgrid=top](10,10)
    \rput[bl](0,0){\usebox\IBox}
\end{pspicture}
\end{document}

在此处输入图片描述

答案3

尝试这个

\vspace*{\fill}
\begin{center}
  \includegraphics[width=\paperwidth]{MyImage.jpg}
\end{center}
\vspace*{\fill}

答案4

您可以尝试使用 TikZ:

\begin{minipage}[c]{\textwidth}
    \centering
    \begin{tikzpicture}[remember picture, overlay]
        \node [inner sep = 0] at (current page.center) {\includegraphics[width=\paperwidth]{image.jpg}};
    \end{tikzpicture}
\end{minipage}

相关内容