I draw figures for my mathematical lecture notes using Inkscape (2019)
castel.dev
castel.dev
You can see some example in this thread: https://twitter.com/cryptodavidw/status/1436368473395925000?...
Clear, understandable, just enough detail and context.
Congratulations on creating this book and putting it out into the world.
You would be surprised at how many figures are drawn with PowerPoint on papers at top Machine Learning conferences.
It certainly doesn't have all the features that Inkscape supports (although it does have quite a lot of features), but the features it does have are implemented with a heavy emphasis on ease-of-use. It's sometimes easier to brainstorm within the program than on paper.
It's also plenty easy to add useful plugins in Lua: At one point I coded a plugin to check if a diagram of a graph contained a Hamiltonian cycle (by calling an external C++ program I wrote that used simple backtracking). I was able to very quickly experiment with which of my small graphs and modifications to said graphs ended up having Hamiltonian cycles, and was able to narrow down some useful features to think about.
As someone who likes the idea of and quality of images that TikZ produces but not how obtuse it is, I've done a fair amount of research into this space at times. However, I've never heard of Ipe. Even if I had, I'm not sure I'd use it. The material is basically devoid of examples. How does one learn how to use it?
Like everyone else I know, I learned Ipe through trial and error, with a handful of little tidbits of advice. 90% of the functionality you will use is quite intuitive and right there on the interface if you hover over things (and all the tools also have keyboard shortcuts of course). Some of the tips I've given/been given over the years that are less intuitive are: - You can save directly in PDF and re-edit a PDF saved with Ipe. This is very helpful for a LaTeX project, since PDF files are very easy to import (even ones with multiple pages). - When you import into a LaTeX project, the dimensions of the figure will be cropped to the dimensions of the actual content (this may be obvious to some, but it wasn't to me). - You can edit the alignment of text (and other various hidden options) by right clicking on objects in select mode. - The different snapping modes are probably the killer feature of Ipe. You can snap to the intersection of curves, to the vertices of polylines, and much more. Between the intersection snapping mode, circle tool, and line segment tool, you can technically perform any compass-ruler construction you want from Euclidean geometry (with has been useful a handful of times for me surprisingly). - Selection of objects is a bit funny (but often useful): If you select from top-left to bottom-right, then you will only select things your selection box fully encapsulates. If you select instead from bottom-right to top-left, you will select anything your selection box intersects. - Writing extensions and editing configs (incl changing page dimensions, colour palette, text size palette) is unfortunately quite painful, and I can only recommend digging through the examples. I believe there is documentation somewhere, but I found it less than helpful. - You can edit the underlying points of any curve you place after the fact by using the "edit" option in the right-click menu. - In order to use the regular k-gon "ipelet" (under ipelets->goodies IIRC), you need to have a circle present first (which you can of course delete afterwards). Ipelets are the mechanism by which you can program functionality with Lua, and this is probably the one I use the most (it comes built in with the program).
In my personal opinion, the only major weak point of Ipe is how annoying it is to rotate things (to the point where I often prefer to redraw things in rotated form, unless it's quite complex). To do this you need to very carefully select a pivot point type and a rotation type through the right-click menu. You also have to be very conscious of snapping as you perform the rotation.
A former advisor of mine had a quote that I'll happily steal here: "A cartoon is the highest form of scientific communication". Distilling a concept down to a very simple illustration is an underappreciated artform.
Inkscape is really great for scientific cartoons. I've used illustrator for many years, as well, and it's more powerful, but lacks something for quick bare-bones sketches compared to inkscape. There are things that illustrator is far better suited for, but these sort of conceptual sketches are kind of a sweet spot for inkscape.
I’ve been using Inkscape to complete assignments for my classes, and it’s been an uphill (yet rewarding!) battle. It seems that my professors and peers each have a different program of choice, so I decided to forge my own way with OSS.
My contact info can be found in my profile if you prefer.
However, most work will focus on the end result -- i.e. a paper with static exported figures.
At any rate, there's nothing wrong with the proprietary tools either -- they're great. It's just a matter of what you can get access to and what's best for the use case at hand.
If it helps to have some examples, pretty much every figure in my dissertation was made with a combination of matplotlib, QGIS, and Inkscape: http://digital.library.wisc.edu/1711.dl/YHJWFVKMNVZGN8S E.g. see fig 2.12 for a cartoon made purely in Inkscape and things like fig 2.4 or 2.6 are a combination of matplotlib and Inkscape.
Besides, framing Inkscape as a "free — but arguably less featureful — alternative to Adobe Illustrator. You can use it for designing flyers and logos ~~like in the picture below~~, but it’s also a powerful tool for drawing mathematical figures" seems poor and rather unfair to it. Its compliance to the SVG standard makes it the best tool to produce scalable graphics for the web and it's extensively used to develop icon systems and theming in multiple FOSS software.
(Note: I could never get my head around doing problem sets directly in LaTeX, although I did mostly OK using it for proofs in my analysis classes.)
More info: https://wiki.inkscape.org/wiki/index.php?title=Release_notes...
The guy basically built a whole macro layer to make inkscape less clunky
Specific to this article, the alignment tools have recently gotten a pass of updates - something which everyone doing technical drawings can make use of. Layers and objects have been merged into one panel and the update performance of the panel uses a more scalable algorithm now, making it easier to navigate the document in outline form and reducing some of the burdens of object manipulation that the author calls out to external code for.
Styling still needs improvement but IIRC there is work in progress on swatches that might address that.
It's now possible to use a command bar to type in commands (as is the trend with every complex app) which addresses some of the use of macros. Shortcut binding is in need a pass to improve assignability; that would eliminate a second source of pain.
For most other courses, we had a process involving at least two people, wherein one person would take notes in LaTeX with placeholders where the images need to go, and one person would take notes by hand, including images. Then we would produce the drawings either via TikZ or via Inkscape afterwards. This could be streamlined into one person doing LaTeX notes with placeholders, who also drew the images on paper to later insert them into the digital version.
Also missing is Path->Calligraphic stroke conversion, arguably the most important tool for cartoon drawing.
Inkscape does not care about pixel grid, being an SVG vector editor, but it still could use some modern interface tricks, like various stroke/outline options, nudge settings and rulers for measuring distances between objects.
I love the idea of tools like these to be able to easily and programmatically draw diagrams, but eventually it gets thrown into a powerpoint, where then it is locked behind some tool and arcane DSL that only I know. So when my boss who doesn't care about the tools inevitable wants to move the arrow up an inch or make the box green instead of blue, I have to go back to do it. Meaning I give up on using these tools so I don't end up a fulltime diagram engineer.
Anyone know of a tool that is close to inkscape/graphviz, but has an "export back to powerpoint" feature?
And please ... Don't do software modelling in powerpoints. It is quite painful to watch that happening. It lowers interest in contributing of people, who would have used a proper tool for such a job and would have been 3x faster that way.
It is very minimalistic and easy to use. The images produced are simple to embed in latex documents, and they fit the style/font of the rest of the document. I think this tool should be a lot more popular than it is.
[0] https://en.wikipedia.org/wiki/Ipe_(software) -- using the wikipedia link since the official site doesn't have many screenshots
On the other hand, I still make an embarrassing amount of technical figures using powerpoint built in shapes.
You can also do the opposite, pin the arrow to the label so that if the label moves the arrow follows: double click the arrow to see the path points, select an end point and move it on top of the label until you see the bounding box of the label.
It is always better to choose a tool where you're least likely to run into a dead-end street.
I'd pay $50 to have this workflow fully integrated and working with my editor (emacs; I'd also take VSCode or something else that's not vim). apt-get install a few things, and it works.
That's conveying value-add, not suggesting someone should do it for that amount (which is to say I'd gladly pay, but I can't imagine it's worth doing for that amount, or that there's a reasonably way to find and collect $$$ from more people like me).
My fork with personalizations[2]
Org-mode integration for Krita[3] and Xournal[4]
[1] https://github.com/foxfriday/ink [2] https://github.com/karthink/ink [3] https://github.com/lepisma/org-krita [4] https://gitlab.com/vherrmann/org-xournalpp
TikZ in particular but latex in general has awful compile times in part because of it's ancient design.
Here are three options for you: 1. Use latex as is, if this is your bread and butter the initial setup and learning curve is a few weeks. 2. Use overleaf. And please don’t start on “I’ll never submit my data to a cloud” no billionaire is going to not take your data. 3. Use word and let your assistant digitize your diagrams.
Point is the tool to make figures is not what’s slowing down good science. It’s the heads that do it that are a problem
This isn't about figures but rather making it more productive to use in general, and making its use more semantically analysable, and more deterministic: If you include data in a paper is it actually up to date? Does that expression actually solve the equation etc. These are all things you could check automatically.
There are obviously bigger problems in science but what are you gonna do about them? It's nearly all political either in the department's or in government, whereas a new LaTeX is a relatively direct thing that can be done with a small team and a lot of money.
It's one of the most reliable and useful pieces of software, and it seems to be doing just fine. Most efforts at modernization focus on extension, either with packages, other languages, GUIs, etc.
> latex in general has awful compile times in part because of it's ancient design.
I would expect the "ancient" to mean it's faster, as it was designed for a more restricted resource environment, and Knuth tailors optimal algorithms for each task. For example, the single-pass is ergonomically a pain, because you often have to run it multiple times to get the final output but it also makes it faster.
Do you have ideas about alternative architectures that would improve performance?
I love LaTeX and use it everyday, and in particular I have no gripes with compile time, but honestly it's only doing just fine (in terms of usage) because there's no alternative, not due to its own merits. Because the UX is ridiculously outdated.
- Needing to compile 2 or 3 times to get the document right (and not having an option of doing it automatically or been warned about it).
- Need to include an unusual Unicode character? Good luck navigating the different packages for character encodings, font encodings, etc. A couple of days ago we needed to include Қ (Tajik/Uzbek/Kazakh character) and after a few hours of googling and desperately trying several solutions that in theory should work, we ended up including a vector image of the character created in Inkscape (funnily enough the workaround is less bad than it sounds, because the Inkscape image actually has the character as a character, and latex is smart enough to make it copy-pastable as any other text character). Honestly in 2022 any software should Just Work(tm) with Unicode, period. It's trivial to write Қ in a modern browser and have it appear in HN, for example.
- Interactions between packages making a mess, so when you want to pitch your paper to a new journal and adopt their template, multiple errors start to come up, and after trying to decipher some cryptic messages, you find the hard way that some table package you're using is incompatible with the journal template.
- Related to the previous... error messages are sometimes extremely cryptic. Especially when something you do causes an error to be caught inside a package you're using, and you get pointed to a line that doesn't even relate to your code at hand.
- There is nothing to ease the learning curve, so entire scientific fields won't touch it. Why can't we have something that is as simple as Markdown if you just want to create a simple document with headers and lists, and where complexity is added as you need it?
I use LaTeX because all alternatives I know are worse but to me, it's a clear example of a local minimum where we are stuck. It would take a lot of effort to create something better so no one does it, and as a result we have to do with an UX from the 80s. I just wish people wouldn't act as if it were the bee's knees every time its obvious aging is mentioned.
I find Inkscape and GIMP far too heavy and tedious for my needs: I work remote and just want to doodle on a screenshot.
And the "pro-tip", if I may: when you take a screenshot, it gets copied in your clipboard. Try pasting it somewhere. It works in an astouding number of places.
mtPaint -- For Windows and Linux, and very stable. (https://en.wikipedia.org/wiki/MtPaint)