Справка:Вычитка/Соединение страниц
Соединение текста нескольких страниц при трансклюзии (включении) может иметь некоторые проблемы, даже если по отдельности эти страницы корректно отображаются в пространстве имен Страница.
Шаблоны на разрывах страниц
правитьЕсли у вас есть шаблон, который продолжается через разрыв страниц, вы не можете просто поместить начало шаблона или таблицы, например, {{fine center|
> на первой странице, а закрывающие скобки }}
на следующей странице. Причина в том, что вики-движок рендерит вики-код страницы до того как делает трансклюзию, поэтому закрытие шаблона на следующей странице будет им проигнорировано и обработано как обычный текст.
Чтобы обойти это, вам нужно использовать «разделенную» форму этого шаблона или таблицы, посредством полей верхнего и нижнего колонтитула в редакторе пространства имен Страница. (Эти колонтитулы игнорируются при трансклюзии, фактически представляя собой скрытые теги <noinclude></noinclude>
.) В этом методе в трансклюзию подаются «начало» шаблона, его «конец», и содержащийся в нём текст с разных страниц, как отдельные фрагменты текста, которые затем вики-движок соберёт в единое целое как одну трансклюзию. Также, при подобном использованием полей верхнего и нижнего колонтитула страницы корректно отображаются в пространство имен Страница, поскольку начала и концы шаблонов скрыты в колонтитулах.
Метод
правитьСтраница | Раздел | Содержимое |
---|---|---|
Первая страница | Тело | {{block center/s}}
Текст первой страницы
|
Нижний колонтитул | {{block center/e}}
| |
Средние страницы | Верхний колонтитул | {{block center/s}}
|
Тело | Текст средней страницы
| |
Нижний колонтитул | {{block center/e}}
| |
Последняя страница | Верхний колонтитул | {{block center/s}}
|
Тело | Текст последней страницы
{{block center/e}}
|
Таблицы через разрывы страниц
правитьТаблицы, продолжающиеся через несколько страниц, создаются так же, как и приведенные выше разделённые шаблоны, только с использованием синтаксиса таблиц {|
и |}
, вместо {{template/s}}
и {{template/e}}
.
Метод
правитьВ этом методе надо учесть следующие пункты, поскольку расширение ProofreadPage объединяет страницы, не добавляя новую строку между ними:
- Размещайте маркеры новых строк таблицы (
|-
) в «начале» страниц, а не в конце предыдущей страницы. Это необходимо для корректного размещения нумерации страниц[1]. - Перед маркером новой строки таблицы (
|-
) в «начале» страниц ставьте пустую строку (или<!-- -->
на пустой строке). Это необходимо, чтобы вики-движок не посчитал эту разметку простым текстом предыдущей ячейки таблицы.
Страница | Раздел | Содержимое |
---|---|---|
Первая страница | Тело | {| class="class?" style="здесь стили таблицы"
|-
|Содержимое таблицы
|
Нижний колонтитул | <!-- -->
|}
<references/>
Примечание: пустая строка | |
Средние страницы | Верхний колонтитул | {| class="class?" style="здесь стили таблицы" (то же, что в теле первой страницы, иначе эта страница будет неправильно отображаться в представлении страницы)
|
Тело | <!-- -->
|-
|Строки таблицы
| |
Нижний колонтитул | <!-- -->
|}
<references/>
| |
Последняя страница | Верхний колонтитул | {| class="class?" style="здесь стили таблицы" (то же, что в теле первой страницы, иначе эта страница будет неправильно отображаться в представлении страницы)
|-<!-- Маркер конечной строки необходим, если используются строки заголовка -->
|
Тело | <!-- -->
|-
|Строки таблицы
|}
|
Альтернативный метод: Вместо размещения скрываемых фрагментов таблицы в верхнем и нижнем колонтитулах, можно размещать их в тегах <noinclude></noinclude>
в теле страницы. Это позволяет использовать в редакторе кнопку быстрого предпросмотра без перезагрузки страницы, хотя несколько засоряет тело страницы.
Стихотворения через разрывы страниц
правитьЕсли вместо тега <poem>
вы используете форматирование посредством тега <br>
, то вам не нужно делать ничего другого.
Тег <poem>
должен открываться и закрываться в теле страницы.
Центрирование по ширине
правитьПри использовании шаблона {{block center}}, центрирующего стихотворение на странице по его ширине, этот шаблон надо разделить между страницами:
Страница | Раздел | Содержимое |
---|---|---|
Первая страница | Тело | {{block center/s}}<poem>
Строфа 1, Строка 1
Строфа 1, Строка 2
<br/><!-- начало новой строфы -->
</poem>
|
Нижний колонтитул | {{block center/e}}
| |
Средние страницы | Верхний колонтитул | {{block center/s}}
|
Тело | <poem>
Строфа 2, Строка 1
Строфа 2, Строка 2
</poem><!-- нет новых строф -->
| |
Нижний колонтитул | {{block center/e}}
| |
Последняя страница | Верхний колонтитул | {{block center/s}}
|
Тело | <poem>
Строфа 2, Строка 3
Строфа 2, Строка 4
</poem>
{{block center/e}}
|
Фиксированный отступ слева
правитьМожно размещать стихотворения с одинаковым отступом от левого края, вместо центрирования по ширине. (При центрировании стихотворений по ширине, левый отступ у них будет различный из-за их различной ширины, это может выглядеть вразнобой.) Пример: Нечистая, неведомая и крестная сила (Максимов)/Святки.
Фиксированный отступ можно указать в теге <poem>
двумя способами:
- Указывая отступ в каждом теге, например, шириной в 5em. Это трудоемко, и если понадобится изменить отступ, придётся искать и менять тег на всех страницах:
<poem style="margin-left: 5em;">
Кони мои, кони,
Кони вороные…
</poem>
- Используя CSS-стиль для всей книги. Эти стили размещаются на подстранице индексной страницы (например: Индекс:Нечистая, неведомая и крестная сила (Максимов).pdf/styles.css); ссылка на эту страницу стилей находится на вкладке "Стили" вверху индексной страницы (например, см. Индекс:Нечистая, неведомая и крестная сила (Максимов).pdf). Требуется указать:
.poem {
margin-left: 5em;
}
Сноски через разрывы страниц
правитьСноски, продолжающиеся на следующих страницах должны использоваться с аргументами <ref name=>
и <ref follow=>
, подробнее см. Справка:Вычитка#Примечания. Приведенный ниже метод будет правильно отображаться как в пространстве имен Страница, так и при трансклюзии в основное пространство имен.
Метод
правитьПервая страница
править- Тело
Lorem ipsum dolor sit amet,<ref name="p76">dolorem ipsum, quia dolor sit amet,</ref>
- Нижний колонтитул
<references/>
Последующие страницы
править- Тело
…est laborum.<ref follow="p76">consectetur, adipisci velit…</ref>
- Нижний колонтитул
<references/>
Потенциальные проблемы
править- Значение name в теге
<ref name=…>
должно начинаться буквы и быть отлично от значений в других несвязанных сносках, которые транскюзятся с этой же страницы. Желательно использовать номер страницы.
- Обычно тег
<ref follow=…>
располагается в конце страницы. Однако, если есть изменение раздела — для трансклюзии в другую главу — тогда продолжение сноски следует переместить в начало страницы, иначе оно не попадёт в трансклюзию.
- Длинные сноски могут состоять из нескольких абзацев; использование двойного перевода строк для начала нового абзаца не работает в трансклюзиях сносок — это необходимо принудительно, поместив шаблон {{абзац}} (или его синоним
{{pb}}
) между двумя абзацами. Следует избегать использования<br/>
или<p></p>
для разделения абзацев, так как они не всегда хорошо работают при экспорте в форматы PDF или электронных книг.[3]
Списки через разрывы страниц
правитьСписки через разрывы страниц ломаются, когда часть элемента родительского списка и «продолжение» используются на второй странице.
Подпункты на второй странице
правитьВместо размещения продолжающегося содержимого в верхнем колонтитуле второй страницы его следует поместить в тело страницы внутри парных тегов <noinclude></noinclude>
, за которой следует перевод строки[4]. После этого продолжается как обычно следующие элементы списка (или подсписка).
- Тело первой страницы
* Родительский элемент списка ** Первый элемент подсписка.
- Тело второй страницы
<noinclude>* Родительский элемент списка (продолжение)</noinclude><!-- Перевод строки здесь важен. -->
* Второй элемент списка.
Продолжение первого пункта списка
править- Тело первой страницы
* Родительский элемент списка. Содержание элемента ...
- Тело второй страницы
<noinclude>* Родительский элемент списка (продолжение)<br></noinclude>.. продолжение через разделение страницы.<!-- --> ** Элемент подсписка.
Новый абзац в начале страницы
правитьПри трансклюзии викидвижок вставляет пробел между текстом двух страниц (за исключением случаев, когда страница заканчивается дефисом), при этом абзац не создаётся. Для создания нового абзаца:
- Поместите
{{nop}}
в самом начале страницы на отдельной строке. Это создаст отступ абзаца и предотвратит слияние слияние абзацев при трансклюзии, новый абзац появится в основном пространстве. Или вместо{{nop}}
используйте тег<nowiki></nowiki>
(кнопка в панели редактирования). - Можно просто поставить две пустые строки без пробелов в них, но они могут быть удалены викификатором или ботом.
{{nop}} | пустые строки |
---|---|
<!-- верх страницы -->
_____________________
{{nop}}
Начало нового абзаца.
|
<!-- верх страницы -->
_____________________
Начало нового абзаца.
|
Примечание: Для отображения абзацев в пространстве имён Страница, в поле верхнего колонтитула вставляют тег <div class="text">
или <div class="indent">
. Автоматическое добавление этого тега для всего произведения можно настроить в редакторе индексной страницы.
Ошибки при лишних переводах строк в начале страниц
правитьЛишние переводы строк в начале страницы сломают абзац и вёрстку в основном пространстве при трансклюзии, что является грубой ошибкой.
Размещайте нумерацию страниц и подобные элементы в полях верхнего и нижнего колонтитулов, чтобы при трансклюзии они не попали внутрь текста в основном пространстве. Альтернативно, их можно размещать в тегах <noinclude></noinclude>
, но это несколько засоряет вики-код, и необходимо будет следить за тем чтобы не создавать лишних переводов строк.
- Пример ошибочных правок
Место поломки первого абзаца | Низ первой страницы | Верх второй страницы | Результат в основном пространстве | Должно быть |
---|---|---|---|---|
В тексте | Это один
|
<noinclude>14</noinclude>
абзац.
<!--
Здесь содержимое тегов noinclude игнорируется вики-движком.
Но в трансклюзию попадают переводы строки после этих тегов, которые разрывают абзац.
Правильно будет переместить номер страницы (в этом примере: «14») в поле колонтитула без тегов noinclude.
Или убрать перевод строки в тексте: <noinclude>14</noinclude>абзац.
-->
|
Это один абзац. |
Это один абзац. |
В списке | * Это пункт списка
* Это другой
|
<noinclude>14</noinclude>
пункт списка.
<!-- аналогично случаю выше -->
|
пункт списка. <!-- перевод строки сломал список -->
|
|
Утерян перевод строки | — Я иду направо! — сказал Вася.
|
— Я налево.
<!--
Утеряно начало абзаца.
Правильно:
_____________________
{{nop}}
— Я налево.
Или:
_____________________
— Я налево.
-->
|
— Я иду направо! — сказал Вася. — Я налево. <!--
Два абзаца слились в один,
как абсурдные реплики одного персонажа.
-->
|
— Я иду направо! — сказал Вася. — Я налево. |
Нижний абзац
правитьНа страницах может отсутствовать отступ в нижнем абзаце. Эта особенность не затрагивает основное пространство. Для добавления отступа надо добавить пустую строку в поле нижнего колонтитула. Для наглядности её оформляют с тегом <!-- -->
.
<!-- -->
<references />
|
Примечание: Автоматическое добавление колонтитулов для всего произведения можно настроить в редакторе индексной страницы.
Переносы слов на следующую страницу и дефисы
правитьПри трансклюзии, если страница оканчивается дефисом, то последняя лексема с дефисом объединится с первой лексемой следующей страницы в одно слово.
В некоторых случаях это не работает, тогда надо использовать шаблон {{перенос}}:
- Если перенос не находится в конце страницы, например, когда текст обвёрнут в шаблон {{ВАР}} или теги (
<section>
,<ref>
и др.). - Если в последнем слове есть дефис и перенос пришёлся как раз на него. Пример переноса слова, которое не содержит дефиса.
Первая страница | Вторая страница | Результат | |
---|---|---|---|
Страница оканчивается дефисом | сло- | во | слово |
Перенос не в конце страницы | {{Перенос|сло-|во}} |
{{Перенос2|сло|во}} |
слово |
Перенос пришёлся на дефис | {{Перенос|кое-|как|дефис=}} |
{{Перенос2|кое-|как}} |
кое-как |
Примечания
править- ↑ Если вы поместите их в конец страниц, маркеры номеров страниц будут помещены между строками таблицы. Это будет ошибкой HTML, что приведёт к ошибке линтера «Ошибки статического анализатора: Присвоенное содержимое». См. также phab:T232477.
- ↑ В частности, они могут быть fostered, как указано в предыдущей сноске, и оказаться в «верхней части» таблицы и вызвать ошибку линтера, или они могут появиться в последней ячейке таблицы.
- ↑ См. также phab:T49544.
- ↑ Тут нельзя использовать поле верхнего колонтитула из-за принудительного двойного перевода строк в бэкенде. Подробности см. в phab:T275388.