使用 wrapfig 在书的两侧边距中水平居中图形

使用 wrapfig 在书的两侧边距中水平居中图形

我想将图片放在书的外边距中。我以前也wrapfig这样做过,但图片在偶数页和奇数页上的对齐方式不同。在奇数页上,它们根据页面边缘对齐;在偶数页上,它们与文本本身对齐。

理想情况下,我希望数字位于页边距的中间,无论页码是奇数还是偶数。我该如何实现这一点?

这是一个最小的例子。

    \documentclass[10pt]{book}
    \usepackage[paperheight=11in,paperwidth=8.5in, inner=1in,includeheadfoot,textheight=9in,textwidth=345pt,marginparwidth=150pt]{geometry}

    \usepackage{lipsum}
    \usepackage{wrapfig}
    \usepackage{tikz}

    \setlength{\wrapoverhang}{\marginparwidth}
    \addtolength{\wrapoverhang}{\marginparsep}

    \begin{document}
    \begin{wrapfigure}{o}{0pt} 
    \begin{tikzpicture}
    \draw (0,0)--(3,0)--(3,3)--(0,3)--cycle;
    \end{tikzpicture}
    \caption{}\end{wrapfigure}
    \lipsum[1] 

    \begin{wrapfigure}{o}{0pt} 
    \begin{tikzpicture}
    \draw (0,0)--(5,0)--(5,5)--(0,5)--cycle;
    \end{tikzpicture}
    \caption{}\end{wrapfigure}
    \lipsum[1]

    \clearpage

    \begin{wrapfigure}{o}{0pt} 
    \begin{tikzpicture}
    \draw (0,0)--(3,0)--(3,3)--(0,3)--cycle;
    \end{tikzpicture}
    \caption{}\end{wrapfigure}
    \lipsum[1] 

    \begin{wrapfigure}{o}{0pt} 
    \begin{tikzpicture}
    \draw (0,0)--(5,0)--(5,5)--(0,5)--cycle;
    \end{tikzpicture}
    \caption{}\end{wrapfigure}
    \lipsum[1]

    \end{document}

答案1

一个解决方案是将图形包裹在中minipage,并使用\centering将图像置于其中minipage

\begin{wrapfigure}{o}{0pt}%
\begin{minipage}{\marginparwidth}%
\centering%
    \begin{tikzpicture}
       ...
    \end{tikzpicture}
\caption{}
\end{minipage}
\end{wrapfigure}

在此处输入图片描述

为了简化此过程,定义自定义环境会很有帮助,但这对 来说并不那么简单wrapfigure。下面,我改编了提供的解决方案定义自定义“wrapfig”环境界定MyWrapFigure

\documentclass[10pt]{book}
\usepackage[paperheight=11in,paperwidth=8.5in, inner=1in,includeheadfoot,textheight=9in,textwidth=345pt,marginparwidth=150pt]{geometry}

\usepackage{lipsum}
\usepackage{wrapfig}
\usepackage{tikz}

\newenvironment{MyWrapFigure}{%
    \wrapfigure{o}{0pt}%
    \begin{minipage}{\marginparwidth}%
    \centering%
}{%
    \end{minipage}%
    \endwrapfigure%
}

\setlength{\wrapoverhang}{\marginparwidth}
\addtolength{\wrapoverhang}{\marginparsep}

\begin{document}
\begin{MyWrapFigure}
\begin{tikzpicture}
\draw (0,0)--(3,0)--(3,3)--(0,3)--cycle;
\end{tikzpicture}
\caption{}
\end{MyWrapFigure}
\lipsum[1] 

\begin{MyWrapFigure}
\begin{tikzpicture}
\draw (0,0)--(5,0)--(5,5)--(0,5)--cycle;
\end{tikzpicture}
\caption{}
\end{MyWrapFigure}
\lipsum[1]

\clearpage

\begin{MyWrapFigure}
\begin{tikzpicture}
\draw (0,0)--(3,0)--(3,3)--(0,3)--cycle;
\end{tikzpicture}
\caption{}
\end{MyWrapFigure}
\lipsum[1] 

\begin{MyWrapFigure}
\begin{tikzpicture}
\draw (0,0)--(5,0)--(5,5)--(0,5)--cycle;
\end{tikzpicture}
\caption{}
\end{MyWrapFigure}
\lipsum[1]
\end{document}

相关内容