در ابتدا اجازه بدید علت فاصله رو توضیح بدم یکم و بعد بریم سراغ حلش که جا بیفته.
همونطور که میدونین، محیط proof
رو به این صورت تغییر دادیم که از خط جدید شروع بشه! از طرفی، محیطهایی مثل: enumerate
، itemize
وغیره، خودشون از خط جدید شروع میشن؛ پس وقتی یک محیطی مثل enumerate
داخل محیط proof
نوشته میشه، بالاش یک خط خالی ایجاد میشه. همچنین محیطهای لیستوار، بهصورت پیشفرض، اندکی فاصله قبل و بعدشون اضافه میکنن که از متن معمولی متمایز باشند.
اینهایی که گفتم باعثِ اون فاصلهها شدن و اون فاصلهها هم شرایطی رو به وجود آوردن که صفحههاتونم دو تا اضافه شدن.
برای رفع اون فاصلههای بخصوص، میتونین از بستۀ enumitem
کمک بگیرین. از دو تا آپشن استفاده خواهیم کرد.
برای حذف فاصلۀ پیشفرض در بالا و پایین محیط enumerate
وغیره:
topsep=0pt
برای حذف خط خالیِ ایجادشده:
before=\vspace*{-\baselineskip}
البته من توصیه میکنم از آپشن اول استفاده نکنین یا دستکم مقدارشو صفر نذارین.
این هم نمونه برای فایلتون:
\documentclass[11pt]{article}
\usepackage{amsthm} % for theorems and proof
\usepackage{enumitem} % for enumerate and etc.
% proof text in new line
\makeatletter
\renewenvironment{proof}[1][\proofname]{\par
\pushQED{\qed}%
\normalfont \topsep6\p@\@plus6\p@\relax
\trivlist
\item\relax
{\bfseries
#1\@addpunct{.}}\\
}{%
\popQED\endtrivlist\@endpefalse
}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% define new environment
\newenvironment{myenum}%
{\enumerate[label=(\arabic*), ref=\arabic*,%
topsep=5pt, before=\vspace*{-\baselineskip}]}%
{\endenumerate}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\textwidth 14.5cm
\textheight 21.0cm
\oddsidemargin 0.4cm
\evensidemargin 0.4cm
\voffset -1cm
\begin{document}
Undesirable:
\begin{proof}
\begin{enumerate}[label=(\arabic*), ref=\arabic*]
\item We have undesirable item
\item We have undesirable item
\end{enumerate}
\end{proof}
Desirable:
\begin{proof}
\begin{enumerate}[label=(\arabic*), ref=\arabic*,%
topsep=5pt, before=\vspace*{-\baselineskip}]
\item We have desirable item
\item We have desirable item
\end{enumerate}
\end{proof}
My new environment:
\begin{proof}
\begin{myenum}
\item We have desirable item
\item We have desirable item
\end{myenum}
\end{proof}
\end{document}
توضیحات
آپشنهای
label=(\arabic*), ref=\arabic*
برای اینه که
شمارهگذاریها، داخل پرانتز
و موقع ارجاعدادن به اونها، بدون پرانتز
باشند.
اگه از محیطهای proof
و enumerate
زیاد استفاده خواهید کرد، یک محیط جدید تعریف کردم که دیگه نیازی به نوشتن آپشنها برای enumerate
نباشد. اسمش اینه: myenum
. اگه کد رو ببینین متوجه میشین.
خروجی: