Posso fazer com que o MS Word insira símbolos para quebras de linha automáticas?

4

Eu quero incluir um esquema XML em um documento técnico criado no MS Word. Tem linhas que são muito mais longas que a largura disponível na página, portanto, o Word quebra automaticamente as linhas. Quero deixar explicitamente claro para o leitor onde isso aconteceu, então eles sabem que a próxima linha é uma continuação da anterior. Existe uma maneira de fazer com que o Word insira automaticamente um símbolo, por exemplo ⏎, no final de cada linha quebrada automaticamente?

Eu poderia, claro, fazer isso manualmente, mas isso seria muito trabalho que eu teria que repetir toda vez que o esquema mudasse, e seria propenso a erros. Eu sei sobre o modo "mostrar caracteres não imprimíveis", mas quero que esses símbolos sejam visíveis apenas nesta seção e também sejam impressos. Além disso, "mostrar caracteres não imprimíveis" mostra as quebras de linha explícitas em vez das automáticas.

Isso é possível com o MS Word ou, se não, alguém pode recomendar outra técnica automatizada para alcançá-lo?

    
por Pepijn Schmitz 30.04.2014 / 12:05

2 respostas

0

Bem, você poderia tentar o seguinte VBA como ponto de partida, mas acho que precisará de algum trabalho. Ele pressupõe que suas pausas sempre serão após um espaço (não irracional para um esquema IMO), portanto, se você tiver um texto sem espaço maior que uma linha, talvez ainda precise quebrá-las manualmente.

Isso substitui os espaços finais pelo símbolo de retorno na fonte atual + um espaço sem quebra de largura, contanto que você possa ajustar a largura do símbolo de retorno (há várias maneiras possíveis de fazer isso) para que o Word ainda embrulha nos mesmos pontos, pode ser o suficiente.

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
    
por 01.05.2014 / 18:42
0

Eu não vou colocá-lo como uma duplicata, porque não é uma pergunta respondida, mas pode querer olhar aqui:
É possível definir um estilo para mostrar continuações de linha no Microsoft Word?

que leva você a: Converter HTML em imagem

    
por 01.05.2014 / 15:34