我正在写一篇包含定理和证明的文档。由于有些读者可能对证明不感兴趣,因此我想突出显示它们,以便读者可以轻松跳过它们。
我想到最好的主意是在证明的左边距放一条线(如果你有更好的主意,我很感兴趣)。
问题是有些校样可能需要一页以上的时间,并且包含图片和/或表格。目前我在之前的帖子中找到了解决方案,它使用 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
我有另一个解决方案,其中放置了“证明”一词前栏,并且栏可以跨页拆分。它本质上使用ntheorem
和framed
包。以下是代码:
\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}