Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

26 Апрель 2018, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Необходимо разное количество страниц  (Прочитано 2301 раз)
0 Пользователей и 1 Гость смотрят эту тему.
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Стартовое сообщение: 25 Ноябрь 2015, 10:45 »

Приветствую.

Делаю для своей организации основной шаблон для документации и не могу придумать как осуществить одну хитрую вещь.

Имею три стиля - титульник (на нём как обычно нет нумерации страниц), титульник раздела и основной текст раздела. Третий стиль отличается от второго колонтитулами.
Я хочу чтобы в шаблоне работали так - Вставляют разрыв с новой страницей со стилем "титульник раздела", заполняют в колонтитуле название раздела. При добавлении страницы стиль автоматически меняется на "основной текст раздела", при этом название раздела введённый на странице с типом "титульник раздела" отображается в колонтитулах новых страниц. С этим у меня проблем не возникло - всё работает как надо.

Помимо этого нужно следующее - сквозная нумерация страниц с подсчётом общего количества страниц, она выводится на каждой странице - с этим нет проблем.
А ещё нужна нумерация страниц и количество страниц в пределах раздела. То есть на странице с типом "титульник раздела" в колонтитуле должно быть что-то типа
 "страница раздела - 1 из 5 сковзной номер страницы - 3 из 15".
Я так понимаю что тут нужно что-то с переменными в полях придумать. Отсюда и вопрос - как сделать в полях собственный счётчик? Рассмотрю любые варианты, кроме использования составного документа - это очень неудобный вариант, хотя и рабочий.

Нарисовал пример того как это должно выглядеть в итоге - в прикреплении

* Пример.pdf (28.32 Кб - загружено 11 раз.)
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 859


« Ответ #1: 3 Июнь 2016, 16:47 »

Боюсь, что Составной документ - это как раз ваш случай. Если осознано лезть в лыжах на гамак - то есть еще и макросы. В книгах Питоньяка полно примеров как посчитать "страниц всего" и пронумеровать их п/п, и как записать что-то в текст колонтитула (не виде поля). А внутрираздельную нумерацию - прекрасно делает сам OpenOffice и LibreOffice (задается Вставка - Разрыв или по разделам).   
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #2: 4 Июнь 2016, 09:15 »

К сожалению, после долги исследований я пришёл к выводу что ОО такое не может.
Составной документ тут конечно подошёл бы, но он никак не решает проблемы нумерации страниц - она всегда одна и берётся из составного документа.

Как посчитать "Страниц всего" - это самая простая задача, а могу решить её разными способами, так что это не проблема. И в текст колонтитула я тоже знаю как записать, но это не решает моих задач.
Макросы я поизучал - не помогло. Основная проблема - с номером страниц ничего нельзя сделать. Я не могу создать второй номер страниц через макросы или через сам ОО. Есть полезная штука - вставка номера страницы со смещением. Если бы записать смещение в поле в каждом разделе, а номер страницы вычислять как "номер страницы"- "смещение раздела", то я бы рещил задачу. Но средствами ОО нельзя такую формулу записать, и через макрос тоже не получается (кажется там была проблема с получением номера страницы).

Я бы даже смог написать макрос, который ручками бы рассчитывал номера каждой страницы. Но куда его потом писать? в колонтитул не запишешь - он будет повторяться на каждой странице, а нужно на каждой своё отображать. Единственный вариант - на каждой странице программно создавать врезку с текстовым полем и в поле прописывать номер страницы. Но как-то уж слишком костыльно.

Всегда любил ОО и считал что в плане макросов он имеет большие возможности. А оказалось что они очень даже скромные. Фактически, всё что можно сделать макросами можно сделать и через интерфейс. А если что-то нельзя сделать через интерфейс, то и через макрос проблематично.

Записан
kompilainenn
Ветеран
*****
Offline Offline

Сообщений: 2 312



« Ответ #3: 4 Июнь 2016, 09:38 »

вдруг поможет чем-то http://librerussia.blogspot.ru/2015/01/libreoffice-page-numbers-2.html
Записан

Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #4: 4 Июнь 2016, 13:52 »

Да, это хороший блог - я его давно уже весь изучил. К сожалению, конкретно в моём вопросе он не помог - да я могу сделать нумерацию со смещением, с разрывом и т.п. Но не могу сделать двойную - чтобы страница одновременно была и 21 и 5, например....

ОО может выполнить 99% всех задач, необходимых при создании документов. Видимо, я нашёл задачку, которая попадает в 1%, где ОО бессилен.
Записан
maksvlad
Пользователь
**
Offline Offline

Сообщений: 75


« Ответ #5: 4 Июнь 2016, 15:42 »

Идея с макросом самая персперктивная. А-ля алгоритм.
Можно получить номер страницы, где начало раздела. Запихать его в массив. Если текущая страница совпадает с элементом массива, то страница раздела = 1, далее итерация. Запихать в поле. Так как привязка к началу раздела, то счёт с 1 должен сработать. Макрос установить на любое удобное событие или кнопку.
У Питоньяка есть описание как макросом создать  Содержание (14.13. Table of contents).
Я бы взял этот макрос за основу и по описанному алгоритму дальше ковырял
Макрос пихать в поле колонтитула. Можно же задать на каких разделах он будет выводить номер страницы,  а на каких нет

N.b.
Отнимать значение текущей страницы от страницы раздела, видимо, более удобно будет.
« Последнее редактирование: 5 Июнь 2016, 04:51 от maksvlad » Записан
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #6: 6 Июнь 2016, 10:40 »

"Макрос пихать в поле колонтитула. Можно же задать на каких разделах он будет выводить номер страницы,  а на каких нет "

А вот тут можно подробнее? Есть ли возможность сделать макрос, запихать его в поле, а поле в колонтитул?

Я Питоньяка только поверхностно изучил, поэтому могу многого не знать.

Я могу вычислить нужные мне номера различными способами, но я не смог придумать как вывести это значение. И если можно вставить поле, значение которого будет считаться макросом,да ещё и в колонтитуле (то есть находясь в колонтитуле макрос запускался бы для каждой страницы) - это решило бы проблему.
Записан
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #7: 6 Июнь 2016, 12:18 »

Каким-то неведомым образом я смог это сделать =)

Проблемы перевода ОО на русский сильно сказались. Питоньяк в своей книге в разделе про поля упоминает 2 поля - PageReferenceGet и PageReferenceSet. Судя по описанию это то что мне нужно. Создав их через макрос я выяснил, что это пункты "Задать переменную страницы" и "Показать переменную страницы". В начале раздела делаем "Задать переменную страницы" с параметров ВКЛ в самом тексте, а в колонтитул один раз вставляем "Показать переменную страницы". Остаётся вопрос с формированием оглавления, но уж это точно можно легко макросом сделать.
Записан
maksvlad
Пользователь
**
Offline Offline

Сообщений: 75


« Ответ #8: 6 Июнь 2016, 14:27 »

"Макрос пихать в поле колонтитула. Можно же задать на каких разделах он будет выводить номер страницы,  а на каких нет "

А вот тут можно подробнее? Есть ли возможность сделать макрос, запихать его в поле, а поле в колонтитул?
для ЛОО 5.1
Вставка>Поле>Еще поля (или Ктр+Ф2) >Функции>Выполнить макрос
Все это успешно вставляется в колонтитул.
ЛКМ по полю запускает макрос.
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 859


« Ответ #9: 10 Июнь 2016, 17:16 »

iamfomik - если вы не упомянули фразу Поддокумент в контексте Составной документ - значит вы не до конца изучили тему СД. Поддокумент - входит в составной, но имеет свою нумерацию. Так что наверняка решение в OpenOffice и LibreOffice есть. Честно говоря, я еще ни разу не сталкивался с заслуживающей внимания задачей, которую не удалось бы решить помощью OpenOffice и LibreOffice, да и СПО вообще.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
iamfomik
Новичок
*
Offline Offline

Сообщений: 6


« Ответ #10: 10 Июнь 2016, 17:54 »

Что-то не понимаю на что это вы намекаете?
Я меня СПО и ОО тоже всегда справляется со всеми задачами, но вот нашлась одна, которая никак не решалась.

А вы сами хорошо изучили составные документы? Есть где-то подробное описание работы с ними? Всё что я находил - создать составной документ и вставить в него вложенные.

"Поддокумент - входит в составной, но имеет свою нумерацию" - вот вы откуда это взяли? Можете доказать или просто так предположили? Я на всякий случай перепроверил - создал два документа, сделал в них нумерацию. Создал составной, вставил в него эти два документа. Итог - нумерация страниц одна. Сквозная. Определённая в составном документе. Кроме того, колонтитулы из поддокумента заменяются на колонтитулы из составного документа. Что я упустил?
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 859


« Ответ #11: 11 Июнь 2016, 17:09 »

В ПН вложу ссылку на офдок. А счас на грибах (Кубань) - белых море...
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
anton
Новичок
*
Offline Offline

Сообщений: 10


« Ответ #12: 20 Март 2018, 13:25 »

Походу заблудился...
А что всё со "смещением" не решится вопрос? Оно есть, как функция, но пользоваться им невозможно.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!