расширение выделения кода для писателя Libre Office


21

Недавно я написал репортаж для школы с большим количеством кода. Единственный способ, с помощью которого я нашел, - выделить его STRONG, и это действительно ужасно. Так есть ли расширение выделения кода для libre office writer?

Как этот ниже:

<insert code here>

Подсветка синтаксиса разными цветами тоже в порядке.
Я никогда не вхожу в целую программу, поэтому мне нужно выделять то, что я считаю кодом.

Как этот: echo "Hello World!";

Cooder

Мне не понравилось это выделение, так как оно форматирует текст и весь последующий текст. Я хочу отметить какой-то текст, затем нажать на выделение и все.
Это слишком сложный и сложный в использовании, мне приходится выбирать язык программирования каждый раз, когда я выделяю, что будет около 100 раз в одном отчете, это слишком много.
Я хотел бы что-то похожее на то, что они используют на сайте. выделите простой код, если хотите.

Code Colorizer Formatter

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


добавил в качестве ответа, рад, что это помогло
Дрейк Кларрис

1
Я рекомендую использовать LaTeX (см. Пример ). Прежде чем использовать латекс, я сохранил исходный код в формате HTML с KDE Kate и скопировал полученный код из браузера, чтобы открыть офис
Мартин Тома

@ Лоси, почему вы добавляете это как комментарий вместо ответа? объясни все шаги тоже спасибо.
Алвар

Ответы:


15

Это не плагин, но я поместил код на веб-сайт, который раскрасит синтаксис для вас. Сайт, который я использую, является tohtml . Однако я не использую html-сгенерированный код, я просто копирую цветной и выделенный код из браузера и вставляю его в свой документ и WYSIWYG.


Копирование не сработало для меня из Firefox в Libroffice, хотя сохранение в HTML и открытие файла в Libreoffice, а затем копирование сработало
Уилф

копирование + вставка работали над Ubuntu из Chrome в libreoffice! Благодарность!
Роза

11

ОБНОВЛЕНИЕ 2: расширение LibreOffice

Я опубликовал свой предыдущий макрос-скрипт как расширение: Code Highlighter, которое доступно в хранилище LibreOffice Extensions.

1. Как установить?

Выполните следующие шаги для установки расширения:

Шаг 1: Установите libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Шаг 2: Установите фрагменты для Python 3:

sudo pip3 install pygments

Шаг 3: Загрузите и добавьте расширение codehighlighter.oxt в Libre Office

2. Как использовать?

  • Откройте LibreOffice Writer / Calc / Impress.
  • Вставить текстовое поле ( Вставить -> Текстовое поле ).
  • Скопируйте и вставьте любой фрагмент кода в это текстовое поле.
  • Выберите текстовое поле.
  • Подсветка с помощью инструментов -> Подсветка кода -> <Имя-языка>

введите описание изображения здесь

Вы можете назначить сочетания клавиш для часто используемых языков. Чтобы узнать, как назначить сочетание клавиш, посетите страницу Git Hub: libreoffice-code-highlighter


Я оставляю свой оригинальный ответ здесь, так как он все еще действителен для LO <= 5.

У меня было такое же требование, и ни одно из этих решений не работало для меня в LibreOffice 5, кроме «Code Colorizer Formatter». Но Code Colorizer Formatter работал только в Writer (мне тоже нужно было для Impress). Позже я нашел другое решение, использующее макрос Python, который протестирован в LibreOffice 5.

Установка

Шаг 1: Установите libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Шаг 2: Установите фрагменты для Python 3:

sudo pip3 install pygments

Шаг 3: Загрузите Highlight.py

Шаг 4: Скопируйте Highlight.py в / usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

Шаг 5: Установите разрешение «Только чтение» для сценария.

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

