Указать перенос длинных строк кода в Word 2007

Я использую Word 2007 и вставляю код в документ. У меня есть стиль с шрифтом фиксированной ширины и светло-серым фоном и все, и я использую Notepad++ для подсветки синтаксиса.

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

есть ли способ, чтобы автоматически вставить символ стрелки в начале такой завернутый строки, указывающие, что это одна и та же строка (вроде переноса, кроме длинных строк вместо длинных слов)?

Так, что, например это:

public static void foo(String abcdefg, Boolean 123, String xyz)

(при условии, что страница / коробка / столбец/... достаточно, чтобы показать текст до "123"), будет отображаться следующим образом:

public static void foo (строка abcdefg, Boolean 123,


→String xyz)

7
задан Alois Mahdal
10.05.2023 14:19 Количество просмотров материала 3475
Распечатать страницу

3 ответа

Я не считаю, что это функция в Microsoft Word, однако я полагаю, что вы могли бы эмулировать это, имея отрицательный висячий отступ, а затем установить фоновое изображение на абзац таким образом, что первый 12pts стоит пробел, а затем следующий 120pts является 12pt высокая стрелка, плиточный 10 раз. Это позволит вам прорваться через 11 линий.

0
отвечен ta.speot.is 2023-05-11 22:07

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

этот код может начать вас (это копипаст готов):

Sub FixCodeLines()

Dim p           As Word.Paragraph
Dim c           As Word.Range
Dim charcount   As Integer
Dim MaxLineLen  As Integer
Dim txt         As String
Dim styname     As String

MaxLineLen = 68     ' number of characters on one line
txt = "    -->  "   ' symbol/text to insert
styname = "Code"    ' name of style to process

For Each p In ActiveDocument.Paragraphs
    If p.Style = styname Then
        charcount = 0
        For Each c In p.Range.Characters
            charcount = charcount + 1
            If (charcount Mod MaxLineLen = 0) Then
                c.InsertAfter Chr(11) & txt ' Chr(11) = soft enter
            End If
        Next
    End If
Next

End Sub

код будет для всех абзацев в стиле Кода вставлять shift-enter и текст по вашему выбору после каждой длинной строки (в зависимости от количества символов)

Как использовать:

  1. применить стиль "код" для всех абзацев исходного кода (хорошая идея в любом случае не использовать ручное форматирование). Убедитесь, что шрифт стиля кода имеет фиксированную ширину, например Courier.

  2. копировать-вставить код в Редакторе visual basic Word (тип ALT-F11, нажмите кнопку "Вставить" > Модуль и вставить код)

  3. в документе Word подсчитайте максимальное количество символов в одной строке кода и измените значение в макросе к этому значению (в настоящее время 68)

  4. чтобы выполнить макрос, вернитесь в документ Word нажмите ALT-F8 выберите FixCodeLines и нажать Run.

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

также, если вы имеете более поздняя версия Office (2003 и т. д.), У вас могут возникнуть некоторые проблемы с сохранением/выполнением документа/макроса из-за безопасности blabla. Внимательно прочитайте все возможные диалоговые окна Word, чтобы не потерять код.

0
отвечен Rabarberski 2023-05-12 00:24

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

0
отвечен Adam 2023-05-12 02:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх