将图像置于自定义小页面的中心

将图像置于自定义小页面的中心

抱歉我的语言不通,我是法国人!

我必须为个人项目创建一个页面模板:在页面的 72% 处放置一个无边距的框,与顶部对齐,其中包含一个垂直和水平居中的大图像,之后在同一页面中以普通文本重新开始。我尝试编写一个命令:

   \newcommand\inspic[1]{
   \newpage
   \thispagestyle{empty}
   \noindent
   \begin{adjustwidth}{-1.8cm}{-1.8cm}
   \begin{minipage}[t]{\parwidth}
   \begin{minipage}[b][0.72\paperheight][b]{\paperwidth}
   \begin{center}
   \centerline{\includegraphics{#1}}
   \end{center}
   \end{minipage}
   \end{minipage}
   \end{adjustwidth}
   }

但我无法将图像垂直居中。这里有一张图片来解释这一点:

例子

一个最小的例子:

\documentclass{report}
\usepackage[utf8]{report}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[french, english]{babel}
\usepackage{geometry}
\usepackage{blindtext}
\usepackage{changepage}

\geometry{
a4paper,
lmargin=1.8cm,
rmargin=1.8cm,
tmargin=2cm,
bmargin=3cm
}

\newcommand\inspic[1]{
\newpage
\thispagestyle{empty}
\noindent
\begin{adjustwidth}{-1.8cm}{-1.8cm}
\begin{minipage}[t]{\parwidth}
\begin{minipage}[b][0.72\paperheight][b]{\paperwidth}
\begin{center}
\centerline{\includegraphics{#1}}
\end{center}
\end{minipage}
\end{minipage}
\end{adjustwidth}
}

\begin{document}
\inspic{mybigpicture}
\section*{title}
some text here
\end{document}

解决方案 :

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french, english]{babel}
\usepackage{geometry}

\usepackage{lmodern}
\usepackage{graphicx}

\usepackage{lipsum}

\geometry{
  a4paper,
  lmargin=1.8cm,
  rmargin=1.8cm,
  tmargin=2cm,
  bmargin=3cm
}

\newcommand\inspic[1]{%
  \newpage
  \thispagestyle{empty}
  \noindent
  \makebox[\textwidth]{%
    \raisebox{2cm}[\dimexpr\height-2cm]{%
      \includegraphics[height=0.72\paperheight,keepaspectratio]{#1}%
    }%
  }\par
}

\begin{document}
\inspic{fuukeicool}
\section*{title}
\lipsum
\end{document}

答案1

使用一个宽度的框\textwidth,其中包含凸起 2cm 的图片,但其高度也修剪了 2cm,因此它将被放置在页面的最顶部。

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french, english]{babel}
\usepackage{geometry}

\usepackage{lmodern}
\usepackage{graphicx}

\usepackage{lipsum}

\geometry{
  a4paper,
  lmargin=1.8cm,
  rmargin=1.8cm,
  tmargin=2cm,
  bmargin=3cm
}

\newcommand\inspic[1]{%
  \newpage
  \thispagestyle{empty}
  \noindent
  \makebox[\textwidth]{%
    \raisebox{2cm}[\dimexpr\height-2cm]{%
      \includegraphics[height=0.72\paperheight,width=\paperwidth]{#1}%
    }%
  }\par
}

\begin{document}
\inspic{example-image-a.pdf}
\section*{title}
\lipsum
\end{document}

在此处输入图片描述

如果图片的宽度和高度不如保留框那么高,例如它的高度大于宽度,则没有区别,只是不指定宽度:

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[french, english]{babel}
\usepackage{geometry}

\usepackage{lmodern}
\usepackage{graphicx}

\usepackage{lipsum}

\geometry{
  a4paper,
  lmargin=1.8cm,
  rmargin=1.8cm,
  tmargin=2cm,
  bmargin=3cm
}

\newcommand\inspic[1]{%
  \newpage
  \thispagestyle{empty}
  \noindent
  \makebox[\textwidth]{%
    \raisebox{2cm}[\dimexpr\height-2cm]{%
      \includegraphics[height=0.72\paperheight]{#1}%
    }%
  }\par
}

\begin{document}
\inspic{example-image-9x16}
\section*{title}
\lipsum
\end{document}

在此处输入图片描述

答案2

这是一个非常手动的方法。

\documentclass[a4paper]{article}
\usepackage{tikz,lipsum}
\begin{document}
  \begin{tikzpicture}[remember picture,overlay]
    \node[anchor=north west,inner sep=0pt] at (current page.north west) 
                {\includegraphics[width=\paperwidth,height=0.72\paperheight]{example-image-a}};
  \end{tikzpicture}
  \null

  \vspace{0.57\paperheight}   %% manually set this
  \noindent
  \lipsum[1]
\end{document}

在此处输入图片描述

答案3

使用浮动的卑鄙伎俩(小页面用淡红色框起来以控制其大小):

平均能量损失

\documentclass[a4paper]{report}
\usepackage{graphicx,lipsum,geometry,xcolor}
\geometry{lmargin=1.8cm,rmargin=1.8cm,tmargin=2cm,bmargin=3cm}
\renewcommand{\textfloatsep}{0pt} 
\begin{document}
\begin{figure}[!t]
\color{red!10} %for testing only
\vspace{-2cm}\hfil\makebox[0pt][c]{%
\fbox{%for testing only
\begin{minipage}[t][.72\paperwidth]{.72\paperwidth}
\centering
\vspace{\fill}
\includegraphics[width=.9\linewidth]{example-image-1x1}
\vspace{\fill}
\end{minipage}}}
\end{figure}
\lipsum[2-25]
\end{document}

为了完全填充minipage或使其尽可能最佳贴合,使用

\includegraphics[width=\linewidth,height=.72\paperwidth,keepaspectratio]{myimage}

(如果你保留,你仍然可以看到一些边距, \fbox{}因为\fboxsep默认情况下它不是 0pt)

相关内容