As a university student there is a need for specialised tools that allow you to produce top quality lab reports, essays and literature reviews. You need to be able to manage long manuscripts, references, formatting and rendering an output of a document. There are a selection of tools that can be curated to achieve all of the following, but it’s difficult to build a system where all the separate parts talk to each other seamlessly to remove the friction from building an output. In this article I’m going to talk about my system for academic writing within Obsidian, and explain the steps you can take to implement some of the tools yourself.
Reference Curation and Management
In academic writing, every fact has to be verified and referenced from other research, leading to a need for a way to manage all of the content that you are reading and gaining insight from. There exists reference management software that can manage metadata and PDFs and export this information to a file that can be referenced by Obsidian.
In my opinion the best option, and the one I use for the job, is Zotero. It’s free and open source, and does the job at hand very well. It has a browser extension that imports metadata and full-text PDF with the click of a button so long as you are on the journal page for the resource that you are referencing.
Much like in Obsidian, you can add plugins to Zotero which extend its functionality to better integrate with your writing environment (Obsidian in this case). The Zotero plugins that I use are Zotfile and Better BibTeX. Zotfile allows you to manage citekeys and files of different entries into your database. It allows for linking to files stored outside of the Zotero environment, opening up syncing capabilities with other services. Better BibTeX creates a .bib output file of your library content, which it constantly updates when the library does.
This .bib file can be referenced by Obsidian by using the plugin Citations. This plugin allows you to generate literature note entries in Obsidian for the files in your Zotero library, generating a file that contains all of your annotations or all of your notes on that resource. Citations also makes it a breeze to insert markdown citations into your script when in the process of writing — you can bind the modal open prompt to a hotkey and easily search your entire Zotero library with a single command, inserting the correct reference in the correct format into your text when writing.
Writing the Manuscripts
There are several plugins in Obsidian that improve the experience when you are writing your academic content. The purposes they serve range from managing long scripts to helping with special characters to formatting your writing. Although I don’t actively use it, I have experimented with the plugin Longform, which is designed for managing sections of a longer script, and can see the use of being able to edit different sections of a piece of writing in individual files and compiling a complete manuscript once the draft is complete.
One plugin I do use is Latex Suite. This provides a suite of keyboard snippets that help with writing equations, formulae and symbols using LaTeX syntax. This is especially useful when your writing is surrounding a science or maths subject, because this is often accompanied by slightly more complex notation. The plugin Linter performs formatting actions on your notes. This is useful because it means that the way that you are laying out your notes in kept consistent, so that the document that is rendered in the next step looks presentable and tidy.
Generating the Document
This is the most complex step, but once it has been set up for you to use once, you are going to realise the power of having built the system that I’ve described in this article, because whilst your peers are struggling with inserting citations, formatting graphs and figures and converting to required formats, you are going to have one command that opens a menu of options for the output to take. That’s it. The plugins will take care of the conversion, insertion of references, formatting and everything else for you.
To do this, you have to install a few pieces of software found outside of Obsidian. The first is Pandoc, which is a tool that converts almost any file format into almost every other file format. The other is any $LaTeX$ distribution, because Pandoc utilises some $LaTeX$ packages in order to render files to .pdf output. Once these two pieces of software are installed you can set up Obsidian to render the script.
The Pandoc plugin in Obsidian gives you an interface with Pandoc, which is normally a CLI tool. You can select different formats to transform the current Obsidian .md file into, including .docx, .html and .pdf, which are the most useful. You can specify Pandoc arguments to customise this output to be what you require, which we will do. In the Pandoc Plugin settings, add — citeproc to the ‘Extra Pandoc arguments’ setting. This will be what takes the markdown citations and converts them to in-text citations in the conversion process. It also inserts a full reference list on the end of your document automatically, all completely formatted. To get this to work, you have to specify the location of the .bib file on your system by adding the path, in quotations, to a ‘bibliography’ YAML property.
I use this above system to convert my manuscripts, which I write in Obsidian, into nicely-formatted PDF documents that I can submit for my assignments.
Extras
There are other things that you can do to extend the functionality of this system, that aren’t essential so I didn’t mention them in the main workflow guide. One thing is specifying the citation style language (CSL) to change the way that references are formatted. This is important if you have a specific CSL that is mandatory for the writing that is being submitted. You can find the needed file, with .csl extension online and download it, using it in the document by specifying the file path under a ‘csl’ property in the YAML, same as the bibliography.
I have another small difference to my workflow for lab reports. Because these require me to include my own figures for data that I have collected in my research, I use the plugin ‘qmd as md’ in order to edit Quarto documents in the same way as markdown documents in Obsidian. Combining this with the Shell Commands plugin, I can include R code in my scripts and have them rendered into perfect plots in a PDF output by using a hotkey to run a shell command directly from Obsidian. The large majority of people will not need this kind of functionality, so I decided to include it as an extra that might inspire the small number of people that might want to build a system like this.
Conclusion
Thanks for reading this article. I hope that it’s convinced you of the advantage of building an integrated system for managing the production of academic writing. This is why I like Obsidian as a tool — it’s extremely flexible and can be manipulated for any specific use case. If you learned something give the article a clap, and consider following for more similar content. Thanks again!
1 comment