带有图形/表格的环境边缘左侧栏

带有图形/表格的环境边缘左侧栏

我正在写一篇包含定理和证明的文档。由于有些读者可能对证明不感兴趣,因此我想突出显示它们,以便读者可以轻松跳过它们。

我想到最好的主意是在证明的左边距放一条线(如果你有更好的主意,我很感兴趣)。

问题是有些校样可能需要一页以上的时间,并且包含图片和/或表格。目前我在之前的帖子中找到了解决方案,它使用 framed 包和 \leftbar 命令。它适用于多页,但不适用于图片和表格。

\documentclass{article}

\usepackage{xcolor}
\usepackage{framed}

\renewenvironment{leftbar}[1][\hsize]
{%
    \def\FrameCommand
    {%
        {\color{black}\vrule width 0.5pt}%
        \hspace{0pt}%must no space.
        \fboxsep=\FrameSep\colorbox{white}%
    }%
    \MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}%
}
{\endMakeFramed}

 \newenvironment{proof}[1][Proof]{\leftbar\begin{trivlist}\item[\hskip\labelsep {\bfseries#1}]}{\end{trivlist}\endleftbar}

\def\fact{It is  practically a big lie  that LaTeX makes  you focus on
  the content without bothering about the layout.}

\begin{document}

\begin{proof}
  \fact
\end{proof} % Works

%\begin{proof}
%  \fact
%  \begin{figure}
%    \centering My figure
%    \caption{Test figure}
%  \end{figure}
%\end{proof} % Does not works

\end{document}

我不太明白环境是如何工作的。你知道是否可以让它适用于包含表格或图形的证明吗?

(如果你知道为什么该条从证明前一行开始并在证明后一行结束,我也很感兴趣,但这不是我主要关心的)

提前致谢。

答案1

将其放置在环境proof内部figure,否则“事实”最终可能会出现在与图形不同的位置。

已编辑,以允许校样中使用多图和分页符(通过使用该\captionof{figure}{}方法)。

\documentclass{article}
\usepackage{caption}
\usepackage{xcolor}
\usepackage{framed}
\usepackage{lipsum}
\renewenvironment{leftbar}[1][\hsize]
{%
    \def\FrameCommand
    {%
        {\color{black}\vrule width 0.5pt}%
        \hspace{0pt}%must no space.
        \fboxsep=\FrameSep\colorbox{white}%
    }%
    \MakeFramed{\hsize#1\advance\hsize-\width\FrameRestore}%
}
{\endMakeFramed}

 \newenvironment{proof}[1][Proof]{\leftbar\begin{trivlist}\item[\hskip\labelsep {\bfseries#1}]}{\end{trivlist}\endleftbar}

\def\fact{It is  practically a big lie  that LaTeX makes  you focus on
  the content without bothering about the layout.}
\def\gappar{\vspace{1em}\par}
\begin{document}
\begin{proof}
  \fact
\end{proof} % Works

\begin{figure}[ht]
\begin{proof}
  \fact\gappar
   \centering\fbox{My figure}
    \caption{Test figure}
\end{proof} % Now it works
\end{figure}

\begin{proof}
  \fact\gappar
    {\centering\fbox{My figure 1}
    \captionof{figure}{Test figure 1}\gappar}
   \lipsum[4]\gappar
    {\centering\fbox{My figure 2}
    \captionof{figure}{Test figure 2}\gappar}
    QED
\end{proof} % Now it works
\end{document}

在此处输入图片描述

答案2

我有另一个解决方案,其中放置了“证明”一词栏,并且栏可以跨页拆分。它本质上使用ntheoremframed包。以下是代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{lipsum}
\usepackage[svgnames, x11names]{xcolor}
%\usepackage[showframe,nomarginpar]{geometry}%
%\usepackage{fancybox}
\usepackage{xspace}
\usepackage{framed}
\usepackage[framed]{ntheorem}

\theoremstyle{nonumberplain}
\theorembodyfont{\upshape\small}
\theoremheaderfont{\color{IndianRed3}\sffamily\bfseries}%
\newlength{\FrameIndent}
\settowidth{\FrameIndent}{Proof\hspace{2\fboxsep}}%
\def\FrameCommand{%
\hspace*{\FrameIndent}\textcolor{IndianRed3}{\vrule width 0.6pt}\hspace{\fboxsep}
}%

\newframedtheorem{proof}{\llap{Proof\hspace{4\fboxsep}}\hspace{-\parindent}}%%{Proof}%

\begin{document}

\lipsum[1-3]

\begin{proof}
  \lipsum[4-6]
\end{proof} %

\end{document} 

在此处输入图片描述

在此处输入图片描述

相关内容