我需要内双面簇绒纸文档的边距。有一个接近的问题,它已经这个答案。这个答案很完美。他们的输出是: (您可以在页面内部看到这条线)
不同之处在于我使用了tufte-book
类,但该示例针对的是article
类。当我\marginnote{Hello}
在此代码片段中使用时,LaTex 会给出错误! LaTeX Error: Not in outer par mode.
\begin{mdframed}[style=MDFStyGrayBar]
\lipsum
%\marginnote{Hello}
\lipsum
\end{mdframed}
(完整代码被厚颜无耻地从链接中窃取,见下文)
我想知道如何\marginnote
在mdframed
环境中使用,如果可能的话。我的搜索结果是这个问题,同样没有任何答案。
我还有相当多的\marginnote
、marginfigure
和figure*
浮点数(带有一些 tikz 填充)。我认为它们都具有相同的工作原理,因此我希望它们至少在其中一个问题得到解决后就能正常工作。
欢迎任何代码修改,因为我仍然不明白该解决方案如何工作(当我看到@和周围的代码时我感到很害怕)。
\documentclass[twoside,symmetric,notoc,justified]{tufte-book}%
\usepackage[utf8]{inputenc}
\usepackage[latin]{babel}
\usepackage[OT1]{fontenc}
\usepackage[pdftex]{graphicx}
\usepackage{lipsum}
\usepackage{float}
\usepackage{pgf,caption,calc}
\usepackage{tikz,tkz-euclide}
\usetkzobj{all}
\geometry{
%showframe,
paperwidth=145mm,
paperheight=215mm,
inner=16mm,
outer=10mm,
top=10mm,
bottom=40mm,
marginparsep=3mm,
marginparwidth=40mm,
includemp,
includehead,
}
\usepackage[framemethod=TikZ]{mdframed}
\makeatletter
\newrobustcmd*\if@mdf@pageodd@bar{%
\zref@refused{mdf@pagelabel-\the\value{mdf@zref@counter}}%
\ifodd\zref@extract{mdf@pagelabel-\the\value{mdf@zref@counter}}%
{mdf@pagevalue}%
\setlength\mdf@rightmargin@length{\mdf@outermargin@length}%
\setlength\mdf@leftmargin@length{\mdf@innermargin@length}%
\mdfsetup{hidealllines=true,leftline=true}%
\else
\setlength\mdf@rightmargin@length{\mdf@innermargin@length}%
\setlength\mdf@leftmargin@length{\mdf@outermargin@length}%
\mdfsetup{hidealllines=true,rightline=true}%
\fi%
}
\newrobustcmd*\changepageodd{\let\if@mdf@pageodd\if@mdf@pageodd@bar}
\makeatother
\mdfdefinestyle{MDFStyGrayBar}{%
linecolor=gray,
backgroundcolor=white,
%
outerlinewidth=5pt,
%
topline=false,
bottomline=false,
rightline=false,
leftline=true,
%
innertopmargin=4pt, %\baselineskip
innerbottommargin=8pt,
innerrightmargin=3pt,
innerleftmargin=3pt,
%
skipabove=\topskip,
skipbelow=\topskip,
settings={\changepageodd}
}
\usepackage{showframe,lipsum}
\begin{document}
\noindent Some normal text.
\begin{mdframed}[style=MDFStyGrayBar]
\lipsum
%\marginnote{Hello}
\lipsum
\end{mdframed}
\end{document}
答案1
tufte-book 类的定义\marginnote
基于\marginpar
。这是一个浮点数,它不能在 mdframed 环境中工作。
您可以切换到包\marginnote
的定义marginnote
,它不是浮点数。请注意,这会完全覆盖 tufte 定义。因此,tufte 的所有设置或选项均不适用:
\documentclass[twoside,symmetric,notoc,justified]{tufte-book}%
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[framemethod=TikZ]{mdframed}
\let\marginnote\someundefinedcommand
\usepackage{marginnote}
\begin{document}
\noindent Some normal text.
\begin{mdframed}
blblb
\marginnote{Hello}
\end{mdframed}
\end{document}