Это было некоторое время, так как я стал глубоким в латекс, таким образом, я надеюсь, что хорошо, если я просто предлагаю общее представление - и я нисколько не уверен, что это будет работать:
IIRC, латекс позволяет Вам определять свое собственное счетчики . Вы могли изменить число, форматирующее среду, чтобы увеличить пользовательский счетчик, затем сделать кодовый набор абзаца условным отступом (только если счетчик равняется 1), и впоследствии заставьте его сбросить счетчик.
(не может найти, мой латекс заказывает также, моя жена взяла его!)
Редактирование: больше мыслей об этом - взглянуло на счетчики topnumber/bottomnumber, которые используются Латексом для подсчета, сколько плаваний он поместил на странице. Вы захотите использовать очень похожую структуру.
Взгляните на "collections.py". Последняя версия (из системы контроля версий) реализует OrderedDict с __eq__. Также есть __eq__ в sets.py
Детали твердые. Части должны быть простым делегированием.
def __eq__( self, other ):
if len(self) != len(other):
# Can we continue? If so, what rule applies? Pad shorter? Truncate longer?
else:
return all( self[i] == other[i] for i in range(len(self)) )