Рисуем графическим планшетом в MyPaint



11 коммент.
эпиграф:
Мама, я его рисую, мама, это будет что-то,
Мама, почему тоскуют те, кто заслужил полета,
Мама, я хочу такое, я уже умею...
//Суровая сибирская музыка.



Преамбула
Этот обзор несколько необычен: он написан целиком под Windows. Удивление читателя понятно и будет удовлетворено. Дело в том, что программа художественной растровой графики MyPaint имеется только в сильном тестинге Debian, притом даже из этого самого тестинга при установке кучи пакетов попытка запуска заканчивается вот так
Читать далее

Книга по Linux: The Debian Cookbook



26 коммент.
Позволю себе немножко пафоса в заголовке - не пугайтесь, это не книга по Linux, а всего лишь PDF-версия постов этого блога, или повареная книга Debian как следует из названия. Некоторое время назад я взял на себя социалистическое обязательство изваять справочник по Debian, а точнее сделать часть своих постов в виде книжки под формат ежедневников А6. Собственно, проект достиг стадии, которую можно назвать первым релизом.
Читать далее

Скриншоты в Linux, или как сделать снимок экрана



25 коммент.
Скриншоты - это как показы высокой моды:
всё красиво и вычурно, но по улице в таком не ходят.
(с) глас народа из раздела Галереи на ЛОРе

Как-то раз мне задал вопрос один новоиспечённый убунтовец: как в Linux сделать скриншот в иксах (screenshot, снимок рабочей области)? А то тут кнопка PrnScr/SysRq не работает..." Естественно, ему было рассказано про истинное назначение кнопки SysRQ, но вопрос остался: чем скриншоты в Linux делать!? Как и многое другое в Linux, это имеет 1001 решение.
Читать далее

Новый шаблон, эпизод 3: Классицизм



48 коммент.
Добрый молодец али девица, посетив сию обитель мудрости и вселенской благодати, да узреет очередные творческiя муки многострадального автора в поиске недостижимого совершенства. Сия смена обличия бложия есть верстовой камень новый в деле освоения XML-я басурманского. Да не сочтёт за труд сей добрый молодец али девица поделиться в комментариях о думах и впечатлениях своих по сему поводу...
Читать далее

Автозапуск приложений в IceWM: IceWM autostart



26 коммент.
Автоматический запуск приложений в автозапуск IceWM при старте - вещь простая, но всегда вылетает из моей головы. Так как гуглить в яндексе на эту тему приходится не в первый раз, выкладываю это тут.

Как говорит документация, которую всё равно настоящие джигиты не читают, в IceWM начиная с версии 1.2.13 имеется бинарный файл icewm-session. Именно он запускает все компоненты IceWM, такие как собственно icewm, системный лоток icewmtray, скрипт автозапуска startup, и другие. Так что для автозапуска приложений в IceWM правим (или создаём сами) файл ~.icewm/startup в домашнем каталоге. Это обычный bash-скрипт, с тем лишь отличием, что каждая команда в нём заканчивается знаком амперсанда &, что означает параллельный запуск приложений (скрипт не будет ждать, когда приложение завершится).
Читать далее

Мелкие тонкости презентаций в Beamer



16 коммент.
Есть ряд мелких, но противных тонкостей при работе с Beamer, на которые мне пришлось нарваться при работе над очередной презентацией.


Как выровнять текст по ширине в Beamer?
Для этого используем возможности пакета ragged2e и в преамбуле документа презентации пишем:
\usepackage{ragged2e}
\justifying
Но это выровняет текст только в пределах одного слайда. Чтобы выровнять весь текст в презентации, в преамбулу вставляем:
\renewcommand{\raggedright}{\leftskip=0pt \rightskip=0pt plus 0cm}
И это выровняет текст по ширине в слайдах.


Куча слайдов в Beamer и как их структурировать
На самом деле, в Beamer никто не запрещает использование \section и \subsection - в тексте
презентации они никак не отражаются (за исключением, может быть, некоторых тем),
а структурировать презентацию это сильно помогает.
Читать далее

Векторная графика в Linux на примере редактора Inkscape



28 коммент.
Некоторое время назад мне потребовалось оформлять плакат для выставки. У меня не возникло вопросов, в чём создавать плакат - разумеется, в векторном редакторе Inkscape! Однако мои молодые коллеги, с изумлением глядя на двухметровый плакат, предлагая самые безумные версии от Microsoft Paint до Word, под конец закидали меня вопросами о том, где бы такое сделать. Пост написан по результатам наших бурных обсуждений и моих скромных находок.


Векторная графика

Если очень кратко, то дело обстоит так: растровая графика оперирует с пикселями и их значениями, в то время как для векторной графики существуют линии, кривые и узлы. В растровой графике, например, чёрный прямоугольник будет задан множеством чёрных точек - пикселей. В векторной - прямоугольником со сторонами A и B, толщиной линии, и цветом линии и заливки. Разница будет ещё очевиднее, если вы захотите нарисовать изогнутую линию. В растровом виде это будет сделать трудно, зато в векторном - легче лёгкого: вам помогут кривые Безье, которые можно представить как гибкую линейку. Задаём точки и изгибы в каждом узле, и получаем кривые самых невообразимых видов.

Векторная графика имеет ещё одно большое преимущество: масштабируемость. То есть если вы сделали плакат на формат А4, а печатать надо на формат А0, с векторной графикой нет проблем - просто растянули и всё. С растровой вы обязательно получите артефакты, квадратики и прочую гадость.

Не буду пересказывать википедию, так как многие вещи лучше просто попробовать и понять, нужны они вам или нет. Тем более, что в Debian это делается щелчком мыши \ одной командой: установить inkscape. Почему именно Inkscape? Это самый продвинутый и доведённый до ума это векторный редактор в Linux (если среди читателей есть те, кто ищут аналог Adobe Illustrator в Linux - так вот это он :-)). Есть его Gimp-подобный аналог Sodipodi, но активности оттуда что-то не видно. Развивается проект sK1, но до повседневного использования ему ещё далеко. В общем, все примеры будут приводиться исключительно для Inkscape.


Inkscape - быстрый старт

Для примера приведу свой плакат с выставки - он целиком сделан в Inkscape.
После запуска нас ждёт главное окно программы: панель инструментов рисования слева (выделено синим цветом на скриншоте), цветовая палитра внизу (там же управление слоями - выделено жёлтым), и несколько полезных кнопок на главной панели сверху (группировка\разгруппировка объектов, свойства текста, выравнивание объектов - группа выделена зелёным цветом). Собственно, скриншот во всей красе:



Есть несколько интересных и полезных возможностей в Inkscape, которые могут пригодиться каждому, кому хоть раз приходилось делать для себя или других плакаты. Ну, как нарисовать кружочек или квадратик я говорить не стану - это можно легко догадаться самому. Интереснее другое: например, нужно нарисовать сложный объект. Для этого выбираем инструмент "Произвольные контуры" (с иконкой простого карандаша) и отводим душу в творчестве.
После всего этого любуемся результатами своего художественного мастерства и, например, замечаем, что вот этот уголок хорошо бы сгладить, а этот бугорок вообще не нужен.



Это легко поправить: выбираем инструмент "Редактировать узлы контуров" (стрелка с узлом, помечено на скриншоте красным цветом). После этого выбираем фигуру, которую нарисовали, и начинаем дёргать за узлы (чтобы их переместить) или "усы", которые от узлов отходят (они отвечают за изгиб кривой). С узлами можно поступать как с любыми другими объектами - удалять, добавлять или изменять. Для этого, после выбора инструмента "Редактировать узлы контуров", появится группа инструментов на верхней панели (отмечено зелёным цветом на скриншоте), которые позволят это сделать. Немного тренировки, чуток практики, и вы будете рисовать как завзятых художник.


Стрелки в Inkscape
Как-то мимо меня пробегала ссылка на пост, в котором автор рыдал в три ручья об отсутствии возможности в Inkscape ставить стрелки на линиях - очень нужная опция для рисования схем и простых чертежей. И она-таки в Inkscape есть, причём сокрыта не очень глубоко: по нарисованной линии щёлкаем правой кнопкой, выбираем пункт контекстного меню "Заливка и штрих", идём в "Стиль штриха", и там выбираем любую понравившуюся нам стрелку в пункте "Конечные маркеры" и "Начальные маркеры". Результат на скриншоте:



Об эстетике результата можно спорить, но стрелку в Inkscape поставить можно запросто. Может она не по ГОСТ ил ISO, но выглядит приемлемо и нареканий особых не вызывает.


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



В Inkscape можно проворачивать много трюков - так много, что можно даже завести отдельный блог для этого :-) Но я все описывать не стану, а только те, которые мне реально пригодились (и детали которых я часто забываю).


Трассировка растровой графики в векторную в Inkscape
Часто удобно хранить вставляемые в Inkscape изображения в векторном виде - но картинка-то изначально растровая! В самом Inkscape есть очень и очень приличный плагин трассирования растровых изображений в векторные - он использует трассировщик potrace. Хотя работает трассировщик не быстро и имеет минимум параметров, результат очень хорош. Например, он позволяет быстро и точно трассировать сложные логотипы, которые некоторые несознательные граждане присылают в растровом виде.
Для того, чтобы им воспользоваться, импортируем в Inkscapе растровое изображение, выделяем его и идём в меню "Контуры" искать пункт "Векторизовать растр...". Перед нами появится незамысловатый диалог:



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


Временное сокрытие сложных объектов

Вот это было для меня крепким орешком: дело в том, что в плакате были сложные отрассированные объекты, которые сильно тормозят отрисовку. Часто нужно их просто скрыть на некоторое время, и не городить при этом слоёв. Вроде бы всё просто: для этого можно выделить объект, нажать правую кнопку и в свойствах объекта поставить флажок "Hidden".
В документации по этому поводу говорится:
While these are solutions, the ultimate solution is just to not
hide objects. Instead put them on a separate Layer and hide the
Layer (see the section called "Layers").

Я не могу с ними согласиться: иногда слоёв и так много, и городить ещё один совсем не хочется. Потом, чаще всего объект перерисовывается и хочется просто оставить его на месте и вообще не трогать. Наконец, сдаётся мне, что такие вот "ultimate solution" есть дешёвая отмазка при отсутствии инструментов работы со скрытыми объектами: дескать, сие не баг но фича. Но мы-то знаем... :-)
Но тут появляется маленькая проблема: как его обратно показать!? Это (по крайней мере в версии 0.45) несколько неочевидно. Это даже стало поводом для скриншота:



Так вот, чтобы сделать объект снова видимым, сначала щёлкаем на любом видимом объекте и открываем окно "Свойства объекта". Далее нажимаем CTRL+F для поиска, отмечаем галку "Включая скрытые", и в поле Стиль подставляем display:none

Ищем - Inkscape будет по очереди находить скрытые объекты. Когда он доберётся до искомого, отобразится его (скрытого объекта) рамка. Тут-то нам и пригодится заблаговременно открытое окно "Свойства объекта" - оттуда мы убираем галку "СКРЫТЬ" у найденного скрытого объекта. Всё, он должен снова стать видимым.

Есть ещё такой вариант: нажимать на кнопку TAB для выделения объектов и смотреть, когда появится рамка вокруг скрытого объекта. При этом в настройках Inkscape (Файл - Настроить Inkscape - Выделение) должна быть снята галка "Игнорировать скрытые объекты".

Заключение
Это, разумеется, далеко не полный перечень возможностей Inkscape (которые к тому же постоянно развиваются). Здесь я только упомянул о нескольких вещах (трассировка, выравнивание и особенно сокрытие объектов, о котором я постоянно забываю). Буду рад, если для кого-то векторные редакторы станут ещё одним полезным инструментов для работы и творческого самовыражения.
Читать далее