[Tex/LaTex] How to prevent \newgeometry from affecting bottom margin when changing the side margins

geometrymargins

\documentclass{article}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{titlesec}
\begin{document}


\begin{figure}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{figure}

\blindtext

\clearpage

\newgeometry{left=10mm,right=10mm}
\begin{figure}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{figure}
\blindtext

\end{document}

For some reason this changes the position of the page number. I am not sure what is going on.

Best Answer

When you specify a new geometry, old values are not retained, so geometry uses its standard method, which is of dividing the blank vertical space in a 2:3 ratio between top and bottom after applying the default text height.

Specify the missing parameters.

\documentclass{article}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{titlesec}
\begin{document}


\begin{figure}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{figure}

\blindtext

\clearpage

\newgeometry{left=10mm,right=10mm,top=2.5cm,bottom=2cm}
\begin{figure}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{figure}
\blindtext

\end{document}

However, this is the wrong method for accommodating a wide object in a figure. Use changepage and its adjustwidth environment, which doesn't require forcing a page break.

\documentclass{article}
\usepackage[left=2.5cm,right=2.5cm,top=2.5cm,bottom=2cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{titlesec}
\usepackage{changepage}

\begin{document}


\begin{figure}
\centering
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{figure}

\blindtext

\begin{figure}
\centering
\begin{adjustwidth}{-1.5cm}{-1.5cm}
\renewcommand{\arraystretch}{3}
\begin{tabular*}{\textwidth}{@{}ccc@{}}
  \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}\\
    \includegraphics[width=0.31\linewidth,height=2cm]{dummy} &
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}&
        \includegraphics[width=0.31\linewidth,height=2cm]{dummy}
\end{tabular*}
\end{adjustwidth}
\end{figure}
\blindtext

\end{document}
Related Question