实现“aside”环境来解释计算细节

实现“aside”环境来解释计算细节

我希望将文本的各部分设置为较小的字体,并采用不同的缩进,并在视觉上与文本的其余部分分开(例如通过水平线)。我希望使用这种方法来突出文本中不太重要的部分,这些部分会给出一些额外的解释(例如陈述一个定理,然后为感兴趣的人以较小的字体给出证明)。

我从另一个(旧)文档中复制了一个定义,但不幸的是它存在一些问题。请帮助解决这些问题。

下面给出了一个例子。取消注释有问题的部分将触发错误(参见注释)。

\documentclass[a4paper]{article}
\usepackage{graphicx}
\usepackage{framed} % For the "details" environment

% just a horizontal rule for the "details" environment
\newcommand{\optionrule}{\noindent\rule{1.0\textwidth}{0.75pt}}

% the "details" environment declaration.
\newenvironment{aside}{%
  \def\FrameCommand{\hspace{2em}}
  \MakeFramed {\advance\hsize-\width \small}\optionrule}
{\newline\optionrule\endMakeFramed}

\begin{document}
\begin{aside}
asd
%\begin{figure}
% (some figure)
% adding this figure causes a ``Floats lost'' error. 
%\end{figure}
asd
% an empty line here causes a ``There's no line to end here error''
\end{aside}
\end{document}

答案1

框架包您可以轻松创建和定制您需要的环境。

用 定义的环境mdframed不允许浮点数(与framed包中的环境情况相同),但您不需要在其中一个环境中使用浮点数。借助包\captionof中的命令,caption您可以为图像或表格添加标题。

一个小例子(当然,做必要的修改以满足您的需要);我稍微修改了发布的原始设计,使环境居中,以便规则以相同的量悬挂在两端(遵循芭芭拉·比顿的评论):

\documentclass[a4paper]{article}
\usepackage{mdframed}
\usepackage{caption}
\usepackage{lipsum}% just to generate some filler text

\newenvironment{aside}
  {\begin{mdframed}[style=0,%
      leftline=false,rightline=false,leftmargin=2em,rightmargin=2em,%
          innerleftmargin=0pt,innerrightmargin=0pt,linewidth=0.75pt,%
      skipabove=7pt,skipbelow=7pt]\small}
  {\end{mdframed}}

\begin{document}

\lipsum[1]
\begin{aside}
\lipsum[1]
\begin{center}
  \rule{4cm}{2cm}
  \captionof{figure}{A test figure}
  \label{fig:test}
\end{center}
\end{aside}

\end{document}

如果要继续使用framed并保留原始布局,则通过从\newline的定义中删除aside,可以防止在关闭环境之前留下空行而产生的错误。您可以改用类似这样的方法:

\usepackage{framed}

\newcommand{\optionrule}{\noindent\rule{1.0\textwidth}{0.75pt}}

\newenvironment{aside}
  {\def\FrameCommand{\hspace{2em}}
   \MakeFramed {\advance\hsize-\width}\optionrule\small}
{\par\vskip-\smallskipamount\optionrule\endMakeFramed}

为了能够有脚注,您可以使用\footnotemark,\footnotetext机制:

\begin{aside}
\lipsum*[1] Text\footnotemark
\begin{center}
  \rule{4cm}{2cm}
  \captionof{figure}{A test figure}
  \label{fig:test}
\end{center}
\end{aside}
\footnotetext{A test footnote}

相关内容