有没有办法防止 marginpars 与使用 fancy tabs 包创建的标签发生冲突

有没有办法防止 marginpars 与使用 fancy tabs 包创建的标签发生冲突

我正在自动创建大型文档,这些文档使用 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在边距和标签之间留出空白。最后,您可能需要调整标签内使用的字体大小。

示例 sem colisão

这不是垂直的oddsidemargin您想要的解决方案,但我认为这是最优雅和最令人不安的。但是,当您设置的布局太薄时,它不起作用。

相关内容