Шаг 6: Откройте LibreOffice Writer и перейдите в Инструменты -> Настройка -> Клавиатура

  • Нажмите кнопку опции LibreOffice (доступно в левом верхнем углу)
  • Выберите любой желаемый ярлык
  • Выберите share / Highlight / Highlight_source_code под категорией функций
  • Нажмите на кнопку Изменить, чтобы установить ярлык

использование

LibreOffice Impress

  • Откройте LibreOffice Impress.
  • Вставить текстовое поле (Вставить -> Текстовое поле).
  • Скопируйте и вставьте любой фрагмент кода в это текстовое поле.
  • Создать новый стиль (щелкните правой кнопкой мыши на существующем стиле -> Новый ...)
  • Назовите Стиль как code-<language>
  • Примените стиль к своему текстовому полю фрагмента кода.
  • Выберите текстовое поле.
  • Используйте ваши сочетания клавиш для выполнения макроса.

LibreOffice Writer / Calc

  • Откройте LibreOffice Writer / Calc.
  • Вставить текстовое поле (Вставить -> Текстовое поле).
  • Скопируйте и вставьте любой фрагмент кода в это текстовое поле.
  • Щелкните правой кнопкой мыши на текстовом поле и выберите «Описание».
  • Добавьте описание в следующем формате: code-<language>
  • Выберите текстовое поле
  • Используйте ваши сочетания клавиш для выполнения макроса.

ОБНОВЛЕНИЕ 1:

Я добавил поддержку пользовательских стилей для этого расширения. Используйте code-<language>для стиля по умолчанию и code-<language>-<style>для пользовательского стиля. Доступные стили перечислены на моей странице Git Hub.

Например, Code-Java-Emacsраскрасит код Java с использованием стиля Emacs.


Это работает довольно хорошо, спасибо! Как я могу изменить тему фрагментов?
Greschd

Пожалуйста, проверьте обновленный пост. Я обновил свой скрипт для поддержки пользовательских стилей. Вам необходимо обновить скрипт Highlight.py, чтобы использовать эту новую функцию.
Гобинат

Здорово спасибо Одна вещь все еще беспокоит меня - когда я просто сохраняю файл и затем пытаюсь выполнить макрос, он сбрасывает текст в более раннюю версию. Знаете ли вы, почему это так и можно ли это легко исправить?
Greschd

Я не сталкивался с такой проблемой. Не могли бы вы сообщить мне точные шаги для воспроизведения этой проблемы?
Гобинат

(в Impress): я редактирую некоторый код в текстовом поле, которое я уже отформатировал ранее, сохраняю документ (Ctrl + S), выбираю текстовое поле, пытаюсь выделить (Ctrl + Shift + H), и он сбрасывает часть текста Я написал
Greschd

4

Cooder

COOder, похоже, заброшен и не может быть установлен в LibreOffice 4.2.8.2.

Code Colorizer Formatter

Code Colorizer Formatter устанавливается и работает правильно в LibreOffice. Code Colorizer Formatter также добавил поддержку PHP, но поддержка HTML полностью отсутствует, и JavaScript не работал, когда я тестировал его. Инструкции о том, как заставить его работать на веб-сайте Code Colorizer Formatter, не сработали для меня, однако я заставил Code Colorizer Formatter работать в LibreOffice трудным способом, и вот мои инструкции:

  1. Загрузите Code Colorizer Formatter с домашней страницы проекта Code Colorizer и установите его в LibreOffice Writer, как и любое другое расширение LibreOffice.

  2. Откройте ваш файл кода в LibreOffice Writer. Code Colorizer Formatter поддерживает Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Assembler и x86 Assembler.

  3. Выберите код для раскрашивания.

  4. Выберите Инструменты -> Макросы -> Организовать макросы -> LibreOffice Basic .

  5. Откроется новое окно макросов LibreOffice Basic . Под заголовком « Макрос» выберите « Мои макросы» -> « MacroFormatterADP» -> поддерживаемый язык программирования. На скриншоте ниже выбрана Java.

  6. Под заголовком Существующие макросы в ... выберите HighlightSelLanguage, где язык в HighlightSelLanguage совпадает с языком программирования, выбранным на пятом шаге. На скриншоте ниже выделен HighlightSelJava.

  7. Нажмите кнопку « Выполнить» , чтобы раскрасить выбранный код.

