我正在自动创建大型文档,这些文档使用 fancytabs 作为缩略图标记,并使用 marginpar 注释来传达有关文本的信息。(我实际上将它们放在 Tikz 菱形中,因为 fancytabs 无论如何都已加载 tikz - 参见示例)。问题是,在几百页的文档中,marginpar 经常会与 fancytab 发生冲突。如果我不得不手动移动它们,那将非常耗时。
我可以算出页面上的哪个位置会出现漂亮的标签,并且按照示例,手动移动边距很容易。我无法确定边距会出现在何处(垂直方向)。边距还会确保边距注释不会相互冲突,但我很难弄清楚如何阻止边距与标签冲突。
非常感谢任何帮助或指点。
这是一个简短的工作示例
\documentclass[11pt, oneside]{article}
\usepackage{geometry}
\geometry{letterpaper}
\usepackage{amssymb}
\usepackage{fancytabs}
\usepackage{lipsum}
\fancytabsWidth{3cm}
\let\oldmarginpar\marginpar
\renewcommand{\marginpar}[2][anchor=center]{%
\oldmarginpar{
~\\ % Need this, rather strangely, to get the tikz node to anchor properly.
\tikz \draw node (one) [] at (0,0) {} node (two) [anchor=north,text width=2.0cm,draw,align=left,text badly ragged,fill=black!05,rounded corners,#1] at (0,0) {\baselineskip=-2pt ~\\#2 \\ } ; }
}
\begin{document}
\lipsum[1]
\fancytab{fancy tab}{2}
\textbf{Some more text which will contain a little margin note, the problem being that the margin note collides with the fancy tab that we have created. Is there a way to get the margin note to shift down below the tab}
\marginpar{This note collides}
\marginpar[yshift=-2cm]{This one has been manually shifted out the way}
\lipsum
\end{document}
答案1
最简单的答案:将的值调整\fancytabsWidth
为参数的一部分\oddsidemargin
:
\fancytabsWidth{0.75\oddsidemargin}
这会将标签分开,并0.25\oddsidemargin
在边距和标签之间留出空白。最后,您可能需要调整标签内使用的字体大小。
这不是垂直的oddsidemargin
您想要的解决方案,但我认为这是最优雅和最令人不安的。但是,当您设置的布局太薄时,它不起作用。