Форматирование по ширине в ворде как сделать
Перейти к содержимому

Форматирование по ширине в ворде как сделать

  • автор:

Как выровнять текст по ширине?

Выравниванием по ширине называется такой способ форматирования текста, когда левый и правый края текста выравниваются по вертикальным линиям (рис. 1).

Рис. 1. Выравнивание текста по ширине

Для выравнивания правого края текста браузер добавляет пустые промежутки между слов, что иногда смотрится неаккуратно.

Чтобы выровнять текст по ширине ему достаточно добавить свойство text-align со значением justify , как показано в примере 1.

Пример 1. Использование text-align

В данном примере мы используем класс text-justify , который при добавлении его к любому элементу выравнивает текст по ширине.

Последняя строка нашего текста по умолчанию остаётся выровненной по левому краю. Для управления поведением последней строки есть отдельное свойство text-align-last. К примеру, значение right выравнивает по правому краю, а center — по центру (пример 2).

Пример 2. Использование text-align-last

См. также

  • text-align
  • text-align-last
  • Свойства текста в CSS

Текст по всей ширине

введите сюда описание изображения

Для того, чтобы текст был по всей ширине, я использовал align=»justify». Всё получилось, но появился один баг: в тексте создаются большие пробелы. Как исправить?

Отслеживать
9,634 4 4 золотых знака 35 35 серебряных знаков 73 73 бронзовых знака
задан 22 дек 2016 в 6:49
Денис Павлик Денис Павлик
475 1 1 золотой знак 4 4 серебряных знака 11 11 бронзовых знаков

это не баг, это правильное выполнение свойства align=’justify’. Чтобы не было больших пробелов — нужно использовать выравнивание по какому-либо краю.

22 дек 2016 в 6:52

В Microsoft Word ведь подобных пробелов не наблюдается. Вероятно, что в HTML есть способ их устранения.

22 дек 2016 в 6:55

Попробуй поиграться с шириной контейнера в котором текст и отступами или попробуй переосмыслить текст.

22 дек 2016 в 6:56

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Используйте знаки переноса ­ .

Сравните первый вариант (без переноса) и второй (с переносом слов)

введите сюда описание изображения

Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Lorem ipsum dolor sit amet, con­secte­tur adip­isi­ci­ng elit.

Отслеживать
ответ дан 22 дек 2016 в 11:05
9,730 2 2 золотых знака 17 17 серебряных знаков 49 49 бронзовых знаков

Не обманывайте себя, багом данное действие не является. Это стандартное поведение выравнивания по всей длине ( align=»justify» )

введите сюда описание изображения

Для примера в MS Word наблюдаются такие же пробелы.
Вот пример:

Это связано с тем, что если длина слова, перенесенного на новую строку превышает допустимый размер поля, если будет помещена на предыдущую строку, то слово переносится вниз, соответственно та строка, предыдущая, она растягивается по всей длине.

Как вариант решения вам нужно либо:

  1. Сделать выравнивание по краю
  2. Подгонять текст под размер допустимого поля (если текст статический)
  3. Подгонять размер поля под текст (также если текст статический)
  4. Смириться (да, это тоже как вариант)

Отслеживать
ответ дан 22 дек 2016 в 7:04
1,480 10 10 серебряных знаков 17 17 бронзовых знаков

Я хотел попробовать разбивать длинные слова и переносить их на новую строку, используя свойство hyphens, но почему-то ничего не происходит.

22 дек 2016 в 7:12

@ДенисПавлик на сколько я знаю в актуальных версиях браузеров данные свойства не поддерживаются. Можете попробовать воспользоваться готовым решением github.com/mnater/hyphenator

22 дек 2016 в 7:17

Если смириться, как это предлагает предыдущий оратор, не вариант — есть способ немного облегчить визуальные страдания. Добиться эффекта улучшения можно при помощи отрицательного word-spacing . Для достижения более-менее приемлемого эффекта со значением придется экспериментировать.

