我有一个命令(此处贡献者的补充)可以将文本放在边距中。我想为该文本添加边框以使其突出,但当我尝试这样做时,我失去了使用换行符分隔文本的能力。我尝试了 \frame、\framebox 和 \fbox,结果相同。这是使用 \framebox 的 MWE:
\documentclass{amsbook}
\newcommand{\MargNote}[2] % Places text in the margin
{ % start of MargNote
\marginpar{ % start of marginpar
\framebox{ % start of framebox
\vspace{#1}
\footnotesize \textit{\textbf{#2}}
} % end of marginpar
} % end of framebox
} % end of MargNote
\begin{document}
\MargNote{0pt}{This is a very \\ long margin note \\ that I would \\ like to break in \\several places.}
\end{document}
如果我删除 \framebox,文本会在指定位置中断,一切都正常,只是没有框架。也许我想要的是不可行的,但我想问一下。
答案1
你需要使用\框架框或者简单地\fbox`在\parbox;后者创建一个段落框并将其内容分成多行。
编辑。我不相信你应该使用\vspace
。我认为\fboxsep
更好,因为它控制框周围的填充。这是一个长度名称,因此你应该使用它\setlength
来更改它,例如
\setlength\fboxsep{6pt}
您可能仍会使用,\vspace
但可能在之外\fbox
。
示例代码:
\documentclass{amsbook}
\usepackage{ragged2e,microtype}
\usepackage{kantlipsum}
\newcommand{\MargNote}[2] % Places text in the margin
{% start of MargNote
\setlength\fboxsep{#1}
% \vspace{#1}\footnotesize%
\marginpar{% start of marginpar
\fbox{\parbox{\dimexpr\marginparwidth-2\fboxsep-2\fboxrule}{% start of framebox
\RaggedRight\footnotesize
\textit{\textbf{#2}}
} % end of marginpar
} % end of framebox
} % end of MargNote
}
\begin{document}
\MargNote{3pt}{This is a very \\ long margin note \\ that I would \\ like to break in \\several places.}
\kant[1-3]
\end{document}