форматирование абзаца (не только текста!) по образцу, как в MS Word

Автор leopoldus, 13 октября 2016, 01:49

0 Пользователи и 1 гость просматривают эту тему.

leopoldus

Вот, собственно вопрос уже сформулирован в названии темы. Очень хочется что-то подобное форматированию по образцу, как в MS Word (Ctrl+Shift+C => Ctrl+Shift+V) и некоторых других текстовых процессорах. В LibreOffice эта функция тоже есть, но почему-то только для текста (Format => Clone Fomatting). А мне гораздо больше нужна такая же, но для абзаца. Ну очень не хватает этой фичи. Все остальное готов пережить и смириться, а без этого просто как без рук  >:D   Может быть, где-то оно все-таки есть, а просто я не нашел? Или можно как-то исхитриться через макросы, стили и т.п?

Всем огромное спасибо заранее!

mikekaganski

#1
У Вас какая программа и какая версия?
Clone Formatting (Format Paintbrush) в LibreOffice копирует стили и ручное форматирование, но его поведением можно управлять, удерживая Ctrl или Shift+Ctrl.

В какой-то момент (не помню версию, где-то в 4.x емнип) работа команды была изменена. Новое поведение описано здесь (англ.):
ЦитироватьBy default only the character formatting is copied ; to include paragraph formatting, hold down Ctrl when you click. To copy only the paragraph formatting, hold down Ctrl+Shift when you click.

ЦитироватьПо умолчанию копируется только форматирование символов; чтобы дополнительно копировалось форматирование абзаца, удерживайте Ctrl при щелчке. Для копирования только форматирования абзаца удерживайте Ctrl+Shift при щелчке.

На русской версии страницы описано старое поведение (по умолчанию копировались оба вида форматирования; Ctrl отключал копирование форматирования абзаца, а Ctrl+Shift - копирование форматирования символа).

См. https://bugs.documentfoundation.org/show_bug.cgi?id=59029
См. http://nabble.documentfoundation.org/PATCH-modify-default-behaviour-of-the-format-paintbrush-td3826220.html
С уважением,
Михаил Каганский

economist

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

leopoldus

#3
Цитата: mikekaganski от 13 октября 2016, 02:12
У Вас какая программа и какая версия?
LibreOffice актуальная версия 5.2.0.4, 32-битная, интерфейс - английский. (Прошу прощения, забыл указать.)

ЦитироватьClone Formatting (Format Paintbrush) в LibreOffice копирует стили и ручное форматирование, но его поведением можно управлять, удерживая Ctrl или Shift+Ctrl.
By default only the character formatting is copied ; to include paragraph formatting, hold down Ctrl when you click. To copy only the paragraph formatting, hold down Ctrl+Shift when you click.
По умолчанию копируется только форматирование символов; чтобы дополнительно копировалось форматирование абзаца, удерживайте Ctrl при щелчке. Для копирования только форматирования абзаца удерживайте Ctrl+Shift при щелчке.
Спасибо за ссылки и разъяснения, этого я действительно не знал.
Однако проблема в том, что этот трюк у меня все равно не срабатывает, вот только что снова проверил в очередной раз. Хоть с зажатым Control, хоть с зажатым Shift - копируется (или, возможно, применяется?) только форматирование текста. Скорее всего, я что-то неправильно делаю.
А как надо правильно? Тут вообще-то стопицсот всяких вариантов: что надо выделять, в какой момент зажимать Control или Shift, когда кликать по кнопке [Clone Formatting], надо ли выделять что-нибудь в целевом абзаце... Где-нибудь эта последовательность действий внятно описана? Искал в английском мануале, но ничего путного там не нашел.

ЦитироватьСм. http://nabble.documentfoundation.org/PATCH-modify-default-behaviour-of-the-format-paintbrush-td3826220.html
Спасибо, патч действительно очень полезный для меня, так как приходится копировать преимущественно именно форматирование абзаца. Но все равно неудобно возится с кнопками, решить через хоткеи было бы гораздо лучше.
Основную команду [Clone Formatting] можно вызвать из главного меню при помощи клавиатурных акселераторов: Alt+O => C ([FOrmat] => [Clone Formatting]). Но использовать дополнительные модификаторы Control или Shift так, наверерное, уже не получится?


Цитата: economist от 13 октября 2016, 09:36
Еще можно "Обновить стиль по образцу" в F11.
Прошу прощения, не понял, каким образом эта команда могла бы помочь в решении обсуждаемой проблемы? Не поясните парой слов для чайника? Не местные мы (C).

chemyakyn

mikekaganski, огромное спасибо! Я тоже про Ctrl не знал. Завёл баг, а мне там никто толком ничего не ответил. :-(
Но, баг всё-таки есть. Нельзя скопировать ручное форматирование с голого стиля. Т.е. копируется только ручное форматирование и добавляется к существующему. Если в копируемом тексте ручного форматирования нет, а во вставляемом - есть, то во вставляемом оно остаётся. Это довольно сложно для понимания и очень неудобно.
https://bugs.documentfoundation.org/show_bug.cgi?id=98341

leopoldus, Ctrl нужно удерживать, не при копировании форматирования, а при его вставке, тогда копируется.

mikekaganski

Цитата: leopoldus от 13 октября 2016, 11:06А как надо правильно? Тут вообще-то стопицсот всяких вариантов: что надо выделять, в какой момент зажимать Control или Shift, когда кликать по кнопке [Clone Formatting], надо ли выделять что-нибудь в целевом абзаце... Где-нибудь эта последовательность действий внятно описана? Искал в английском мануале, но ничего путного там не нашел.

1. Ставим курсор на источник форматирования (если речь о форматировании абзаца - просто в любом месте этого абзаца)
2. Выбираем инструмент "Clone Formatting" (на панели инструментов или в меню). Если нужно будет применить это форматирование не один раз, а несколько, нужно сделать не одинарный, а двойной щелчок по инструменту на панели.
3. Нажимаем нужную комбинацию специальных клавиш (если нужно применить и форматирование символов, и абзаца - Ctrl; если форматирование символов не нужно - Shift+Ctrl) и, удерживая их нажатыми, делаем щелчок левой кнопкой мыши по результирующему абзацу (либо выделяем кусок текста, в т.ч. можно несколько последовательных абзацев). Если на шаге 2 был выбран режим повторного копирования (двойной щелчок по кнопке), можно повторять щелчки/выделения по другим участкам, к которым мы хотим применить форматирование (причём к каждому последующему щелчку можно применять свою комбинацию зажатых клавиш Shift и Ctrl).
4. Если на шаге 2 выбран режим повторного копирования, можно закончить его клавишей Esc.
С уважением,
Михаил Каганский

leopoldus

Цитата: mikekaganski от 13 октября 2016, 13:27
3. Нажимаем нужную комбинацию специальных клавиш (если нужно применить и форматирование символов, и абзаца - Ctrl; если форматирование символов не нужно - Shift+Ctrl) и, удерживая их нажатыми, делаем щелчок левой кнопкой мыши по результирующему абзацу (либо выделяем кусок текста, в т.ч. можно несколько последовательных абзацев). Если на шаге 2 был выбран режим повторного копирования (двойной щелчок по кнопке), можно повторять щелчки/выделения по другим участкам, к которым мы хотим применить форматирование (причём к каждому последующему щелчку можно применять свою комбинацию зажатых клавиш Shift и Ctrl).

Ура, получилось!! :) Спасибо!
А без мыши все-таки никак не получится обойтись?

mikekaganski

Цитата: leopoldus от 13 октября 2016, 11:41А без мыши все-таки никак не получится обойтись?

Копирование форматирования реализовано в обработчике нажатия левой кнопки мыши.
С уважением,
Михаил Каганский

mikekaganski

Цитата: chemyakyn от 13 октября 2016, 11:22Но, баг всё-таки есть. Нельзя скопировать ручное форматирование с голого стиля. Т.е. копируется только ручное форматирование и добавляется к существующему. Если в копируемом тексте ручного форматирования нет, а во вставляемом - есть, то во вставляемом оно остаётся. Это довольно сложно для понимания и очень неудобно.
https://bugs.documentfoundation.org/show_bug.cgi?id=98341

Не уверен, что понял Вас правильно.
Но вот то, что показано на видео в указанном багрепорте, вполне понятно.
Цитата из уже упомянутого https://bugs.documentfoundation.org/show_bug.cgi?id=59029:
"I understand why you are confused...

It's a problem of definition of character and paragraph format. The paragraph formats are the format applied to the whole paragraph.
The character format are those applied to a portion of the paragraph.

Be careful though, if you apply the bold format to a whole paragraph, so the bold format is a paragraph format, and then unblod a portion of this paragraph, the bold format is still a paragraph format. This paragraph is divided in to parts, one without character format and one with the "unbold" character format."