.text, .text-alt < text-align: justify; width: 400px; >.text-alt
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro, quidem assumenda consequatur fugit quas dolorem similique tempora voluptatum eum perspiciatis incidunt hic perferendis cumque repellendus eaque quisquam pariatur soluta modi velit. Reprehenderit rem recusandae nostrum placeat ratione, quia iure, voluptatem ad voluptatibus a tempore dignissimos sit quaerat, voluptates. Molestiae nostrum, inventore deleniti, aspernatur odio aut repellat vitae quaerat mollitia quos aliquid dolorum quis reprehenderit, ut consequatur repellendus quisquam ipsum dolores. Rem minima velit non, quam reiciendis! Esse minima corporis architecto id vitae fuga. Consequatur asperiores veniam commodi, velit voluptatibus obcaecati expedita ipsam quo dicta similique animi fugiat quia magni libero.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro, quidem assumenda consequatur fugit quas dolorem similique tempora voluptatum eum perspiciatis incidunt hic perferendis cumque repellendus eaque quisquam pariatur soluta modi velit. Reprehenderit rem recusandae nostrum placeat ratione, quia iure, voluptatem ad voluptatibus a tempore dignissimos sit quaerat, voluptates. Molestiae nostrum, inventore deleniti, aspernatur odio aut repellat vitae quaerat mollitia quos aliquid dolorum quis reprehenderit, ut consequatur repellendus quisquam ipsum dolores. Rem minima velit non, quam reiciendis! Esse minima corporis architecto id vitae fuga. Consequatur asperiores veniam commodi, velit voluptatibus obcaecati expedita ipsam quo dicta similique animi fugiat quia magni libero.

Первый блок текста — обычный джастифай, второй — с отрицательным ворд-спейсин.

Форматирование текста по ширине

Тогда пусть автор пояснит, что он разумеет под форматированием по ширине: растянуть текст на ширину строки (как в Ворде) или центрировать (расположить текст в середине строки)?

Вордовые тремины центрировать и выравнивать по ширине = разные. Второе растянет три слова на всю строку с интервалом между словам в километр.

Регистрация: 22.12.2008
Сообщений: 5

Я подразумеваю растянуть текст на ширину строки (как в ворде), чтобы три слова растягивались на всю строку

Регистрация: 29.10.2004
Сообщений: 16,324
команда _textfit из комплекта Express Tools работает только с однострочным текстом
Регистрация: 08.02.2008
Сообщений: 8,460

Для однострочного также 2ЛК на тексте и в окне Ширина выставить опытным путем число, большее, чем умолчательная 1. Но это устроит, смотря где, например, слово План, чтоб поширше было.
Многострочным не пользуюсь принципиально.

LISP, C# (ACAD 200[9,12,13,14])

Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739
Втупую, без особых проверок:

(defun change-text-width (/ adoc ent dist) (vl-load-com) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (if (and (= (type (setq ent (vl-catch-all-apply (function (lambda () (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT")))) ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'pickset ) ;_ end of = (setq ent (vlax-ename->vla-object (ssname ent 0))) (= (type (setq dist (vl-catch-all-apply (function (lambda () (getdist (cond ((= (vla-get-objectname ent) "AcDbMText") (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (cond ((= (vla-get-alignment ent) acalignmentleft) (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent)))) ) ;_ end of cond ) ) ;_ end of cond "Укажи ширину строки : " ) ;_ end of getdist ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'real ) ;_ end of = ) ;_ end of and (vl-catch-all-apply (function (lambda (/ dx minp maxp ang normal) (setq ang (vla-get-rotation ent) normal (vla-get-normal ent) ) ;_ end of setq (vla-put-rotation ent 0.) (vla-put-normal ent (vlax-3d-point '(0. 0. 1.))) (vla-getboundingbox ent 'minp 'maxp) (setq minp (vlax-safearray->list minp) maxp (vlax-safearray->list maxp) dx (- (car maxp) (car minp)) ) ;_ end of setq (vla-put-rotation ent ang) (vla-put-normal ent normal) (cond ((= (vla-get-objectname ent) "AcDbMText") (vla-put-width ent 0.) (vla-put-textstring ent (strcat "" ) ;_ end of strcat ) ;_ end of vla-put-TextString ) (t (vla-put-scalefactor ent (/ dist dx))) ) ;_ end of cond ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of if (vla-endundomark adoc) (princ) ) ;_ end of defun

__________________
Моя библиотека lisp-функций

Обращение ко мне — на «ты».
Все, что сказано — личное мнение.

Кулик Алексей aka kpblc
Посмотреть профиль
Посетить домашнюю страницу Кулик Алексей aka kpblc
Найти ещё сообщения от Кулик Алексей aka kpblc

Регистрация: 19.10.2007
Сообщений: 474
Сообщение от Кулик Алексей aka kpblc
Втупую, без особых проверок:

(defun change-text-width (/ adoc ent dist) (vl-load-com) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (if (and (= (type (setq ent (vl-catch-all-apply (function (lambda () (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT")))) ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'pickset ) ;_ end of = (setq ent (vlax-ename->vla-object (ssname ent 0))) (= (type (setq dist (vl-catch-all-apply (function (lambda () (getdist (cond ((= (vla-get-objectname ent) "AcDbMText") (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (cond ((= (vla-get-alignment ent) acalignmentleft) (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent)))) ) ;_ end of cond ) ) ;_ end of cond "Укажи ширину строки : " ) ;_ end of getdist ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'real ) ;_ end of = ) ;_ end of and (vl-catch-all-apply (function (lambda (/ dx minp maxp ang normal) (setq ang (vla-get-rotation ent) normal (vla-get-normal ent) ) ;_ end of setq (vla-put-rotation ent 0.) (vla-put-normal ent (vlax-3d-point '(0. 0. 1.))) (vla-getboundingbox ent 'minp 'maxp) (setq minp (vlax-safearray->list minp) maxp (vlax-safearray->list maxp) dx (- (car maxp) (car minp)) ) ;_ end of setq (vla-put-rotation ent ang) (vla-put-normal ent normal) (cond ((= (vla-get-objectname ent) "AcDbMText") (vla-put-width ent 0.) (vla-put-textstring ent (strcat "" ) ;_ end of strcat ) ;_ end of vla-put-TextString ) (t (vla-put-scalefactor ent (/ dist dx))) ) ;_ end of cond ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of if (vla-endundomark adoc) (princ) ) ;_ end of defun

Алексей вы меня пугаете !
__________________
Изобрести вечный двигатель может, разве что, вечный студент..

LISP, C# (ACAD 200[9,12,13,14])

Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739
Ух ты, меня опять много!

__________________
Моя библиотека lisp-функций

Обращение ко мне — на «ты».
Все, что сказано — личное мнение.

Кулик Алексей aka kpblc
Посмотреть профиль
Посетить домашнюю страницу Кулик Алексей aka kpblc
Найти ещё сообщения от Кулик Алексей aka kpblc

Регистрация: 22.12.2008
Сообщений: 5
Сообщение от Кулик Алексей aka kpblc
Втупую, без особых проверок:

(defun change-text-width (/ adoc ent dist) (vl-load-com) (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object)))) (if (and (= (type (setq ent (vl-catch-all-apply (function (lambda () (setq ent (ssget "_+.:S:E" '((0 . "TEXT,MTEXT")))) ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'pickset ) ;_ end of = (setq ent (vlax-ename->vla-object (ssname ent 0))) (= (type (setq dist (vl-catch-all-apply (function (lambda () (getdist (cond ((= (vla-get-objectname ent) "AcDbMText") (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (cond ((= (vla-get-alignment ent) acalignmentleft) (vlax-safearray->list (vlax-variant-value (vla-get-insertionpoint ent))) ) (t (vlax-safearray->list (vlax-variant-value (vla-get-textalignmentpoint ent)))) ) ;_ end of cond ) ) ;_ end of cond "Укажи ширину строки : " ) ;_ end of getdist ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of setq ) ;_ end of type 'real ) ;_ end of = ) ;_ end of and (vl-catch-all-apply (function (lambda (/ dx minp maxp ang normal) (setq ang (vla-get-rotation ent) normal (vla-get-normal ent) ) ;_ end of setq (vla-put-rotation ent 0.) (vla-put-normal ent (vlax-3d-point '(0. 0. 1.))) (vla-getboundingbox ent 'minp 'maxp) (setq minp (vlax-safearray->list minp) maxp (vlax-safearray->list maxp) dx (- (car maxp) (car minp)) ) ;_ end of setq (vla-put-rotation ent ang) (vla-put-normal ent normal) (cond ((= (vla-get-objectname ent) "AcDbMText") (vla-put-width ent 0.) (vla-put-textstring ent (strcat "" ) ;_ end of strcat ) ;_ end of vla-put-TextString ) (t (vla-put-scalefactor ent (/ dist dx))) ) ;_ end of cond ) ;_ end of lambda ) ;_ end of function ) ;_ end of vl-catch-all-apply ) ;_ end of if (vla-endundomark adoc) (princ) ) ;_ end of defun

Было бы здорово если бы вы пояснили как этим пользоваться, куда вбивать, и вообще что это такое

Мне это необходимо для многострочного текста, причём, больших объёмов, сам пользуюсь версией 2007, сегодня увидел что есть растягивание по ширине AutoCAD 2008 Architecture, мне он не очень нравится, но если есть такая возможность в обычной 2008 версии, я бы на неё перешёл, если есть возможность — проверьте пожалуйста

Не выравнивается текст по ширине, почему?

Microsoft Word – это довольно практичный и удобный инструмент, позволяющий очень быстро и легко создать документ любой сложности. Но не смотря даже на все его положительные стороны, буквально недавно я оказался в такой ситуации, что Word категорически отказывался выравнивать необходимы мне текст по ширине.

То есть, выделив определенный фрагмент текста и нажав на иконку выравнивания текста по ширине, особых изменений не было замечено, а текст едва смещался к левому краю. Обусловливалось это наверняка тем, что данный текст не был оригинальным, и документ содержал достаточно много скопированного текста.

Не удается выровнять текст по ширине

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

Спустя некоторое время, причина была найдена и документ был доведён до ума. Ну а в этой статье я в подробностях покажу принцип работы данного решения, который без проблем поможет Вам отформатировать текст по ширине в Microsoft Word.

Абзацы не позволяют выровнять текст по ширине

Причина невозможности выравнивания текста в документе, открытого в Word, я буду описывать, основываясь на своей ситуации, как говорится “по горячим следам”.

Итак, для определения причины почему документ не поддается форматирования иногда достаточно воспользоваться инструментом « отображения всех знаков », который выглядит так «¶».

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

После копирования текста, такая участь постигла и мой документ, когда, воспользовавшись «¶», обнаружил, что почти после каждой строчки начинается новый абзац, даже если это было одно предложения.

Из чего можно было сделать вывод, что виновником некорректного форматирования являются именно лишние абзацы, от которых нужно было избавится.

Вручную кстати, в моем случае, они не удалялись (я так и не понял почему) поэтому пришлось выкручиваться вот так:

  1. Открываем проблемный документ и включаем « Отображение знаков ¶ »; Показать все знаки
  2. Убедившись в присутствие лишних абзацев, запускаем поиск сочетанием клавиш « Ctrl+ F »
  3. С помощью поиска лишние абзацы будут удалятся путем их замены на пробелы. В окне поиска, в поле « Найти » ставим курсор и спускаемся к дополнительным параметрам, где выбираем « Специальный », а там « Знак абзаца »; Вставить знак абзаца
    • Если вы владелец офисного пакета начиная с 2013 версии, то после запуска поиска? для открытия окна замены, нужно нажать на стрелочку, с правой стороны, возле иконки поиска и выбрать там « Замена ». Zamena_v_poiske
  4. В поле « Заменить на » мы ставим обычный пробел; Заменить на пробел
  5. Теперь устанавливаем курсор на предложения, содержащее лишний абзац, переходим обратно к окну поиска и нажимаем « Найти далее », и после того как абзац будет выделен щелкаем по кнопке « Заменить ». Найти и заменить

Вот таким путем, если у Вас немного текста или вы редактируете его полностью вручную, можно избавится от лишних абзацев и выровнять текст по ширине всего документа.

Не выравнивается текст по ширине в документах с большим содержанием текста

Конечно же понятно, что при копирование больших текстов, например, рефератов с интернета, убирать абзац в каждом приложение вручную, абсолютно не удобно и неприемлемо.

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

  • Для удаления абзацев мы снова воспользуемся формой поиска, вызвав его всё тем же сочетанием « Ctrl+F »;

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

Меняем нужные абзацы на символ 8_8

  1. Искать будем абзацы, которые стоять после точки, для этого в поле поиска ставим « . » и в доп. параметрах, устанавливаем « Специальный знак абзаца », должно это выглядит вот так: « .^p ».
  2. В поле заменены прописываем придуманный нами набор символов, к примеру « 8_8 ».
  3. Щелкаем по « Заменить все » и видим, что абзацев стало немного меньше.

Таким образом мы отделим нужные абзацы, которые обычно размещаются после «.», заменив их на временный символ «8_8».

Теперь приступим к замене лишних абзацев.

  1. Возвращаемся к поиску и теперь для поиска мы будем использовать « Специальный символьный абзац ». Специальный знак абзаца
  2. В « Заменить на » ставим обычный пробел, воспользовавшись соответствующей кнопкой на клавиатуре. Ubrat_lishnii_probely
  3. Далее нажав на « Заменить все » автоматически уберёт все оставшиеся абзацы.

В следствие чего наш текст будет полностью лишён абзацев, поэтому нам обязательно нужно будет вернуть те, которые были заменены на «8_8».

Процедура абсолютно такая же, как и в предыдущих шагах.

Возвращяем нужные абзацы на место

  1. Просто теперь, в поиск вписываем наш символ « 8_8 ».
  2. Заменять мы будем на точку « . » с символом « абзац », который вы найдёте в параметрах специальные.
  3. Завершаем данное действие нажатием на кнопку « Заменить все » и проверяем что получилось.

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

Стоит заметить, что при автоматической замене всех символов, нужно придумать необычный символ для временной замены нужных абзацев, а не использовать стандартные типа «— ,+,1», да бы при обратной замене, случайно не поменять обычный символ в тексте на абзац и не поломать документ ещё больше.

Ну а в остальном думаю все понятно, но как обычно при возникновении вопросов, Вы без проблем можете задать их, воспользовавшись формой комментариев.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *