将图形放入 \t​​extwidth+\marginparsep+\marginparwidth

将图形放入 \t​​extwidth+\marginparsep+\marginparwidth

开始一个新项目(讲座脚本)我想将宽图部分放入空白处。以下 MWE 显示了当前情况(非常简化)。

\documentclass[parskip=true]{scrbook}
\usepackage{calc}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\setlength{\textwidth}{10cm}
\setlength{\marginparsep}{1cm}
\setlength{\marginparwidth}{5cm}
\begin{document}
\section*{Version 1}

foo

\rule{\textwidth}{1pt}

\begin{figure}[h]
 \makebox[\textwidth]{\rule{\textwidth+\marginparsep+0.6\marginparwidth}{1cm}}
 \caption{bla}
\end{figure}

bar

\newpage

foo

\rule{\textwidth}{1pt}

\begin{figure}[h]
 \makebox[\textwidth]{\rule{\textwidth+\marginparsep+0.6\marginparwidth}{1cm}}
 \caption{bla}
\end{figure}

bar

\newpage

\section*{Version 2}

foo

\rule{\textwidth}{1pt}

\begin{figure}[h]
 \rule{\textwidth+\marginparsep+0.6\marginparwidth}{1cm}
 \caption{bla}
\end{figure}

bar

\newpage

foo

\rule{\textwidth}{1pt}

\begin{figure}[h]
 \rule{\textwidth+\marginparsep+0.6\marginparwidth}{1cm}
 \caption{bla}
\end{figure}

bar

\end{document}

我需要图形在奇数页上左对齐,在偶数页上右对齐(这并不奇怪)。两种方法(版本 1 和 2)都无法产生此结果。

图表的宽度会有所不同,任何手动调整都是不可接受的。当然,我可以将每个图表放入一个框中,测量其宽度并根据该值进行设置。但我想知道(并希望)是否有更简单的解决方案。也许这已经在包中实现了?

答案1

您可以将 KOMA-Script 的addmargin*环境与以下环境结合使用\ifthispageodd

\documentclass[parskip=true]{scrbook}
\usepackage{calc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mwe}

\usepackage{showframe}% visualise the page areas

\begin{document}
\section*{Version 1}

\begin{figure}[h]
  \begin{addmargin*}[0pt]{-\marginparsep-\marginparwidth}
    \includegraphics[width=\linewidth]{example-image-a}
    \caption{bla}
  \end{addmargin*}
\end{figure}

\newpage

\begin{figure}[h]
  \begin{addmargin*}[0pt]{-\marginparsep-\marginparwidth}
    \includegraphics[width=\linewidth]{example-image-a}
    \caption{bla}
  \end{addmargin*}
\end{figure}

\section*{Version 2}

\begin{figure}[h]
  \begin{addmargin*}[0pt]{-\marginparsep-\marginparwidth}
    \ifthispageodd{\raggedright}{\raggedleft}
    \includegraphics[width=.9\linewidth]{example-image-a}
    \caption{bla}
  \end{addmargin*}
\end{figure}

\newpage

\begin{figure}[h]
  \begin{addmargin*}[0pt]{-\marginparsep-\marginparwidth}
    \ifthispageodd{\raggedright}{\raggedleft}
    \includegraphics[width=.9\linewidth]{example-image-a}
    \caption{bla}
  \end{addmargin*}
\end{figure}

\end{document}

结果是:

第 1+2 页第 3+4 页

相关内容