"Переведу" своими словами.
Инструмент копирует форматирование абзаца и форматирование символов, применённый как стилями, так и вручную.
Форматирование абзаца (т.е. применяемое целиком к абзацу в соответствующих диалогах) включает в себя, в частности, и шрифты, и начертание (курсив/полужирное), и эффекты (например, подчёркивание символов), то есть то, что можно настроить как форматирование символов. Но если эти настройки сделаны для абзаца, они применяются целиком к абзацу, и форматирование символов, применённое к части или ко всему тексту абзаца, не затирают эти настройки абзаца, а лишь скрывают их.
На 0:20 Вы применили ко всему тексту абзаца (стиль абзаца "Содержимое таблицы", шрифт Times New Roman) форматирование символа "полужирное начертание". На 0:26 Вы применили к тексту другого абзаца (тот же стиль абзаца) форматирование символа шрифтом Arial. На 0:30 Вы выделили полужирный текст и применили его форматирование (без нажатия Ctrl!) к тексту Arial. То есть Вы взяли форматирование символа у текста, у которого шрифт определён стилем абзаца, а начертание - ручным форматированием символа, и применили его к тексту, у которого шрифт определён стилем абзаца и переопределён ручным форматированием символа. Повторюсь: копировалось только форматирование символов! В результате: шрифт исходного текста, поскольку не определён форматированием символов, не перенёсся на конечный текст. Получилось: шрифт абзаца (Times New Roman) продолжает переопределяться форматированием символов (Arial), а начертание (полужирное) перенеслось от символьного форматирования исходного текста.
На 0:40 Вы на новом абзаце применяете ручное форматирование символа - полужирный. Затем на 0:42 берёте форматирование другого куска того же абзаца, после чего на 0:46 применяете его (опять без Ctrl!) к тексту, у которого шрифт абзаца - Times New Roman, шрифт символа - Arial, начертание символа - полужирное. Но интересно вот что. У текста, который вы взяли за образец, применено двойное форматирование: во-первых, стиль абзаца со шрифтом Times New Roman, а во-вторых, ручное форматирование символа шрифтом Times New Roman! Это не видно, но оно есть :) Можно увидеть, если поставить курсор на этот текст и в панели управления стилями символа выбрать "New Style..." и просмотреть свойства получившегося стиля на вкладке Organizer. Вот и получается, что теперь Вы применили ручное форматирование шрифтом, который был заложен в формате символа.

Это говорит о неполезности ручного форматирования. "Очистить форматирование" поможет в этом случае.
С уважением,
Михаил Каганский

kompilainenn

можно я посоветую ТС почитать про работу со стилями?

вот это почитайте и заканчивайте усложнять себе жизнь ручным форматированием:

https://wiki.documentfoundation.org/images/a/ad/Style_Guide_RU.pdf
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

mikekaganski

Цитата: chemyakyn от 13 октября 2016, 11:22Завёл баг, а мне там никто толком ничего не ответил. :-(

Если я смог ответить на Ваш вопрос и убедить, что это не баг, просьба: закройте баг в багтрекере с пояснением. Иначе он будет так висеть и заставлять людей (волонтёров) постоянно перепроверять его состояние, пытаться вникнуть в суть вопроса и всячески терять время.

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

bormant

#11
Одно небольшое примечание.
В документе, предложенном kompilainenn, не нужно читать пару предложений:
1) Некоторые стили даже нельзя перенастроить. Например, стиль «Базовый».
2) На самом деле, не рекомендуется применять стандартные стили.

Первое, являясь верным по сути, заставляет сделать неверные выводы.
Второе само по себе является вредной рекомендацией.

Для Writer ключиком является создание шаблона без текста, но с нужным образом настроенными стандартными стилями, и назначение его по умолчанию. И хотя внутри LO стиль "Базовый" можно перенастроить лишь частично, во все вновь созданные документы он и прочие стандартные стили будут приходить в нужном виде из шаблона по умолчанию. А "внутренние ненастроенные" стили увидеть будет просто негде, поскольку вне документа негде на них посмотреть.

Безусловно, это мое скромное мнение, не претендующее на истину в последней инстанции.
Автору на яд. Поддержать форум.

denkin

Самое верное решение - разобраться со стилями, сделать (если надо) свои шаблоны и не пытаться в ООо|LO делать "как в МСО".
это просто совет пользователя с 8-летним стажем.

kompilainenn

Цитата: bormant от 14 октября 2016, 08:38В документе, предложенном kompilainenn, не нужно читать пару предложений:
1) Некоторые стили даже нельзя перенастроить. Например, стиль «Базовый».
2) На самом деле, не рекомендуется применять стандартные стили.
По-моему там так и сказано? разве нет? или это просто мой зашоренный взгляд уже читает текст так, как должно быть правильно и что мне известно, независимо ни от чего?
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

bormant

@kompilainenn,
это пара предложений, которые читать не нужно.
Сообщение выше дополнил кратким "почему".
Автору на яд. Поддержать форум.