修复了 KOMA-Script 中带有灰色背景的边距问题

修复了 KOMA-Script 中带有灰色背景的边距问题

我是一名新手,希望用我的 LaTeX 报告实现一种两列效果 - 我使用 LaTeXKOMA-script作为基础。

我希望边距显示为不同的背景颜色(例如灰色),而正文背景为(例如)蓝色,并且我希望将图像、文本、图形和方程式放在此边距中。这些内容与特定段落同步,即我不希望它们四处浮动,而只是相对于正文中的特定段落固定。那么,我该如何解决这两个情况呢?

再次,

  1. 正文和边距内容的背景颜色不同。(请参阅 tex.stackexchange.com 网站中的类似问题面板)
  2. 使边距部分的内容相对于正文段落保持固定。

我尝试过使用两种颜色的背景图像并将其拉伸到整个页面,但效果很糟糕......它与主文本和边距不太一致。

欢迎任何建议。

答案1

可以使用以下方法解决颜色问题埃索一皮克. 可以使用以下方法将边距处的数字向上或向下移动边注。但有时建议搬家,所以你应该看看边距修正也是。这里有一个比要求的颜色更多的示例:

\documentclass{scrbook}% You may use any other KOMA-Script class or
                       % e.g. a standard class.

\usepackage[english]{babel}
\usepackage{blindtext}% for demo only

\usepackage[demo]{graphicx}% remove option `demo' at real life
\usepackage[svgnames]{xcolor}% to have colors (see http://ctan.org/pkg/xcolor)
\usepackage{eso-pic}% put things into background (see http://ctan.org/pkg/eso-pic)
\usepackage{marginnote}% non floating margin notes (see http://ctan.org/pkg/marginnote)

\AddToShipoutPicture{% from package eso-pic: put something to the background
  % 1. Background
  \AtPageLowerLeft{% put it at the left bottom of the page
    \color{LightGrey}\rule{\LenToUnit\paperwidth}{\LenToUnit\paperheight}%
  }%
  % 2. Headline
  \AtTextUpperLeft{% put it at the left top of the text area
    \put(0,\LenToUnit{\dimexpr\headsep-\dp\strutbox\relax}){% move it up
      \color{BurlyWood}\rule{\LenToUnit\textwidth}{\LenToUnit\headheight}%
    }%
  }%
  % 3. Text area
  \AtTextLowerLeft{% put it at the left bottom of the text area
    \color{LightSkyBlue}\rule{\LenToUnit\textwidth}{\LenToUnit\textheight}%
  }%
  % 4. Bottom
  \AtTextLowerLeft{% put it at the left bottom of the text area
    \put(0,\LenToUnit{\dimexpr-\footskip-\dp\strutbox\relax}){% move it down
      % Note: While there is no \footheight, I'm using \headheight here.
      \color{BurlyWood}\rule{\LenToUnit\textwidth}{\LenToUnit\headheight}%
    }%
  }%
}

\setcapindent{0pt}% The margin is too small for hanging captions.

\begin{document}
\chapter{Test}
\blindtext\marginnote{%
  \begin{minipage}{\marginparwidth}
    \includegraphics[width=\linewidth,height=5\baselineskip]{Test}\\
    \captionof{figure}{\hspace{0pt}Example figure}
  \end{minipage}
}

\blindtext

\blinddocument
\end{document}

mpinclude如果你有大量的边缘材料,使用选项可能是一个好主意(见KOMA-Script 手册 scrguien.pdf)以获取有关此选项的更多信息)。在这种情况下,增加\marginparwidth可能是也可能不是一个好主意。

如果你想使用文本区域 + 边距区域来表示图形或公式,你可以使用类似

\begin{addmargin*}[0pt]{\dimexpr \marginparsep+\marginparwidth\relax}
\begin{equation}
  f(x)=x^2
\end{equation}
\end{addmargin*}

addmargin并且addmargin*是 KOMA-Script 环境。您可以在 KOMA-Script 手册中找到它们。

\dimexpr在我的例子中使用了一些计算。你可以在e-TeX 手册. 另一种方法是使用包计算。为了避免所有这些,\LenToUnit您可以简单地使用包图片。该包picture扩展了 LaTeX 的环境,您可以在、等处picture使用长度代替数字。\put\makebox\framebox

相关内容