In this blog post I propose a workflow to use the collaborative features of Google Docs
to review a paper being written in Overleaf (unless you have Overleaf Pro which has
change tracking embedded).
The key point is that we paste the Latex source to a Google Document (see an example here) so we can
suggest changes and then push it back to Overleaf programmatically using
Create first the paper in Overleaf
Next we can configure
git access, see more details on Overleaf:
Linking Github requires too much permissions, so better just activate plain Git access, this will provide a link to clone it:
git clone https://git.overleaf.com/xxxxxxxxxxxxxxxxxxxxxxxx overleaf-paper
Here we can make local changes and push them back to Overleaf (you can configure the git credential helper to store the username and password).
Now the main authors can develop the paper using a mix of local editing and git push or online editing in Overleaf, optionally they could also push to Github.
Review round on Google Docs
When the paper is ready for a round of review with co-authors or other reviewers, the main authors can circulate the PDF and copy-paste the Latex source into a Google Doc. It can also be useful to paste the images, but not strictly necessary, the reviewers can look into the PDF.
Now the reviewers can read the PDF source and make suggested edits and comments on Google Doc, “Review changes” is also available on Overleaf, but just for paid accounts.
Synchronization from Google Docs to Overleaf
As the review progresses, some changes are merged using the Google Docs review functionality,
they can be programmatically be merged into Overleaf going through
download_google_doc.sh script (Linux, but could work on Mac as well):
KEY=1rOksxkZUOdNW1alA6lqXg1xre4Q7bV6oyCVoIGGh0Z8 wget -O - https://docs.google.com/document/d/$KEY/export?format=txt | dos2unix | cat -s > main.tex
it downloads a text version of the Google Doc document, fixes line endings and spurious repeated blank lines
main.tex. KEY is the key to my document for testing purposes, replace it with
yours, it is the long hash in the Google Document URL i.e.
the document needs to be public.
This is executed with
bash download_google_doc.sh and then reviewed and merged with the standard
Finally pushed back to Overleaf with:
This is useful for example while the review progresses, we can create updated PDF versions.
Synchronization from Overleaf/git to Google Docs
This is not doable, because writing into Google Docs erases the comments. Therefore it would be better to organize review into rounds, 1 Google doc per round. So we never need to update Google Doc with changes made on Overleaf.
However, while the review is progressing in Google Doc, the main authors could keep working in Overleaf/git
and then merge the changes from Google Doc as they come in relying on
The issue is that it is not easy to propagate their changes to the current round of review on Google Doc.