Writing Academic Papers

This page discusses our preferences when it comes to writing papers. It is more focused on paper structuring and collaboration, as opposed to lower-level writing tips. It is not meant to be a golden standard in any way, and I do not claim that my preferences are the right way to do anything. This is primarily meant for my students – specifically, to avoid having to repeat myself every time I start working with a new student (inspired by Claire Le Goues’ post a while back). However, if you find this information useful, or want to use a similar setup, please go ahead! I will update this as I think of more points (or maybe find strong reasons to do things in another way down the road).

Setup & Directory Structure

main.tex
ACM-Reference-Format.bst
acmart.cls
sections/
	introduction.tex
	related-work.tex
	...
meta/
	packages.tex
	macros.tex
	any-other-definition-files.tex
images/
	linux-evolution.pdf
	any-other-figure-in-the-paper.pdf
references/
	references.bib
	any-other-ref-files-as-needed.bib

The idea is to include the other files in the main.tex file as needed. This is would be an example of what main.tex looks like:

\documentclass[sigconf,review,anonymous]{acmart}

\input{meta/packages}
\input{meta/macros}

%Conference
\acmConference[ICSE'18]{International Conference on Software Engineering}{May 2018}{Gothenburg, Sweden} 
\acmYear{2018}
\copyrightyear{2018}

\acmPrice{15.00}


\begin{document}
  
\title{Our Awesome Paper}

% all the author information

\input{sections/abstract}


\maketitle

\input{sections/introduction}
\input{sections/motivation}
...
\input{sections/related-work.tex}
\input{sections/conclusion}

\newpage

\balance

\bibliographystyle{ACM-Reference-Format}
\bibliography{references/references}

\end{document}

Collaboration

\newcommand{\sn}[1]{{\color{blue} \textbf{Sarah:}~#1}}
\newcommand{\<your initials>}[1]{{\color{green}\textbf{<Your Name>:}~#1}}
\newcommand{\todo}[1]{{\textcolor{red}{\textbf{TODO:}~#1}}
\newcommand{\checkNum}[1]{{\textcolor{orange}{\textit{#1}}}

Writing Style

Paper Organization

Updating Results

\pgfkeyssetvalue{total_responded}{43}
\pgfkeyssetvalue{ignored}{6}
\pgfkeyssetvalue{total_analyzed}{37}
\pgfkeyssetvalue{percentage_students}{11}
\pgfkeyssetvalue{percentage_professional}{54}
\pgfkeyssetvalue{percentage_six_years}{73}
\pgfkeyssetvalue{percentage_atleast_knowledgeable}{86}
\pgfkeyssetvalue{percentage_rarely_need_crypto}{57}
\pgfkeyssetvalue{percentage_secure_comm_rank1}{49}
\pgfkeyssetvalue{percentage_user_auth_rank1}{30}
\pgfkeyssetvalue{user_auth_avg_rank}{3.95}
...

This data file was included in main.tex as follows:

\input{results/survey_data.tex}

To use any of these values in the text of a particular section in the paper, you would do:

We base our findings below on the remaining \checkNum{\pgfkeysvalueof{total_analyzed}} participants. 

You do need to have \usepackage{pgfkeys} to be able to use this (Credits: I learned about this package from the Undertaker group at Erlangen). Obviously, there may be other ways to do something similar. The point is that you could re-run an external script that would regenerate all numbers and you don’t have to go and manually update each number in your tex files.