Как искать и заменять разрывы страниц в Libre Office Writer? Например, я могу захотеть удалить все вручную вставленные разрывы страниц (^m в MS Word). Я могу искать разрывы строк и абзацев с помощью регулярных выражений, но я нигде не вижу символ разрыва страницы.
решение1
Довольно хак, но я бы предложил unzip
пинговать файл .odt и работать с сырым XML. Кажется, content.xml — правильный файл для редактирования.
Я подготовил тестовый файл с содержанием:
QQQQQ
-page break-
AAAAA
А вот соответствующая часть необработанного XML:
<!---*lots* of declarations--->
<office:automatic-styles>
<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard">
<style:paragraph-properties fo:break-before="page"/>
</style:style>
</office:automatic-styles>
<office:body>
<office:text text:use-soft-page-breaks="true">
<text:sequence-decls>
<text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
<text:sequence-decl text:display-outline-level="0" text:name="Table"/>
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="Standard">QQQQQ</text:p>
<text:p text:style-name="P1">AAAAA</text:p>
</office:text>
</office:body>
<!---some happy-end--->
(Реальный файл, вероятно, будет более сложным.) Мне кажется, что «P1» — это стиль, созданный для того, чтобы «нести» свойство разбиения на страницы.доабзац. Так что мне в голову приходят две вещи:
- удалить «P1» из
<text:p />
тегов - удалить свойство разрыва страницы из стиля "P1"
Кстати, здесь я бы также рекомендовал избегать регулярных выражений в пользу настоящего XML-парсера.
решение2
решение3
Попробуйте использовать \n или \r или s/\r\n/\r/g в вашем регулярном выражении. \n — для подобных каналов, \r — для возвратов каретки.
Не знаю, сработает ли это в Libre office. Альтернатива — скопировать оттуда в текстовый редактор (gedit в linux, notepad++ в windows), выполнить поиск и замену, а затем скопировать обратно.
решение4
Хотя нетточното, о чем вы просите, я довольно близко подошел (используя функцию Find & Replace и форматирование абзацев), потому что у меня была похожая проблема. Я понял, что разрывы страниц на самом деле не являются специальными символами, ачасть форматирования/стиля абзацаследующего абзаца (или в очень редких случаях предыдущего — в этом случае этот метод необходимо будет немного изменить).
Если у вас случайно есть разрывы страницвсегда после специально отформатированного текста, вы можете искать эти места по:
- Правка > Найти и заменить... (Ctrl + H)
- Открыть Другие варианты
- Нажмите «Форматировать»...
- Выберите определенное форматирование, которое выделяет определенные абзацы из всего остального текста в документе.
- Отметьте галочкой пункт «Включая стили» (после закрытияТекстовый формат (Поиск)окно)
- Нажмите «Найти все» и закройтеОкно «Найти и заменить»
- Формат > Текст...
- в текстовом потоке снимите отметку с пункта Разрывы > Вставить (или, если она не отмечена, сначала отметьте ее, примените и повторите этот шаг)
Интересно, почему раздел «Поток текста» > «Разрывы» выделен серым цветом вТекстовый формат (Поиск), было бы гораздо точнее, если бы его можно было искать напрямую :-/