
tufte-*
これは既知の問題であり\sidenote
、環境またはes\marginnote
内で使用するとビルドされません。回避策は見つからず、このトピックに関するほとんどの投稿では回避策がないことが示唆されています。mdframed
tcolorbox
私が望んでいるのは、単にいくつかの段落の後ろに素敵なグレーの背景を置くことですtufte-handout
。これはできますか?それなし mdframed
またはtcolorbox
?
編集: 最小限の例
\documentclass[nobib,justified]{tufte-handout}
\usepackage{mdframed}
\newmdenv[
linecolor=lightgray,
linewidth=3pt,
leftmargin=0pt,
innerleftmargin=0pt,
rightmargin=0pt,
innerrightmargin=0pt
]{graybox}
\usepackage{lipsum}
\begin{document}
\begin{graybox}
\lipsum[1]
\marginnote{This is a marginnote}
\end{graybox}
\end{document}
ビルドに失敗する! LaTeX Error: Float(s) lost.
答え1
これはちょっとバカなハックかもしれないたくさんバグはありますが、ページ区切りから離れた短い段落では機能するようです。
\documentclass{tufte-handout}
\usepackage{tcolorbox}
\usepackage{blindtext}
\usepackage{environ}
\makeatletter
\NewEnviron{grayground}{%
\noindent\smash{\begin{tcolorbox}[colback=gray!20, colframe=gray!20, oversize, top=0pt, bottom=0pt, left=4pt, right=4pt, box align=top]
\let\sidenote\@gobble
\let\marginnote\@gobble
\color{gray!20}\BODY
\end{tcolorbox}}\par\BODY}
\makeatother
\begin{document}
\begin{grayground}
\blindtext\sidenote{\blindtext}\blindtext
\end{grayground}
\end{document}
説明
基本的な考え方は、まず を使用してテキストを 1 回印刷しtcolorbox
、 または を抑制してsidenote
、marginnote
テキストを背景と同じ色にして非表示にすることです。
次に、本物アクティブなサイドノートと余白ノートが上部に表示されたテキスト。
さて、私は、サイドノートの上付き文字があるバージョンと、そうでないバージョンの寸法が非常に似ていることを期待しています。したがって、2 つのテキストはまったく同じではありませんが、ほぼ同じ量の垂直方向のスペースを占めるはずなので、これを実行できます。
tcolorbox
これを実装するには、 を使用して最初の印刷ラウンドを実行するだけです。その後、それを粉砕します。
内部でtcolorbox
letmarginnote
とsidenote
to を@gobble
使用してそれらの機能を抑制することができます。最後に同じテキストを再度印刷して終了します。
使いやすくするために、すべてを Environ 内にラップすることができます。
出力は次のようになります (画像は少し古くなっています。コードを少し調整して、より適合するようにしました)。