Skip to content

burghoff/Scientific-Inkscape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scientific Inkscape: Extensions for figure editing and resizing

Scientific Inkscape is a set of Inkscape extensions for editing and exporting scientific figures. The core extensions are:

  1. Scale Plots: Changes the size or aspect ratio of a plot without modifying its text and ticks. Especially useful for assembling multi-panel figures. (For non-plots, provides a way to scale objects without affecting text.)
  2. Flattener: A utility that eliminates much of the structure of imported figures and facilitates editing. For most imports, this should be the first thing you run.
  3. Homogenizer: Quickly sets uniform fonts, font sizes, and stroke widths in a selection.
  4. Autoexporter: Automatically exports SVG files in a directory and keeps them updated. Produces files immune to the rendering bugs of Office and Acrobat.
  5. Gallery Viewer: Provides a way to view and edit the SVG contents of files or folders.

It also includes the following utility extensions:

  1. Text Ghoster: Adds a semi-transparent background to text so that it can be overlaid with data.
  2. Combine by Color: An extension that fuses paths of the same color and style together into a single path. Speeds up operations on plots with thousands of similar elements, like markers.
  3. Favorite Markers: Lets you save certain markers as favorites.

All were written by David Burghoff at UT Austin. If you find it useful, tell your collegaues! We would also appreciate it if you could give us a star on Github and on Inkscape's website. You may also find it helpful to map the extensions to hotkeys (done in the Edit > Preferences > Interface > Keyboard menu).

Installation

You must have the latest release version of Inkscape (1.3), and the extensions should be installed using the instructions provided here. Download all of the files in the scientific_inkscape folder, then copy them into the directory listed at Edit > Preferences > System: User extensions. After a restart of Inkscape, the extensions will be available under Extensions > Scientific.

Scale Plots

When dealing with vector graphics generated by plotting environments like Matlab and Matplotlib, resizing plots after the plot has been generated can be difficult. Generally, one wants to resize the lines and data of a plot while leaving text, ticks, and stroke widths unaffected. This is best done in the original environment, but may be time-consuming.

For most plots, Scale Plots generates acceptable scalings with little effort. Lines and data are scaled while text and ticks are only repositioned. The extension attempts to maintain the distance between axes and labels/tick labels by assigning a plot area—a bounding box that is calculated from the largest horizontal and vertical lines. Anything outside is left unscaled. (If your plot's axes do not have lines, temporarily add a framed box to define a plot area.)

drawing

To use:
  1. Run the Flattener on your plot to remove groups generated by the PDF/EPS/SVG exporting process.
  2. Place any objects that you wish to remain unscaled in a group.
  3. Select the elements of your plot and run Scale Plots.

Scale Plots has three modes. In Scaling Mode, the plot is scaled by a constant factor. In Matching Mode, the plot area is made to match the size of the first object you select. This can be convenient when assembling subfigures, as it allows you to match the size of one plot to another plot or to a template rectangle. In Correction Mode, a plot that has already been (badly) manually scaled by normal dragging will be corrected. In any case, to scale something that is not a plot while leaving text and groups unaffected, check the "Selection has no well-defined plot area" option.

Exclusions

Sometimes, you may want to lock the aspect ratio of certain objects while scaling, or you may want to leave them unscaled altogether. For example, this is common for plots with markers—changing the aspect ratio usually makes them look bad. To exclude objects, (a) select them, (b) open the "Advanced" tab of Scale Plots, (c) select the appropriate option under Exclusions, and (d) click Apply. They are now invisibly marked for exclusion, and any subsequent scaling will ignore them.

The Flattener

The Flattener removes unwanted structure from figures imported into Inkscape. Several of the other extensions require the figure be pre-Flattened, so it is recommended that you map it to a keyboard shortcut for easy calling.

  1. Deep ungroup: Imported figures often have highly nested groupings. The Deep Ungroup removes these and unlinks any clones.
  2. Apply text fixes: Applies a series of fixes to text described below (particularly useful for text from PDFs).
  3. Remove white background rectangles: Removes background rectangles with white fill and no stroke.

Text fixes

  1. Split distant text and lines: It is often the case that PDF/EPS generation creates text strangely clumped into a single text object. For example, all of the x-axis ticks might be one object, all of the y-axis ticks might be another, and the title and labels may be another. Internally, each letter is positioned independently. This looks fine, but causes issues when trying to scale or do anything nontrivial.
  2. Merge nearby text: The opposite can also occur: text that should be one line is split into multiple objects. This option reverses that.
  3. Remove manual kerning: Text in PDFs is typically manually kerned—its letters are positioned individually, so it is difficult to edit. This option reverses that.
  4. drawing

  5. Merge superscripts and subscripts: Detect likely subscripts and superscripts, replacing them with native SVG versions.
  6. Final text justification: Lets you set the justification of all text without changing its position.
  7. Replace missing fonts: Specifies a backup font for when the desired font is not installed on your machine.

The Homogenizer

The Homogenizer is a utility that can set all fonts, font sizes, and stroke widths in a selection to the same value. It also removes any text or path distortions. This is most useful when assembling sub-figures, as it allows you to ensure that the whole figure has a uniform look.

drawing

Autoexporter

When writing, it is common to iterate between figure adjustment and writing. The Autoexporter makes this easy, automatically exporting files to their final form as they are saved. It runs in the background and watches a directory; whenever any SVGs are changed, it automatically converts them to the specified formats. Just select (a) the formats you would like to export, (b) what directory you would like it to watch, and (c) where you would like the Autoexporter to put the exports. This is especially convenient for documents typset in LaTeX: edits to your SVGs can automatically show up in your document.

The Advanced options can be used to configure how images and text are stored. It can also generate SVGs resistant to Microsoft Office rendering bugs that can be directly inserted into Powerpoint and Word, as well as PDFs that are immune to Adobe Acrobat's rendering bugs. It also provides additional options for rasterizing certain elements during the export. For additional information on best practices for exporting, see this page.

Text Ghoster

Placing text labels can sometimes be difficult for dense or small plots. The Text Ghoster adds a blurry semi-transparent background to text, allowing it to be legible without obscuring the underlying data.

drawing

Combine by Color

If you have used Inkscape for editing plots with thousands of elements, you have probably found that it behaves sluggishly. Often, this can be solved by combining paths of the same color together into a single path, but when your plot has multiple curves then you have to select the elements belonging to different curves separately. Combine by Color simplifies this, automatically fusing paths of the same style together. Not only does this tend to improve responsiveness, but typically it will also reduce the file size of the output.

Note: If you subsequently run Scale Plots on a path generated by Combine by Color, Scale Plots can treat the merged sub-paths independently—just specify the path ID as a Scale-free element.

Favorite Markers

Favorite Markers lets you designate certain marker sets as favorites, so you do not have to find them in the Fill & Stroke menu. You can also adjust their size.

Problems?

These extensions have been thoroughly tested on PDFs imported using Inkscape's internal importer. However, there is an ocean of potential issues that can arise when they are used with arbitrary SVGs. Bugs are fixed frequently, so first make sure you have the latest version. If the bug persists, please make a new Issue and include (a) the SVG that caused it, (b) a copy of any error message, and (c) the debug information (found under Help > About Inkscape... > Bug icon). In the meantime, try converting the SVG to a PDF and importing it—that should fix many issues.