Справка:Вычитка/Соединение страниц
Соединение текста нескольких страниц при трансклюзии (включении) может иметь некоторые проблемы, даже если по отдельности эти страницы корректно отображаются в пространстве имен Страница.
Шаблоны на разрывах страниц
[править]Если у вас есть шаблон, который продолжается через разрыв страниц, вы не можете просто поместить начало шаблона или таблицы, например, {{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}}.
Ниже также см. #Метод с тегами html внутри шаблона ВАР.
Метод
[править]В этом методе надо учесть следующие пункты, поскольку расширение ProofreadPage объединяет страницы, не добавляя новую строку между ними:
- Размещайте маркеры новых строк таблицы (
|-) в «начале» страниц, а не в конце предыдущей страницы. Это необходимо для корректного отображения нумерации страниц[1]. - Перед маркером новой строки таблицы (
|-) в «начале» страниц ставьте пустую строку (или<!-- -->на пустой строке). Это необходимо, чтобы вики-движок не посчитал эту разметку простым текстом предыдущей ячейки таблицы.
| Страница | Раздел | Содержимое |
|---|---|---|
| Первая страница | Тело | {| class="class?" style="здесь стили таблицы"
|-
|Содержимое таблицы
|
| Нижний колонтитул | <!-- -->
|}
<references/>
Примечание: пустая строка | |
| Средние страницы | Верхний колонтитул | {| class="class?" style="здесь стили таблицы" (то же, что в теле первой страницы, иначе эта страница будет неправильно отображаться в представлении страницы)
|
| Тело | <!-- -->
|-
|Строки таблицы
| |
| Нижний колонтитул | <!-- -->
|}
<references/>
| |
| Последняя страница | Верхний колонтитул | {| class="class?" style="здесь стили таблицы" (то же, что в теле первой страницы, иначе эта страница будет неправильно отображаться в представлении страницы)
|-<!-- Маркер конечной строки необходим, если используются строки заголовка -->
|
| Тело | <!-- -->
|-
|Строки таблицы
|}
|
Альтернативный метод: Вместо размещения скрываемых фрагментов таблицы в верхнем и нижнем колонтитулах, можно размещать их в тегах <noinclude></noinclude> в теле страницы. Это позволяет использовать в редакторе кнопку быстрого предпросмотра без перезагрузки страницы, хотя несколько засоряет тело страницы.
Метод с тегами html внутри шаблона ВАР
[править]В случае использования нативных html-тегов <table></table>, например для обхода ограничения шаблона {{ВАР}}, используйте следующий код:
| Страница | Содержимое |
|---|---|
| Первая страница | {{ВАР
|1=<table class="">
<tr>
<td>Заголовокъ 1-й колонки</td>
<td>Заголовокъ 2-й колонки</td>
</tr>
<tr>
<td>Текстъ ячейки въ старой орфографіи.</td>
<td>Другая ячейка<noinclude></td></tr></table></noinclude>
|2=<table class="">
<tr>
<td>Заголовок 1-й колонки</td>
<td>Заголовок 2-й колонки</td>
</tr>
<tr>
<td>Текст ячейки в новой орфографии.</td>
<td>Другая ячейка<noinclude></td></tr></table></noinclude>
}}
Примечание: Последние закрывающие теги ячейки и строки |
| Средние страницы | {{ВАР
|1=<noinclude><table class="">
<tr>
<td>Заголовокъ 1-й колонки</td>
<td>Заголовокъ 2-й колонки</td>
</tr></noinclude><includeonly></td></tr></includeonly>
<tr>
<td>Текстъ ячейки въ старой орфографіи.</td>
<td>Другая ячейка<noinclude></td></tr></table></noinclude>
|2=<noinclude><table class="">
<tr>
<td>Заголовок 1-й колонки</td>
<td>Заголовок 2-й колонки</td>
</tr></noinclude><includeonly></td></tr></includeonly>
<tr>
<td>Текст ячейки в новой орфографии.</td>
<td>Другая ячейка<noinclude></td></tr></table></noinclude>
}}
Примечание: Начало таблицы с заголовочными строками, если они есть, заключается в тег |
| Последняя страница | {{ВАР
|1=<noinclude><table class="">
<tr>
<td>Заголовокъ 1-й колонки</td>
<td>Заголовокъ 2-й колонки</td>
</tr></noinclude><includeonly></td></tr></includeonly>
<tr>
<td>Текстъ ячейки въ старой орфографіи.</td>
<td>Другая ячейка</td>
</tr></table>
|2=<noinclude><table class="">
<tr>
<td>Заголовок 1-й колонки</td>
<td>Заголовок 2-й колонки</td>
</tr></noinclude><includeonly></td></tr></includeonly>
<tr>
<td>Текст ячейки в новой орфографии.</td>
<td>Другая ячейка</td>
</tr></table>
}}
|
Пример: Дело о сдаче крепости Порт-Артур японским войскам в 1904 году (Апушкин)/ДО#98.
Стихотворения через разрывы страниц
[править]Тег <poem> должен открываться и закрываться в теле страницы. При условии, что вместо тега <poem> вы не используете форматирование посредством тегов <br>.
Есть 2 варианта: а) выравнивание стихотворений в книге по центру с помощью шаблона {{bc}}, б) выравнивание с фиксированным отступом слева.
Выравнивание по центру
[править]При выравнивания текстового блока по центру страницы надо на каждой странице с частями стихотворения поставить шаблоны {{block center/s}} и {{block center/e}}, скрыв в колонтитулы или тег «noinclude». Иначе при трансклюзии в основное пространство левый отступ у частей стихотворения будет вразнобой из-за их различной ширины. Начальные и конечные части этого шаблона необходимо оставить вне колонтитула или «noinclude».
| Страница | Раздел | Содержимое |
|---|---|---|
| Первая страница | Тело | {{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}}
|
Пример с использованием шаблона {{ВАР}}: Пан Тадеуш (Мицкевич; Берг)/1875 (ДО)/Песнь I — первая страница, одна из средних страниц, конечная страница.
Альтернативно, вместо помещения шаблонов {{block center/s}} и {{block center/e}} в колонтитулы, их можно обертывать в теги «noinclude»: <noinclude>{{block center/s}}</noinclude>, пример, другой пример.
Фиксированный отступ слева
[править]Можно размещать стихотворения с одинаковым отступом от левого края, вместо центрирования по ширине. Пример: Нечистая, неведомая и крестная сила (Максимов)/Святки#313.
Фиксированный отступ можно указать в теге <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.