Авто-изменение размеров таблиц и фигур

Автор ScoutActor, 6 ноября 2021, 14:10

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

ScoutActor

Всем привет. Проблема в LibreOffice Writer 6.4.4.2. - есть таблица из 4 строк разной высоты. Ширина столбца установлена 8,79 см, хочу её изменить на 8,8 см. Выделяю нужные ячейки, вызываю меню правой кнопкой, выбираю Размеры - Ширина столбца, ввожу 8,8 см, нажимаю Ок. Ширина столбца остаётся такой же. Если снова зайти в Размеры - Ширина столбца, то размеры также остались неизменными 8,79 см.

Немного похожая проблема в LibreOffice Draw 5.4.6.2 - есть фигура высотой 20,55 см и шириной 7,42 см, в ней присутствует текст. Я хочу изменить ширину на 7,43 см - ввожу их справа на панели Инструменты и размер. Размер якобы сохраняется в панели, размер фигуры изменяется. При клике мышью на свободном пространстве страницы и повторном клике на фигуре, на панели Инструменты и размер отображается ширина фигуры 7,44 см.

Поковырялся в настройках, ничего подходящего не нашёл. Как быть, куда копать?

sokol92

#1
Числа 8,8 см и 8,79 отличаются друг от друга всего на 0,01 см. Ширина столбца измеряется во внутренних целых единицах и показывается пользователю в выбранной им единице измерения (в Вашем случае - сантиметры, см Параметры / LibreOffice Calc / Общие  / Метрики). Когда ширина переводится в Вашу единицу измерения, то она округляется до 2 знаков. Значит, 8,80 см. и 8,79 см. имеют одну и ту же ближайшую внутреннюю величину измерения ширины столбца.
Кстати, в Excel та же картина (но внутренние величины для измерения другие).
Владимир.

mikekaganski

В Writer используются твипы (1/20 поинта = 1/1440 дюйма), что примерно соответствует 0,0176 мм. В принципе при этом возможна похожая ситуация - но дело в том, что 8,8 см примерно равно 4988,98 твипов, и оба значения - и 4988, и 4989 твипов округляются до 8,8 см.

Надо дальше искать (и таблица из одного столбца с выравниванием влево нормально даёт 8,8)

А эксель вообще использует дурные единицы, основанные на ширине цифр шрифта по умолчанию.
С уважением,
Михаил Каганский

sokol92

#3
Цитата: mikekaganski от  6 ноября 2021, 16:10эксель вообще использует дурные единицы
Это чтобы при проектировании отчетов можно было установить в ширину "приблизительно" 40 (например) символов (в переносом строк или без). Скажем, Вы выгружаете в Excel  справочник контрагентов компании, где есть текстовые поля переменной длины - наименование, адрес и т.д. В базах данных есть статистика о распределении длин соответствующих полей, что служит исходной информацией для проектирования. Либо надо полностью выгрузить данные для отчета, а затем динамически подбирать ширину столбцов.

В Calc тоже приходится решать подобные задачи.
Владимир.

ScoutActor

Цитата: sokol92 от  6 ноября 2021, 15:54Числа 8,8 см и 8,79 отличаются друг от друга всего на 0,01 см. Ширина столбца измеряется во внутренних целых единицах и показывается пользователю в выбранной им единице измерения (в Вашем случае - сантиметры, см Параметры / LibreOffice Calc / Общие  / Метрики). Когда ширина переводится в Вашу единицу измерения, то она округляется до 2 знаков. Значит, 8,80 см. и 8,79 см. имеют одну и ту же ближайшую внутреннюю величину измерения ширины столбца.
Кстати, в Excel та же картина (но внутренние величины для измерения другие).

Какая-то возможность есть установить ширину столбца 8,8 см? Я как-то среди документов находил похожую таблицу, у которого была ширина 8,8 см ровно, но сейчас она затерялась. Да и не нормально это, что приходится искать эталон и с него копировать.

ScoutActor

С шириной столбца во Writer разобрался. Выделил нужные ячейки, правой кнопкой мыши вызвал меню, выбрал Свойства таблицы..., во вкладке Таблица уменьшил интервал на 0,1 см.
Осталась проблема с LibreOffice Draw, описана в первом сообщении.

kompilainenn

Цитата: ScoutActor от  6 ноября 2021, 16:58Осталась проблема с LibreOffice Draw, описана в первом сообщении.
Это древняя бага в Draw связанная как раз с тем, что у нас размеры всего внутри ЛО считаются странно и по разному >_<
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

ScoutActor

Цитата: kompilainenn от  6 ноября 2021, 17:17Это древняя бага в Draw связанная как раз с тем, что у нас размеры всего внутри ЛО считаются странно и по разному >_<
Вакцину от сей болезни до сих пор так и не изобрели?

mikekaganski

Оффтопик.

Цитата: sokol92 от  6 ноября 2021, 16:34
Цитата: mikekaganski от  6 ноября 2021, 16:10эксель вообще использует дурные единицы
Это чтобы при проектировании отчетов можно было установить в ширину "приблизительно" 40...

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

Ведь это решение фактически исходит из того, что указанный Вами сценарий не просто существует, а что он - основной при использовании Excel. То есть всё исходит из необходимости задавать ширину в единицах ширины самой широкой цифры шрифта по умолчанию.

Но любой другой сценарий этим решением делается неудобным.
Во-первых, даже указанный Вами сценарий вообще-то не укладывается в идеологию Excel - потому что Вы говорите о любых символах, а Excel оперирует числовыми. То есть он заточен только на "столько-то цифр", а не на "столько-то букв".
Далее, любое использование неарабских цифр тоже в пролёте Например, китайских.
Любое использование шрифта, отличного от "по умолчанию" - в пролёте. Скажем, использование разных стилей.
Любая попытка чёткого задания разметки исходя из размеров листа - в пролёте.
Удобство пользователя при изменении ширины - в пролёте.
Использование файла в системах с отсутствующим шрифтом, заданным по умолчанию - в пролёте. (Да, в этом случае всё равно придётся поработать, но это решение создаёт дополнительную головную боль - в дополнение к необходимости поправлять шрифты, разметка таблицы на листе будет отличаться от таковой на исходной системе.)

Я сильно сомневаюсь, что сценарий, где такие единицы реально помогают, составляет серьёзную долю от общего использования таблиц. И в принципе, для решения такой задачи в случае автоматизации не нужно работать с искусственными единицами подобного рода - достаточно методов автоподбора или относительными ширинами.

Я уверен, что сегодня причина использования этих единиц - исключительно историческая (обратная совместимость).
С уважением,
Михаил Каганский

sokol92

Михаил, я с Вашими тезисами согласен и оппонировать не буду, поскольку не являюсь разработчиком Excel. :)

Что касается обратной совместимости, то здесь Microsoft исключительно последователен - развитие объектной модели Excel прекратилось еще на версии Excel 2007. Всем известные баги (типа некорректной работы Transpose) не исправляются. Проекты VBA понятия не имеют о Unicode, так же как и многие конструкции VBA (подробнее здесь).
Владимир.