Documentation about the Emacs Easy Draw Graphics Editor
Emacs Easy Draw is a drawing tool that runs inside Emacs. It is
developed by AKIYAMA Kouhei (misohena) plus some more developers. Its
main characteristics:
- GUI tool that runs inside Emacs with both mouse and keyboard support
- Generates standards compliant scalable vector graphics (SVG) content
- Allows to generates both SVG files or embedded SVG content
- Various usage options:
- Run from within Emacs org-mode
- Run from any Emacs mode
- Invoke from specific file type/extension
- Embed Easy Draw editor in any Emacs buffer
The purpose of below text is to document Easy Draw specificities that
I learned when testing it.
References
Simple Usage Example
The following simple graphics example has been drawn quickly using
Easy Draw. It shows a few text boxes and angular brackets that have
been drawn as path elements
Easy Draw Specificities
Supported SVG Elements
- ED supports just four SVG elements:
- Rectangle
- Ellipse
- Path
- Text
- Image
- Hence other SVG elements need to be converted
- lines, polygons and polylines need to become straight paths
Difference between the Path Tool and the Free Hand Tool
Both tools create a path, but
- Path Tool: you click once per anchor point
- Free Hand Tool: you drag the left mouse
- If the grid is off, you will get many (?) "smooth" anchor points
- If the grid is on, you will get "corner" anchor points at grid
points locations
Working with Easy Draw Paths
Anchor Points
- The two ends of a path are not equal
- You can add an anchor point to a path only at one specific end, not at
the other end!
Handle Points
- To go from a "smooth" handle point to a "sharp" one, select one of
the two handle points, right click and delete. Then only one handle
point remains. This results in a corner, with a straight line on one
side. To get back a second one, select the anchor point and right
click "smooth"
- There seems to be no way, to get a smooth point with two balanced
handles, i.e. where the two handle points are kept equally far
away from the anchor point. You can use the grid to force the same
distance
- When you select a handle point, before moving it, it can move
independently of its "counter part". This results in a corner, with
curves on either side
Issues
width
and height
attributes in the svg
element must be present
- Otherwise cursor gets stuck in link (could release with the mouse)
- Elements can only by accessed by ED, when in a
<g id="edraw-body">
element. If outside, they are considered background
- When using Emacs v27.2 the function
dom-remove-attributes
in
edraw-org.el
needs to be replaced by edraw-dom-remove-attr
,
because dom-remove-attributes
was only introduced in Emacs v28.1
- Depending on the colour theme, Easy Draw path handles might be
difficult to see
Key bindings
Most of the key bindings are displayed in menus and help echoes. The
key bindings that are not displayed are as follows:
Key or Mouse Action |
Action |
left, up, right, down |
Move selected objects (S-<dir>:10px, C-u <dir>:Numerical input) |
M-left, M-up, M-right, M-down |
Duplicate selected objects and move (M-S-<dir>:10px, C-u M-<dir>:Numerical input) |
Right-click on shapes, anchors, backg., shp. picker or edraw links |
Show context menu |
(Select Tool) C-down-mouse-1 |
Add/Remove clicked shape to selection list |
(Select Tool) M-drag-mouse-1 |
Duplicate dragged shape |
(Path Tool) C-u down-mouse-1 |
Ignore existing points (Avoid connecting or moving existing points) |
S-drag-mouse-1 |
45 degree unit movement or square specification |
Middle-drag |
Scroll |
C-wheel-up, C-wheel-down |
Zoom |
(In Property Editor) Middle-click |
Close window |
(In Shape Picker) Middle-click |
Close window |
Multi Line Text
When you are in the property dialog of a text element, you can create
another line by typing C-q C-j
.