4

После неудачного копирования / вставки в Microsoft Word 2007 я получил такой текст:

This line   breaks up here

continues here, and    so on

here, when    it should all be

in a    single line without

all the random    whitespace.

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

  1. Есть ли (желательно простой) способ объединения абзацев в Microsoft Word?

  2. Есть ли способ переформатировать абзац, чтобы удалить лишние пробелы? Я могу изменить стиль флеша, но пробелы остаются.

Я (очевидно?) У меня нет опыта работы с Word, так как я больше похож на TeX, но я искал в Google и сканировал меню в течение нескольких часов, и мне еще предстоит найти решение ...

3 ответа3

3

Чтобы избавиться от лишних пробелов, вы можете выполнить поиск / замену и ввести два пробела в поле поиска и один пробел в поле замены. Затем просто запускайте это снова и снова, пока он больше не найдет ничего. Однако, если у вас есть какие-либо преднамеренные группировки из двух или более пробелов, это также преобразует их в один пробел. Но, как правило, два пробела не нужны даже между предложениями, если только вы не используете моноширинный шрифт (см. Этот вопрос).

Примечание: когда я копирую и вставляю что-то в Word (например, с веб-страниц или документов в формате PDF), я обнаружил, что могу избежать некоторых странностей форматирования, убедившись, что я просто копирую и вставляю простой текст без какой-либо информации о форматировании из источника. Раньше я делал это, вставляя его в пустой документ "Блокнот", затем переписывая из "Блокнота" в Word. В Word 2010 этот шаг можно пропустить, щелкнув правой кнопкой мыши и выбрав опцию "Сохранить только текст" в разделе "Параметры вставки". Это может не помочь в вашем случае, хотя, похоже, в источнике, из которого вы копируете, действительно есть дополнительные символы.

Редактировать:

Я заметил, что вы упомянули возможность использования макроса и написали один. Вот код VBA:

Sub FixParagraph()
'
' FixParagraph Macro
'
'
    Dim selectedText As String
    Dim textLength As Integer

    selectedText = Selection.Text

    ' If no text is selected, this prevents this subroutine from typing another
    ' copy of the character following the cursor into the document
    If Len(selectedText) <= 1 Then
        Exit Sub
    End If

    ' Replace all carriage returns and line feeds in the selected text with spaces
    selectedText = Replace(selectedText, vbCr, " ")
    selectedText = Replace(selectedText, vbLf, " ")

    ' Get rid of repeated spaces
    Do
        textLength = Len(selectedText)
        selectedText = Replace(selectedText, "  ", " ")
    Loop While textLength <> Len(selectedText)

    ' Replace the selected text in the document with the modified text
    Selection.TypeText (selectedText)

End Sub

Этот макрос заменяет все возвраты каретки и новые строки в выделенном тексте пробелами, а затем избавляется от повторяющихся пробелов. Итак, вы просто выделяете текст, который хотите исправить, а затем запускаете макрос. Я проверял это только в Word 2010, поскольку у меня нет Word 2007, но я уверен, что он должен работать и в 2007 году.

Чтобы вставить код макроса в документ в Word 2007, сначала следуйте инструкциям "Показать вкладку разработчика" на этой странице. Затем следуйте инструкциям "Написать макрос с нуля" на той же странице (я использовал имя FixParagraph для моего макроса выше). Как только вы попали в редактор кода, вы можете просто скопировать тело кода выше в. Есть также инструкции о том, как запустить макрос на той же веб-странице.

2
  1. Нажмите Ctrl+H, чтобы открыть Find and Replace
  2. Нажмите на вкладку Заменить
  3. Нажмите на поле « Найти», а затем на « Специальные».
  4. Выберите « Абзац» (вы увидите ^ p в поле «Найти»)
  5. В поле « Заменить на» вам не нужно ничего вводить.

Проблема в том, что это заменит все пункты ...

Вы можете поиграть с этими специальными персонажами. Удачи!

1

Основной ответ:

(вдохновленный ответом Нику Зечеру )

  1. Выделите свой текст, который вы хотите, где вы хотите удалить разрывы абзаца
  2. Нажмите Ctrl-H
  3. Найти: ^p (знак абзаца)
  4. Заменить на то, что подходит (например, просто пробел)
  5. Нажмите Заменить все. Он скажет вам, сколько замен было сделано при выборе и хотите ли вы продолжить после выбора:
  6. Нажмите Нет

Вот и все, теперь все метки абзаца заменены на ваш выбор.

Бонус: если вы не знаете, как сделать непечатные символы видимыми, выполните следующие действия:

Вам нужно сделать непечатные символы видимыми - нажмите на этот значок на панели инструментов:

Теперь вы увидите знаки абзаца, пробелы и т. Д .:

Удалите отметки абзаца (выделены желтым цветом на рисунке), чтобы исправить текст. Затем вы можете отформатировать межстрочный интервал, как требуется, через свойства абзаца.

PS Скриншоты взяты из Word 2010, но символы и функциональность будут одинаковыми в любой версии Word.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .