Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис    FTP-сервер
Задачки для любознательных :  ИРБИС Irbis
 
Колонтитул
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 16, July, 2014 14:49

Задачка не по ИРБИСу, но для ИРБИСаsmiling smiley
Имеется некий текст, в тексте есть названия фрагментов текста (типа разделов) выполненных по стилю 1 и по стилю 2. Как вывести в колонтитул нечетной страницы значение текста в стиле 1 и на четной странице - в стиле 2?
Предварительно таблицы шрифтов и стилей описаны. Файл представить в формате rtf.

Re: Колонтитул
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 17, July, 2014 09:16

обращаем внимание на конструкции после параметров страниц
начиная с
\facingp Оператор facing page определяет внешний вид страницы. Он устанавливает например, печатается колонтитул на четных или на нечетных страницах. Если за оператором следует параметр 0, то вывод подавляется.
и

\headerl
Оператор определяет верхний колонтитул четной страницы (left hand header), на которой колонтитул выводится с выравниванием влево.
\headerr
Оператор устанавливает верхний колонтитул нечетной страницы, на которой колонтитул выводится с выравниванием вправо (right hand header).
\headerf
Оператор устанавливает верхний колонтитул первой страницы (first page header).

\footerl
Оператор устанавливает нижний колонтитул четной страницы (left hand footer), на которой колонтитул выводится с выравниванием влево.
\footerr
Оператор устанавливает нижний колонтитул нечетной страницы, на которой он выводится с левосторонним выравниванием (right hand footer).
\footerf
Оператор устанавливает нижний колонтитул первой страницы (first page footer).

возможно так же использование команд
\headery000
Команда задает Y-координату верхнего колонтитула. Значение указывается относительно верхнего края страницы и по умолчанию принимается равным 720 twips.
\footery000
Команда задает Y-координату нижнего колонтитула. Значение указывается относительно нижнего края страницы и по умолчанию принимается равным 720 twips.

Государственная универсальная научная библиотека Красноярского края

Вложения: Doc1.rtf (2.1KB)  
Re: Колонтитул
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 17, July, 2014 14:22

Задачка заключается не в том, чтобы вывести не обычный колонтитул (верхний или правый), а в выводе так называемого скользящего колонтитула (колонтитул словарного типа), который автоматически меняется от страницы к странице. Анализ текста проводится с начала страницы.

Re: Колонтитул
Пользователь: GLUKa (IP-адрес скрыт)
Дата: 17, July, 2014 18:34

для четных страниц
{\headerl \pard\plain \ql \widctlpar \fs24
{\field{\*\fldinst {
STYLEREF "\'c7\'e0\'e3\'ee\'eb\'ee\'e2\'ee\'ea 1" \\* MERGEFORMAT }}{\fldrslt { \'f0\'e0\'e7\'e4\'e5\'eb4}}}

\field - вставляет поля
в данном случае текст выделенный в разделе стилем Заголовок 1
STYLEREF "\'c7\'e0\'e3\'ee\'eb\'ee\'e2\'ee\'ea 1"

}
но чтоб на каждому разделу был свой заголовок, еще нужно каждый раздел именно отделять
\sectd - начало раздела
\pard\plain

\s1\ql \widctlpar \b\f1\fs32
{ \'f0\'e0\'e7\'e4\'e5\'eb 1 \sect }
конец раздела
нечетный колонтитул по аналогии.

а чтобы к колонтитулу применялся нужный стиль уже прописанный в таблице \stylesheet
перед выводом STYLEREF напишите каким стилем вы хотите чтоб он выводился
например
для нечетной страницы колонтитул будет выводится стилем описанным в таблице \s3
{\headerr \pard\plain \ql \widctlpar \fs24
{\field{\*\fldinst {\s3 STYLEREF "\'c7\'e0\'e3\'ee
\'eb\'ee\'e2\'ee\'ea 1" \\* MERGEFORMAT }}{\fldrslt {\s3 \'f0\'e0\'e7\'e4\'e5\'eb3}}}
}

Государственная универсальная научная библиотека Красноярского края



Редактировано 2 раз. Последний раз 17.07.2014 18:39 пользователем GLUKa.

Вложения: Doc1.rtf (3.1KB)   Doc1.rtf (2.3KB)  
Re: Колонтитул
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 18, July, 2014 14:17

Вам удалось обойти подводный камень. На каждой странице в колонтитулах должен присутствовать название раздела. Если не ввести разделы, то поле STYLEREF будет выводиться один раз в самом начале или конце (в зависимовсти от анализа страницы и документа).
+
Немножко дополню.
Чтобы rtf-ридер мог различать колонтитулы четной (левой) и нечетной (правой) страниц, необходимо в заголовке описания документа вставить ключевое слово-флаг \facingp.
Если требуется задать особый вывод колонтитула первой страницы - \titlepg. Для вывода пустого колонтитула на первой страницы нужно соответственно вывести пустой колонтитул: {\headerf }
По умолчанию разрыв раздела будет находится на следующей странице. Чтобы раздел раздела находился на текущей странице \sect}\sectd\sbknone



Редактировано 2 раз. Последний раз 18.07.2014 16:08 пользователем woodyfon.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.