PiRSquared17 / ooofbtools

Automatically exported from code.google.com/p/ooofbtools
0 stars 0 forks source link

Некорректная нумерация сносок/примечаний #66

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Проверено на OOoFBTools-1.25. Проблема 
наличествует

Начиная с где-то версии 1.23 OOoFBTools разделяет 
сноски обычные и концевые (толкуя первые 
как собственно сноски, а последние как 
комментарии).
Но.
Для нумерации используется встроенный 
счётчик сносок LibreOffice.
В результате чего, если в тексте книги 
встречаются сноски обоих типов, то 
нумерация (сносок и комментариев) 
выглядит... не лучшим образом.

Пример тестового документа:
<p>Test<a l:href="#n1" type="note">[1]</a></p>
<p>test<a l:href="#c2">{2}</a></p>
<p>test<a l:href="#n3" type="note">[3]</a></p>
<p>test<a l:href="#c4">{4}</a></p>

Полагаю правильным встроенный счётчик LO 
использовать для контроля целостности 
(простановки всех сносок/комментариев), а 
нумеровать их "своими" (внутри OOoFBTools) 
счётчиками.

Применительно к цитированному примеру, 
правильный файл должен выглядеть так:
<p>Test<a l:href="#n1" type="note">[1]</a></p>
<p>test<a l:href="#c1">{1}</a></p>
<p>test<a l:href="#n2" type="note">[2]</a></p>
<p>test<a l:href="#c2">{2}</a></p>

Original issue reported on code.google.com by BlackCat...@yandex.ru on 2 Dec 2011 at 10:15

GoogleCodeExporter commented 9 years ago
Да, есть такое дело... Проблема в том, что при 
текущей архитектуре конвертера крайне 
сложно ввести раздельный счетчик 2-х видов 
сносок. На С++ это легко. А в ООо - ОпенБэйсик, 
без классов. Код настолько запутается и 
усложнится... С другой стороны, скорость 
обработки текста упадет по экспоненте - 
несколько раз придется анализировать все 
массивы на признак этих 2-х видов сносок 
(точнее - каждый элемент со всеми 
элементами). Даже пока и не знаю, что 
придумать.

Original comment by dik...@gmail.com on 21 Dec 2011 at 4:14

GoogleCodeExporter commented 9 years ago
Кстати, появился вопрос: Сейчас для сносок 
экспорт выглядит так:
<p>Test<a l:href="#n1" type="note">[1]</a></p>
а для концевых сносок - так:
<p>test<a l:href="#c1">{1}</a></p>

может для концевых сносок сделать так:
<p>test<a l:href="#c1" type="comment">{1}</a></p>
?
Не помню, как делает FBE, и что в "стандарте" fb2 
об этом сказано...

Original comment by dik...@gmail.com on 21 Dec 2011 at 6:40

GoogleCodeExporter commented 9 years ago
А если тупо: читаем документ.
Сноска обычная - создаём массив "fnotes" или 
добавляем элемент в этот массив.
Сноска концевая --- аналогично, только 
массив второй --- "comments".
Ну и на этапе сборки документа писать 
сначала body основного текста, потом 
комментариев и наконец сносок.
?

Про формат:
1. Быдло-поделие FBE фтопку; аффтараф, 
апологетов-фанатиков --- учить "The TeXBook" (и 
чтобы до успешной сдачи экзамена не 
возвращались).
2. Буквально недавно играл квест с 
"обычными" сносками. Резюме: тип ссылки и 
соответствующий параметр body необходимы.
Следствие: аналогично очевидным образом 
скорее всего необходимо задание типа 'comment' 
(за написание не ручаюсь) и для комментария.
Могу запросить пример кода FBE.

И ГЛАВНОЕ (раз уж я здесь): толкование 
сносок должно быть управляемым.
Т.е. должен быть выбор:
1. Все сноски (и "обычные" и "концевые") 
толковать как "сноски".
2. Что имеем сейчас ("обычные" --- "сноски", 
"концевые" --- "комментарии"), 
целесообразность инверсии под вопросом.
3. Все сноски толковать как "комментарии".

Original comment by BlackCat...@yandex.ru on 22 Dec 2011 at 7:55

GoogleCodeExporter commented 9 years ago
Сделал таки нормальную сквозную нумерацию 
для всех видов сносок! Оказывается, я уже 
просто подзабыл архитектуру своей же 
программы :). Она спокойно позволила без 
дополнительных затрат памяти и времени на 
обработку ввести еще один счетчик концевых 
сносок.
Все работает, но лучше пользователям 
потестировать... На всякий случай... Когда 
выложу новый релиз...

В FBE я посмотрел - для комментариев type="comment" 
не ставится, в <p>Test<a l:href="#c1" type="comment">[1]</a></p>
Я ввел type="comment"
Если это не нужно, или кому-то будет мешать - 
напишите, только обоснуйте - уберу.

Про "толкование сносок должно быть 
управляемым."
Так и сделано. В Настройках, если задана 
опция для сносок "В разные блоки", то сноски 
воспринимаются, как сноски, а Концевые 
сноски - как Примечания. Если же задана 
опция "В общий блок" - то ВСЕ - и сноски, и 
Концевые сноски интепретируются, как 
"Примечания" - Название Заголовка блока 
сносок можно так же выбирать из 
предложенного Списка. И вид скобок - тоже :)

Спасибо за участие в развитии программы.

Original comment by dik...@gmail.com on 22 Dec 2011 at 9:41

GoogleCodeExporter commented 9 years ago

Original comment by dik...@gmail.com on 18 Feb 2012 at 11:37