DANTE Spring meeting 2015

From April 16th to April 19th, 2015, the Spring meeting of the DANTE e.V. took place at the University of Applied Sciences Stralsund, Germany. DANTE is the user group for German speaking TeX friends.

The director of the economic-research institute opened the meeting with a few words, Herbert Voß then spoke for DANTE. We were sitting in a big lecture room, with WiFi and power sockets provided. There was another room for coffee breaks, where we could find delicious cake and nice talks at bar tables.

Dominik Wagenführ made the first talk. He spoke about producing e-books in EPUB format from existing LaTeX documents. He showed several tools for conversion, such as latex2rtf and tex4ht. His conclusion was, that existing conversion ways are not perfect, but it’s doable with some additional manual labour.

Walter Entenmann followed with a presentation about TeX and Perl working together. Perl is a very capable scripting language with particular strenght in string processing. He demonstrated a workflow, where Perl works on a data set and generated a TeX file, which is then processed by pdfLaTeX for producing a PDF file.

Martin Schröder spoke about TeX in the third millenium. His presentation is nearly a tradition, as he made similar talks during some meetings, and they develop as TeX and friends develop.

Dominik Wagenführ completed the first day’s session. He introduced his own template for job applications.

The evening meeting was in the Spanish restaurant “Bodega” at the new market place. I came a bit late an it was harder to find a place than in the lecture room. But I was lucky and arrived at a nice table with very interesting talks. I bet the other tables would tell the same.

Short before 9 pm we challenged the restaurand by paying all at the same time, since we started at 9 a tour with a “nightwatchman” through the old town.

At the second day, we started at 9:15 with the formal meeting. It was opened by Herbert Voss. It went first to the association internals such revenue and expenses, to elections, and to a change in the rules of the user group. Then it presented DANTE’s participation in events such as open source meetings and in project funding. When we talked about projects, I briefly mentioned the TeX projects I currently maintain, such as the TeX Internet forums latex-community.org, texwelt.de and golatex.de, and we talked about a possible support by DANTE for the server operation.

At lunchtime, a group photo was taken.

Martin Kraetke of the company le-tex started the afternoon program. He presented the program docx2tex, a software to convert Word documents to LaTeX. It is a command line tool that generates XML as an intermediate format and at the end also outputs a LaTeX document. Based on a sample document, he demonstrated the function and came to a pretty good result.

Joachim Schrod informed us about the state of CTAN and explained the services it provides. He made the presentation at this year’s TUG meeting too, and I already talked about it in the previous TUGboat issue.

After a coffee break, Till Tantau presented his graphics package TikZ. This is the front-end for the graphics language PGF, which he developed during more than a decade. PGF stands for Portable Graphics Format. In fact, it works with all TeX-Engines (pdfTeX, XeTeX, LuaTeX, ConTeXt, TeX in DVI mode), which allows flexible usage. This is one reson for its success. The also excellent PSTricks package, on the other hand, had a harder time when pdfTeX dominated and the way via PostScript was for some users still a hurdle. The other advantage, in my opinion, is the comfort of the description language TikZ at the front-end. For the development of TikZ, Till Tantau received this year’s honorary prize of DANTE e.V., together with the co-developers Vedran Miletić, Mark Wibrow and Joseph Wright.

But back to Tills lecture. At first, he showed that even the huge TikZ package with today 4080 files and a 1165 pages manual once started small: it came with 22 files and 27 pages documentation. This was the version 0.62. He programmed it to use it for 10 images in his doctoral thesis.

Then he showed three very special points of his package. At first, he demonstrated his passion for detail with arrowheads. With TikZ, they are adjustable in many ways, they even can automatically bend when an edge is bent. Then, he demonstrated the automatic generation of graphs: one defines some nodes and certain edges relationships, plus certain desired characteristics, then pgf/TikZ constructs a tree or a graph. It does this matching requirements such as avoiding overlaps, having fewest intersections, maximum symmetry, slightest variations of the edge lengths to a preset length, and minimal variance of the angles. The result should be a pleasing appearance to the eye. And that’s usually what we want: graphics for best visual understanding by humans.

