Kann ich MS Word veranlassen, Symbole für automatische Zeilenumbrüche einzufügen?

936
Pepijn Schmitz

Ich möchte ein XML-Schema in ein in MS Word erstelltes technisches Dokument einfügen. Es hat Zeilen, die viel länger als die verfügbare Breite auf der Seite sind, so dass Word die Zeilen automatisch bricht. Ich möchte dem Leser explizit klarstellen, wo dies geschehen ist, damit sie wissen, dass die nächste Zeile eine Fortsetzung der vorherigen ist. Gibt es eine Möglichkeit, Word dazu zu bringen, automatisch ein Symbol, z. B. ⏎, am Ende jeder automatisch unterbrochenen Zeile einzufügen?

Ich könnte es natürlich manuell tun, aber das wäre eine Menge Arbeit, die ich jedes Mal wiederholen muss, wenn sich das Schema ändert, und es wäre fehleranfällig. Ich kenne den Modus "Nichtdruckzeichen anzeigen", aber ich möchte, dass diese Symbole nur in diesem Abschnitt sichtbar sind und auch gedruckt werden. Außerdem zeigt "nicht gedruckte Zeichen anzeigen" die expliziten Zeilenumbrüche anstelle der automatischen.

Ist dies mit MS Word möglich oder kann jemand eine andere automatisierte Methode empfehlen, um dies zu erreichen?

4
Wenn Sie die Tastenkombination Strg + Umsch + 8 drücken, werden Formatierungssymbole angezeigt, die nicht genau angeben, wonach Sie suchen, sondern nur, wenn eine Zeile unterbrochen ist. Raystafarian vor 10 Jahren 0
Ja, das ist der Modus "Nichtdruckzeichen anzeigen", den ich erwähnt habe. Das funktioniert leider nicht für meinen Zweck. Pepijn Schmitz vor 10 Jahren 0
Muss es ein Sonderzeichen sein? Was ist mit Einrückung-> Hängen ...? Der eingebundene Inhalt wird automatisch eingerückt (zweite Zeile). Madball73 vor 10 Jahren 1
Ich würde wirklich einen besonderen Charakter bevorzugen, da dies eindeutig wäre. Die Datei hat einen Einzug, so dass Sie nicht immer sicher sind, ob eine Zeile eingerückt werden soll oder ob die vorherige Zeile fortgesetzt werden soll. Pepijn Schmitz vor 10 Jahren 0
Insbesondere bei einer Anforderung, die Sie in allen Modi anzeigen, bin ich mir nicht sicher, ob dies möglich ist, da sich der Ort der Zeilenumbrüche nicht an einem statischen Ort befindet (dh es handelt sich nicht um einen Zeilenumbruch, automatisch oder anders). Eine weitere Option besteht darin, eine Liste mit Aufzählungszeichen oder eine Tabelle mit Schattierung zu erstellen, damit klar ist, was eine diskrete Linie ist. Dies würde jede Zeile bezeichnen, nicht nur die Zeilenumbrüche. Madball73 vor 10 Jahren 0
Ja, es wird langsam klar, dass dies einfach nicht möglich ist. Na ja, es wäre schön gewesen, aber es ist keine große Sache. Pepijn Schmitz vor 10 Jahren 0

2 Antworten auf die Frage

0
Madball73

Ich werde es nicht als Duplikat bezeichnen, da es sich nicht um eine beantwortete Frage handelt, aber Sie möchten vielleicht hier nachsehen:
Ist es möglich, einen Stil für die Darstellung von Zeilenfortsätzen in Microsoft Word festzulegen?

Das führt Sie zu: Konvertieren Sie HTML in ein Bild

Danke für den Zeiger! Ich habe nach Duplikaten gesucht, aber dieses nicht gefunden. Das funktioniert aber nicht für mich. Der Code ist viel zu lang, als dass ein Bild davon auf eine Seite passen könnte. Es wäre auch schwierig, es mit den gleichen Schriftarten, Schriftgrößen usw. in das Word-Dokument einzufügen und natürlich zu integrieren. Die Auflösung müsste sehr hoch sein, um trotzdem gut drucken zu können. Es klingt auch nach viel Arbeit, als manuell zu erledigen. ;) Pepijn Schmitz vor 10 Jahren 0
0
phuclv

Nun, Sie könnten die folgende VBA als Ausgangspunkt ausprobieren, aber ich denke, es wird etwas Arbeit brauchen. Es wird davon ausgegangen, dass Ihre Unterbrechungen immer nach einem Leerzeichen liegen (nicht für ein Schema-IMO unvernünftig). Wenn Sie also über raumlosen Text verfügen, der länger als eine Zeile ist, müssen Sie diesen möglicherweise immer noch von Hand brechen.

Dies ersetzt die letzten Leerzeichen durch das Rückkehrsymbol in der aktuellen Schriftart + ein Leerzeichen ohne Breite, so dass Sie die Breite des Rückkehrsymbols anpassen können (es gibt verschiedene Möglichkeiten, dies zu tun), so dass Word immer noch am Zeilenumbruch erscheint gleiche Punkte kann es genug sein.

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 
Faszinierend Ich möchte es ausprobieren, aber es wird nicht kompiliert. Es gibt zwei "end-ifs" in der do ... -Schleife, und mir ist nicht sofort klar, wie Sie das gemeint haben. Pepijn Schmitz vor 9 Jahren 0
Du hast recht. Ich habe den Code bearbeitet und nur eine kurze Überprüfung durchgeführt. vor 9 Jahren 0
Danke, jetzt geht es! Es ist noch nicht perfekt. Manchmal fügt es das Symbol nicht zu einer unterbrochenen Linie hinzu und es ist nicht klar, warum. Und manchmal wird das Symbol hinzugefügt, aber das letzte Wort passt nicht mehr in die Zeile, sodass das letzte Wort und das Symbol in die nächste Zeile verschoben werden. Aber es ist ein guter Anfang und wahrscheinlich so nah wie möglich an das, was ich will, also akzeptiere ich Ihre Antwort. Können Sie sich einen Weg vorstellen, um das Problem zu lösen, indem Wörter in die nächste Zeile verschoben werden, weil das Rückkehrsymbol sie gerade zu lang macht? Pepijn Schmitz vor 9 Jahren 0
Ich denke, dass nur eine Teilautomatisierung möglich ist, ohne dass der Zeilenumbruch-Algorithmus von Word und die Möglichkeit, die Breite des "Rückkehrsymbols" entsprechend anzupassen. Es wäre möglich, das Rückkehrsymbol enger zu gestalten - ich schaue es mir an, aber heute nicht! Die andere Sache, die ich nicht im Detail betrachtet habe, ist, was mit dem Leerraum ohne Breite geschieht, wenn Sie auf die Schaltfläche Einblenden / Ausblenden klicken, und welchen Unterschied dies zu dem angezeigten macht. vor 9 Jahren 0
OK, das ist schon ziemlich nützlich für mich. Es geht meistens richtig; Das Beheben der wenigen Fehler ist viel weniger Arbeit als alles von Hand. Vielen Dank! Pepijn Schmitz vor 9 Jahren 0
Ich habe einen kurzen Blick darauf geworfen, und die einfachste Möglichkeit, die Zeichengröße zu reduzieren, besteht darin, die Zeile ".size = 8" in z. B. ".size = 7" zu ändern. Die dort angegebene Größe ist absolut, dh nicht relativ zum umgebenden Text. Wenn man 6 macht, ist das zwar in Ordnung, aber 4 wird etwas klein. Sie könnten auch eine Zeile mit der Aufschrift ".Spacing = -1" setzen, aber ohne weitere Änderungen denke ich, dass dies nur den Abstand zwischen den beiden Zeichen beeinflusst, der eingefügt wird, und nicht zwischen dem letzten Zeichen und dem Wiederholungssymbol wird wahrscheinlich benötigt. vor 9 Jahren 0
Ich glaube nicht, dass es viel ausmachen würde. Bei jeder Größe gibt es Fälle, in denen _just_ die Leitungslänge über das Maximum hinausschiebt. Ich denke, eine bessere Idee ist, den rechten Einzug für diese Zeilen nach dem Anwenden dieses Skripts ein wenig nach rechts zu verschieben. Dies sollte dazu führen, dass jene Wörter, die ungewollt in die nächste Zeile gedrückt wurden, zu der Zeile zurückspringen, zu der sie gehören. Pepijn Schmitz vor 9 Jahren 0