SVGs are inline elements

So, I just found out that SVG elements are displayed inline by default. This has the “strange” effect that you get an overflow (which is not apparent, e.g., from the output of the Chrome debugging view) when you try to fill a parent element with a SVG. The following code shows how a scroll bar shows up for “no reason”:

To solve this issue all you have to do is to change the display  attribute of the SVG, e.g., to  block :

Try it yourself here:

The reason for this is nicely explained in a StackOverflow post like this:

inline or inline-block elements are called “inline” because they are intended to be laid out amongst lines of text. So, wherever they appear, space is reserved for the “descent”, which is the area underneath a line of text where the dangly parts of lowercase g’s, j’s, and y’s go.


Directly accessing PDFs from BibSonomy in TeXlipse

I am using BibSonomy for my for managing my references and TeXlipse as my LaTeX editor. While the latter is arguably a little outdated, it still works well and provides some features which other editors seem to lack (e.g., partial compilation not supported by TeXstudio or TeXmaker). Anyways, what I wanted was a way to directly access my PDFs from TeXlipse. It turned out there is an easy (if hacky) way of achieving this (of course there are other, cleaner ways such as writing an extension or plug into the existing BibSonomy extension). So here is what is possible now:

Highlight the Bib-Key (such as becker2016sparktrails) and hit F9 (or any custom shortcut). Voilà the PDF opens up.

As I mentioned the process to achieve this is a little hacky, and has some caveats:

  1. It is based on the External Tools functionality built into Eclipse, i.e., we take advantage of the shortcut  (F9) for the last used external tool meaning that if we use another external tool, we need to manually run our “Open PDF” external tool once, before the (F9) shortcut works again.
  2. We need to manually trigger the process of downloading the PDFs from BibSonomy (which need to be stored there in the first place, obviously).

Nevertheless, I found the process quite useful, so here is how to do it:


We will store our PDFs in a folder within our LaTeX project. I use build/papers . Then we use an external tool which uses the currently selected Bib-Key to open the appropriate PDF.

Downloading PDFs

For downloading the PDFs I use a Python 3 script which I have placed into a folder in my LaTeX project. I call this folder build . Paper are downloaded to build/papers . The python script is called as follows:

Here is the Python 3 source code. Note that this code currently only supports downloading up to 999 publications due to limitations in the BibSonomy API. This could be fixed by implementing a recursive downloading procedure.


Open PDFs

The configuration of the external tool ( Run -> External Tools -> External Tools Configuration ) is pretty easy, here my configuration using Okular as PDF viewer:

To configure a shortcut for this external tool, we use the Key Run Last Launched External Tool , which I set to F9. Here is a screenshot of my config:

Future Work

Here is some future work which may prove interesting, but I will probably never come around to do 😉

  • Shortcuts for specific external tools (probably needs an extension) in order to replace the usage of the “last used external tool” key
  • An extension for automatically downloading missing PDFs since we currently need to start this process by hand
  • Extending the already existing BibSonomy plug-in for TeXlipse to create an integrated experience
  • Adding something like this to TeXstudio or TeXmaker via JavaScript extension points, in order to support more recent TeX-editors