The resulting graph can be determined even more: it can be format specifications, power based by edges which work like springs and react to pressure and tug, nodes having charges that can repel, havng “important” nodes with gravity, or having magnetism with alignment tendency at certain lines. At the end, we would release those nodes and edges, wait and see what we may get as an equilibrium state according to our definitions. Sounds complicated, but it is a smart thing: we start with certain node relationships plus some meaningful internal properties, and TikZ delivers to us a useful graph which matches our logical specification.

Here, we combine three languages: LaTeX for the document, TikZ for the graphics, and a DOT-like language for describing the graphics with an concise and strong syntax. In addition, there’s Lua for programming the the underlying algorithms, TeX doesn’t suit here. That’s worth knowing, because we need to compile such graphs with Lua(La)TeX.

In the following discussion, Dominik wanted to know why the graph algorithms have been implemented in Lua, instead of using existing GraphViz libraries. They could be called externally. Till explained it. The graph generation happens in the middle of TeX run, with sizes and node contents developing at runtime. It is quite difficult to generate C++ class objects for such external libraries, to pass them and then to process the results. Therefore, a direct implementation is a natural decision, and it avoids dependencies. LuaTeX is enough and already comes with TeX. We don’t have to get C++ libraries running on different systems.

As I already talked so much about this presentation (you can see I’m a TikZ enthusiast), then I will mention also the third point: Till used a PDF shading function to generate a scalable Mandelbrot set image. It’s unusual for PDF as a fairly rigid page description language, that can calculate so iteratively or recursively like PostScript. It’s outstanding because by using a shading function he exploited a leak in PDF.

I was interested in what news we can expect in the near future of TikZ. Of course nobody can predict anything, as everything depends on time and interests, but Till Tantau showed clear interest in the use of SVG format as possibly an additional output format. This format allows, for example, animations, and it is very portable. Each web browser can handle SVG.

The last presentation for the day was held by Uwe Ziegenhagen. It was about the org mode of emacs. This turns Emacs into a tool for outlining texts, for collecting notes, for creating to-do lists and project planning. It can output in various formats: LaTeX, ODT, HTML or DocBook, for example. Uwe explained the installation and demonstrated the usage with a sample document. Finally, he explained how you can configure the export, for example, which LaTeX packages should be used and which macros would be assigned.

After so much time in the lecture room, many of us did not take the bus but walk back from the university into the old town. That was a nice walk along the waterfront, taking almost an hour, with very nice sunny but cold weather. Again, it was a pleasant opportunity to chat.

For the evening, there were tables booked in the “Golden Lion” restaurant in the Old Market. That was short walk through the old town area, near our hotel. A soup served at the table, then we could select from a very rich and very good buffet. We had good discussions, so the evening passed by quickly. After midnight, our remaining small group walked back to the hotel.

At the third day, Günther Partosch made two talks. One was about making PDF documents ready for being archived, and the additional work required. Such documents should survive changes of operating systems and technologies and should be reproducable in the same way on different systems. So, a basic requirement is embedding all fonts, images and color information in the file itself. He used the hyperxmp package for embedding meta data, and hyperref with pdf a option to generate a mostly PDF/A compliant document. glyphtounicode.tex was used to map glyphs to Unicode characters, as required by PDF/A. Compression needs to be switched off. In the later talk, he demonstrated how to generate a glossary, a list pf acronyms and a list of symbols, all using the glossaries package. He did it using real code examples.

Doris Behrend showed us examples of schoolwork and exams of the last 50 years. We could see, how aesthetics and aspirations developed over time.

Then there was barbecue at the campus. Another touristic highlight followed: a visit of the Ozeaneum Stralsund. This is a large sea exhibition in giant water tanks.

With the interesting talks, the many chats in the breaks, and the alongside program, the meeting was a very nice experience. I saw a very well organized DANTE meeting, it was a great pleasure to attend. Many thanks to DANTE and the organizers, especially to Christina Möller, Silke Krumrey, and the university of Stralsund.