For our October “Staff Pick” Project of the Month, we selected TeXstudio, an integrated writing environment for creating LaTeX documents. Benito van der Zander and Tim Hoffmann, TeXstudio’s Lead Developers, shared their thoughts about the project’s history, purpose, and direction.
SourceForge (SF): Tell me about the TeXstudio project please.
Benito van der Zander (van der Zander): TeXstudio is a (La-) TeX integrated writing environment (IWE). While IDEs are there to develop computer programs, TeXstudio is there for writing (La-)TeX. TeX is a programming language for natural language text, which takes a plain text with macro annotations and compiles it to PS or PDF. The advantage is that you get a document with consistent style and nice formulas, where some parts of it can be generated algorithmically and stored in a normal version control system. The disadvantage is that it is less intuitive to write. This is where TeXstudio comes into play and makes the writing intuitive again. For example it auto generates most TeX commands, shows the source with highlighting, marks invalid parts, and previews the resulting document.
SF: What made you start this?
van der Zander: I was writing a novel about how to migrate from Windows to Linux, while searching for a cross-platform LaTeX editor that would have features to support novel writing, (i.e. inline spelling, grammar, and style checking). The most complete cross-platform LaTeX editor seemed to be Texmaker. However, it had many little bugs and no inline spell checker so I wrote a lot of patches for it. But they were not accepted so I had to fork it, which resulted in TeXstudio.
Tim Hoffmann (Hoffmann): For me, it started when I was looking for a LaTeX editor to write my PhD thesis. None of the available programs fulfilled my needs, but Texmaker and Benito’s fork came closest. So I started writing some patches and small extensions. I found that TeXstudio was more open to contributions. Over time, I got more and more involved.
SF: Has the original vision been achieved?
van der Zander: The focus has moved from novel writing to the writing of math-heavy documents. Also the novel writing support was not as helpful as expected. The spell checker based on Hunspell works fine, but the grammar checker based on LanguageTool returns too many false negatives and positives. The style checker should have implemented some writing guidelines by Andreas Eschbach, which suggest you strike out every adjective to see if these words are necessary. The strikeout worked but not the adjective search. To really improve it we would need to research natural language theory but that is outside of the scope of this project, so we are waiting to improve the underlying libraries. I had hoped to get it established as a general-purpose text editor but as TeXstudio grows it becomes more LaTeX-centric. And we are now three core developers with different goals and visions.
Hoffmann: To me, the vision of TeXstudio is an editor that lets me focus on the text I want to write, not being distracted by technical aspects. We’ve come a great deal towards that goal, even though there is still room for improvement.
SF: Who can benefit the most from your project?
van der Zander: Everyone who writes something using LaTeX, be it research papers, PhD theses, or novels.
Hoffmann: That’s true. TeXstudio significantly reduces the entry barrier for LaTeX beginners. Due to its high configurability and scripting support, more advanced users can adapt TeXstudio to their needs and work most efficiently.
SF: What core need does TeXstudio fulfill?
van der Zander: Writing a LaTeX document in an editor that understands LaTeX and does not display it as plaintext.
Hoffmann: LaTeX was invented 30 years ago and in some areas is still better than modern WYSIWYG word processors. However, due to the limited computation power at that time, it was designed to the needs of the computer and not to the needs of the user. As a user interface, TeXstudio bridges this gap by working around many of the shortcomings and limitations of LaTeX. This makes LaTeX significantly easier and more fun to use. Hence our slogan: “LaTeX made comfortable”.
SF: What’s the best way to get the most out of using TeXstudio?
van der Zander: Just start writing your text and while you are at it, here are some useful features to help you:
- Unconnected block editing—You can select multiple parts of a file and edit them simultaneously, no matter where they are. This is especially powerful when searching for a regular expression. If you want to change all matches, you do not need to think about a replacement expression, just let it select all matches and edit them in the editor.
- Magic comments—TeXstudio does not use project files like most IDEs; rather, it stores all metadata in tex files itself. So, you can put % !TeX program = xelatex at the beginning of a file, if you want it to be always compiled with xelatex.
- Inline preview—It is easy to see that there is a PDF viewer showing the entire output document, but you can also view only parts of an document embedded in the text or as tooltips.
- Implicit cut buffer—You can surround text with parentheses or a command, do not write something on both sides of the text. Just select the text and write the command/opening parenthesis, then TeXstudio’s auto completion will automatically restore the overridden text and surround it with the opening and closing parentheses.
SF: What has your project team done to help build and nurture your community?
van der Zander: We mostly work with the classics like bug/feature tracker, mailing lists, and personal mail. Once we renamed the project and let the community vote on the new name.
Hoffmann: Generally, we try to be responsive and helpful, be it bug reports, feature requests or any other questions. Also, we are lowering the entry barrier for contributions, for example, we just included an online translation service. Now, you don’t need any specialized tools or knowledge to provide a translation.
SF: Have you all found that more frequent releases helps build up your community of users?
van der Zander: They seem to help a lot with us becoming SF’s project of the week and month.
Hoffmann: Distributing new features and bug fixes regularly certainly helps to have better software. I expect that it has a positive effect on the community, but it’s hard to tell.
SF: What was the first big thing that happened for your project?
van der Zander: We do not really have big things, just many little things working together.
SF: What is the next big thing for TeXstudio?
van der Zander: I always wanted to add a macro AI, where you could edit some text, and than the AI would replay those actions on other parts of the text. It would be like a VI-mode but you would not have to remember any commands, and you would not need to tell it. Also, a lot of people have asked for touch screen or git support.
Hoffmann: In fact, there are lots of big and small ideas around, for example,
an auto-updating life view of your resulting document.
SF: How long do you think that will take?
van der Zander: Years…
SF: Do you have the resources you need to make that happen?
van der Zander: At the moment, I do not have time to do any of that. Also the macro AI would need many samples of typical editing tasks.
Hoffmann: Since TeXstudio has grown, we invest a lot of time in maintenance and community work. Time for big things is rare. We make the best from our limit resources by using small steps and continuity.
SF: If you had it to do over again, what would you do differently for TeXstudio
van der Zander: One of the first things was to switch from the standard QTextEdit to a library called QCodeEdit. QTextEdit renders rich text like HTML, while QCodeEdit was made for editing source code, which is much more like LaTeX. It would have been wise to use another editor component. Also we would write more test cases for features we added. It always happens that some of the new features break stuff.
Hoffmann: Stability, clean code and testing should have had a higher priority.
van der Zander: I used QCodeEdit 2, which was abandoned by the author in favor of QCodeEdit 3, which got a much better internal design. But then he never truly finished QCodeEdit 3, so we were stuck with maintaining the old library ourselves. And it is still had a lot of minor editing/rendering bugs that we had to fix.
Hoffmann: We did not foresee the dimensions the code and the user base would reach. At the beginning, a feature that just worked for the usual need was okay. Now, it really needs to be correct because one of the many users will step on even the remotest bug.
SF: Any reason you can’t do that now?
van der Zander: Switching QCodeEdit to another editor component now, would invalidate all the work we have done on it so far.
Hoffmann: We are gradually improving our code, but resources are very limited. Therefore, we’ve just revised our release scheme and update notifications to make using of beta and release candidate versions easier. This will be available from version 2.10.4 on. I encourage willing users to subscribe at least for release candidates. We hope to track down bugs more early with the help of the community.
SF: Is there anything else we should know?
van der Zander: There will be a new release, 2.10.4, very soon. So be on the lookout!
Hoffmann: Help in any way is very welcome. You don’t necessarily have to be a programmer to contribute to TeXstudio: Documentation, translation, UI/icon design, tutorials and screencasts are some of the non-programming areas that would certainly benefit from more attention. If you are interested, just contact one of the developers. We’ll find a task that’s fun for you and that puts your talents to good use.