Мне нужно писать много курсовых презентаций для своего класса по программированию, и постоянно приходится показывать исходный код (в основном C код).
Я не могу найти простой способ:
Если код маленький, то я делаю снапшот, а если большой, то останавливаю презентацию и открываю Kate в datashow.
В этом другом вопросе некоторые предлагают встраивать HTML код. Поэтому я установил QSource-Highlight, который легко преобразует код на Си в HTML (также gnu source-highlight, code2html и т.д.). Ни одна из них не может преобразовать исходный код в версию выделенного RTF (rich text format), это был бы еще один способ.
Наличие HTML не помогает, потому что я также не могу найти простой способ вставить HTML в презентацию. На этом сайте показано очень хитрое windows решение. Нужно преобразовать c-код в HTML с помощью специальной windows-программы, в которой есть возможность скопировать HTML в RTF, затем вставить RTF в Word или Wordpad, а после этого вставить RTF в PowerPoint. Все это хорошо, но я - пользователь linux, и мне кажется, что есть лучший способ.
Кроме того, есть еще одно возможное решение - установить расширение coooder для openoffice. Я не знаю почему, но при попытке установить это расширение в моей системе возникает ошибка. Synaptic сообщает мне, что openoffice.org-core и многие другие должны быть отмечены. Я нажимаю кнопку next, и он сообщает мне, что хочет удалить все пакеты, и что coooder нуждается в этих пакетах для работы, и поэтому он не будет установлен. Что ж...
Я использую linux UBUNTU 10.04, и Open Office 3.2.
Спасибо! Беко.
PS..: Этот вопрос обсуждается в meta-so как возможное дублирование вопроса, процитированного выше. Но, насколько я понимаю, более старый вопрос не решает эту специфическую проблему.
PPS.: По поводу ошибки с кудером я запустил сообщение об ошибке здесь
Редактировать (2015-08-19)
Для вставки RTF-текста в презентацию LibreOffice можно использовать меню вставка
, файл
и rtf
(или HTML
).
Некоторые утверждают, что копирование кода из редактора Eclipse работает хорошо (UPDATE: доказано FALSE). Другая альтернатива - экспорт в RTF (можно также экспортировать номера строк) или в буфер обмена из Highlight и последующее открытие/вставка в OpenOffice.org. (UPDATE: подтверждено TRUE)
Вот снимок экрана с графическим интерфейсом Highlight:
Вы также можете перейти с OpenOffice.org на LibreOffice и получить COOoder отсюда здесь.
Этот ответ идеально подходит для работы:
Вы можете сделать это легко
Я протестировал это с LibreOffice 4.2.8 под Ubuntu.
У меня точно такая же проблема, но с кодом PHP, а не с C. Мое почти решение - скопировать код в формате HTML в Kate и вставить его во временный документ Open Office Writer. Это преобразует его в собственный формат текста Open Office, и оттуда вы можете скопировать и вставить его в Impress. Помимо слегка раздражающей двухступенчатой копирования и вставки, это в основном работает нормально за исключением того, что линии, которые были полностью выделены жирным шрифтом, теряют свое ободрение, и мне приходится их вручную исправлять. Также может произойти несколько других странных ошибок - импорт стилизованного текста от OOWriter Impress выглядит немного глючным.
Обновление: Я выпустил этот макрос как расширение LibreOffice. Вы можете установить его с официального сайта: Code Highlighter
У меня была та же проблема, но для Java, и, наконец, я нашел собственное решение с использованием макроса Python, который протестирован в LibreOffice 5.
Шаг 1: Установите libreoffice-script-provider-python:
sudo apt-get install libreoffice-script-provider-python
Шаг 2: Установите пигменты для Python 3:
sudo pip3 install python3-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 и goto Tools - > Настроить - > Клавиатура
code- < language >
code- < language >
ОБНОВЛЕНИЕ:
Я добавил поддержку пользовательского стиля к этому расширению. Используйте code- < language >
для стиля по умолчанию иcode- < language > - < style >
для пользовательского стиля. Доступные стили перечислены на моей странице Git Hub.
Например, Code-Java-Emacs
раскрасит код Java, используя стиль Emacs.
Для получения более подробной информации посетите ссылку Git Hub: libreoffice-code-highlighter
Если вы знакомы с LaTeX, то для создания презентации вам следует использовать beamer. На странице wikipedia есть ссылки на многие учебники и документы. Руководство пользователя user guide является, пожалуй, лучшим из тех, что я нашел.
Он может предоставить вам все возможности LaTeX для работы с фрагментами исходного кода (пакет listings или любой другой, который вы предпочитаете) наряду с остальными обычными возможностями LaTeX, к которым вы привыкли. В комплекте с ним поставляются несколько очень красивых тем.
Вы можете легко использовать таблицу с 1 строкой и 1 столбцом, копировать и переходить свой код из своей любимой IDE, открытый офис сохранит ваш стиль кода.
Извлечение из Eclipse в OpenOffice Impress напрямую, кажется, теряет окраску. Тем не менее, первое вхождение в OO Writer и оттуда в OO Impress работает.
Я постоянно делаю это в open office с исходным кодом под Windows. Просмотрите код в своем любимом редакторе (emacs, notepad, ...), выделите/скопируйте интересующий вас текст. Создайте текстовое поле в open office и вставьте. Это работает потому, что все инструменты Windows имеют общий глобальный буфер вырезания. Я недостаточно использую Linux, чтобы знать, есть ли у него такой общий буфер вырезания, если нет, то я понимаю вашу проблему. (Если есть, то я действительно не понимаю вашу проблему). Мое решение, конечно, само по себе не позволяет получить красиво отформатированный/выделенный код.
Конкретные шаги: В Open Office Impress ("Презентация") с открытым слайдом щелкните на поле с надписью "T" на нижней панели инструментов (или нажмите F2). Затем щелкните на слайде примерно в том месте, где вы хотите разместить текст, и перетащите рамку до нужного размера. Щелкните в поле и введите текст. Для кода я вырезаю его из окна какого-либо редактора и вставляю после выделения текстового поля. Если щелкнуть по контуру текстового поля, можно изменить шрифт (для кода хорошо подходит courier new) и размер шрифта.
После того как размер текста будет определен, можно вернуться к определенным подстрокам и выбрать/полужирный или выбрать/цвет, если требуется причудливый текст.
Можно рассмотреть возможность вырезания и вставки из JavaDoc или Doxygen; скорее всего, вместе с текстом вы получите данные форматирования.