Могу ли я заставить MS Word вставлять символы для автоматического переноса строк?
Я хочу включить схему XML в технический документ, созданный в MS Word. У него есть строки, которые намного длиннее доступной ширины на странице, поэтому Word автоматически разбивает строки. Я хочу четко дать понять читателям, где это произошло, чтобы они знали, что следующая строка является продолжением предыдущей. Есть ли способ заставить Word автоматически вставлять символ, например ⏎, в конце каждой автоматически разбитой строки?
Конечно, я мог бы сделать это вручную, но это была бы большая работа, которую я должен был бы повторять каждый раз, когда менялась схема, и это было бы подвержено ошибкам. Я знаю о режиме "показывать непечатные символы", но я хочу, чтобы эти символы были видны только в этом разделе, а также были напечатаны. Кроме того, "показывать непечатные символы" показывает явные разрывы строк вместо автоматических.
Возможно ли это с помощью MS Word, или если нет, может кто-нибудь порекомендовать другой автоматизированный метод для достижения этого?
2 ответа
Ну, вы могли бы попробовать следующий VBA в качестве отправной точки, но я думаю, что это потребует некоторой работы. Предполагается, что ваши разрывы всегда будут после пробела (что не является необоснованным для схемы IMO), поэтому, если у вас текст без пробелов длиннее строки, вам все равно придется разбивать их вручную.
Это заменяет последние пробелы символом возврата в текущем шрифте + пробел без ширины, так что пока вы можете регулировать ширину символа возврата (есть различные возможные способы сделать это), так что Word по-прежнему переносится на Одних и тех же точек может быть достаточно.
Sub markAutoLineBreaks()
' Changes line breaks automatically made by Word
' into "return" charaters, but only where the line
' ends in a " "
' This operates on the text in the current selection
' We use a character style
Const strStyleName As String = "contchar"
Dim r As Word.Range
Dim styContchar As Word.Style
' Add the style if it is not present
On Error Resume Next
Set styContchar = ActiveDocument.Styles.Add(strStyleName, Type:=WdStyleType.wdStyleTypeCharacter)
Err.Clear
On Error GoTo 0
' Set the characteristics of the style. What you need to aim for
' is to adjust the character width so that the text breaks at the
' same point (if possible)
Set styContchar = ActiveDocument.Styles(strStyleName)
With styContchar.Font
.Size = 8
End With
' Save the selection
Set r = Selection.Range
' remove old line end marks
With Selection.Find
.ClearFormatting
.Style = styContchar
.Replacement.ClearFormatting
' Not sure what to use here, but this will have to do
.Replacement.Style = ActiveDocument.Styles("Default Paragraph Font")
' 9166 is the return character. 8204 is a No-width breaking space
.Text = ChrW(9166) & ChrW(8204)
.Replacement.Text = " "
.Forward = True
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
' Moving down lines is not completely straightforward
' but this seems to work
Selection.Collapse direction:=wdCollapseStart
Do Until Selection.End > r.End
Selection.Bookmarks("\line").Select
If Right(Selection, 1) = " " Then
Selection.SetRange Selection.End - 1, Selection.End
Selection.Delete
Selection.Text = ChrW(9166) & ChrW(8204)
Selection.Style = styContchar
Selection.Bookmarks("\line").Select
Selection.Collapse direction:=wdCollapseStart
End If
Selection.MoveDown wdLine, 1, False
Loop
' reselect our original selection
r.Select
Set r = Nothing
End Sub
Я не буду называть его дубликатом, потому что это не ответ на вопрос, но, возможно, стоит посмотреть здесь:
Можно ли установить стиль отображения продолжения строки в Microsoft Word?
что приводит вас к: конвертировать HTML в изображение