введите описание изображения здесь


Кажется, заброшенный, переход в раздел расширений в LibreOffice говорит, что у него не было обновлений более года
Purefan

Объем работы по использованию CCF не стоит результата, ИМХО. Я думал, что страница tohtml лучше справляется с результатами (например, цветными точками, скобками и т. Д.). Однако, если кто-то хочет использовать этот «легкий путь» ™, он может перейти в Инструменты >> Настройка ... >> Контекстные меню (вкладка) >> Меню (раскрывающийся список) >> Текст >> Добавить ... ( кнопка) >> Макросы LibreOffice >> Мои макросы >> MacroFormatterADP >> (выберите язык) >> HighlightSel (язык) >> Закрыть . После этого просто выделите текст, щелкните правой кнопкой мыши и найдите новую опцию в контекстном меню для форматирования выделенного текста; запись может быть переименована.
code_dredd

1
@karel Я использую версию 5.2.2.2в Kubuntu 16.10. Я сделал это за несколько минут до моего первоначального комментария.
code_dredd

@ray Спасибо за ваше предложение. Я установлю Kubuntu в VirtualBox и попробую.
Карел

@karel Версия 5.2.2.2в Windows не работает одинаково? Я думаю, что простое обновление вашей версии должно работать без полной установки ОС.
code_dredd

1

Мне приходится выбирать язык программирования каждый раз, когда я выделяю, что будет около 100 раз в одном отчете, это слишком много

На самом деле есть способ привязать раскраску на данном языке к горячей клавише. Сделайте следующий подпункт и свяжите его с горячей клавишей:

Перейдите в Инструменты → Макросы → Упорядочить макросы → LibreOffice Basic. Выберите Module1 и нажмите Edit:

введите описание изображения здесь

Затем скопируйте и вставьте этот код:

Sub COOoderInPython
  ExecuteCOOoder("python")
End Sub

Sub ExecuteCOOoder(sLanguage As String)
  oLanguage = org.openoffice.coooder.theLanguagesManager.get(GetDefaultContext()).getLanguage(sLanguage)
  If NOT isNull(oLanguage) Then
    oHighlighter = CreateUnoService("org.openoffice.coooder.Highlighter")
    oHighlighter.Language = oLanguage
    oHighlighter.parse(Null)
  End If
End Sub

Наконец, свяжите это с горячей клавишей:

введите описание изображения здесь


0

Один из тех, о которых я знаю, но, похоже, заброшен, это Code Colorizer Formatter .

Я не знаю, работает ли он все еще в LO 4, но вам стоит попробовать (или спасти и обновить!).


1
Code Colorizer Formatter был обновлен 1 марта 2015 года с поддержкой вплоть до LibreOffice 4.4 для многих языков программирования, включая PHP. Я тестировал Code Colorizer Formatter на LibreOffice 4.2. Инструкции на официальном сайте Code Colorizer Formatter у меня не сработали, поэтому я добавил свои собственные инструкции по использованию Code Colorizer Formatter в своем ответе.
Карел

0

Я устал от форматирования своего кода на онлайн-странице и хотел, чтобы мой код был стилизован внутри LibreOffice или OpenOffice Writer.

Я обнаружил, что расширение «cooder» правильно работает на моем LibreOffice 5. *, даже если установка не удалась (My LibreOffice 5. * приостановлено во время установки).

В Extension-Manager вы можете активировать Cooder, перезапустить LibreOffice / NeoOffice / OpenOffice и вы увидите новый Symbol, который вы можете использовать для стилизации вашего исходного кода внутри LibreOffice.

Вы можете скачать расширение по адресу: http://extensions.libreoffice.org/extension-center/coooder

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.