Technical Hints for Writing Papers¶
This chapter is based on the notes 2022-07-19_Evaluation_PaperWriting.pdf
Paper Structure¶
Abstract
Introduction + Related Work
Concepts
Evaluation
Conclusion
Statements (Data Availability, Funding, Acknowledgements)
References
Paper Content¶
See review criteria
Tell the whole story in the introduction, rest is detail
Methodology for Paper Writing¶
There is no recipe and what it is.
The basic problem in writing mathematics is the same as in writing biology, writing a novel, or writing directions for assembling a harpsichord: the problem is to communicate an idea.
To do so, and to do it clearly, you must…
have something to say,
have someone to say it to,
organize what you want to say,
arrange it in the order you it said in,
write it, rewrite it, and re-rewrite it several times,
be willing to think hard about and
work hard on mechanical details such as diction, notation, and punctuation.
That’s all there is to it.
Psychological tricks:¶
empty-page effect
divide and conquer
small steps, incremental
start, even if you think the outcome will be marginal
Approaches to writing:¶
Treat writing a paper like programming/software development
Source code is precious, should be of high quality and maintenable
Consider teamwork / shared code
Consequence: Source code of paper should be:
well readable: structured, organized
minimal: refactored, avoid repetitions with macros, remove unnecessary comments
Examples:
Do not write ‘CPAchecker’, but use
\newcommand{\cpachecker}{CPAchecker}
. If you change typesetting to\textsc{CPAchecker}
, only single location must be changedDo not print numbers of experimental data in table and repeat them in text, but use
\newcommand{\correctAlarmsCpachecker}{238}
. Avoids typos and inconsistencies (also makes automation easier).
Source: Our wiki
More sources:
Text editing¶
(at least) every sentence on new line
avoid changing line breaks (do not auto-wrap lines)
use short lines
avoid tabs, use spaces
commit everything to repository that is required to build the project
also commit the bibliography file (
main.bbl
)!always check diff before push
Example diff to show how short lines are helpful: What is the actual change?
- To increase the reliability of these results, validators like \textsc{CPAchecker} \cite{CPACHECKER}, \textsc{UAutomizer} \cite{UAUTOMIZER2013}, and \textsc{MetaVal} \cite{MetaVal} use witnesses to reverify programs wtih desirably less effort by trying to reduce the state space by strengthening the used analysis with
+ To increase the reliability of these results, validators like \textsc{CPAchecker} \cite{CPACHECKER}, \textsc{UAutomizer} \cite{UAUTOMIZER2013}, and \textsc{MetaVal} \cite{MetaVal} use witnesses to reverify programs with desirably less effort by trying to reduce the state space by strengthening the used analysis with
vs.
To increase the reliability of these results,
validators like \cpachecker~\cite{CPACHECKER},
\uautomizer~\cite{UAUTOMIZER2013}, and \metaval~\cite{MetaVal}
use witnesses to reverify programs
- wtih desirably less effort
+ with desirably less effort
by trying
to reduce the state space by strengthening the used analysis
with
Macros¶
\newcommand{..}[#args]{..}
Never use
\def
! Silently overwrites existing macros
Writing Style¶
avoid ambiguity with symbols: ‘a set S of states’, not ‘a set of states S’. With the latter, S could also be a state.
‘iff’ in conditions (theorems), ‘if’ in definitions
Spaces and Periods¶
french spacing: ‘D. Beyer’ -> D. Beyer (single space, not larger)
paragraphs:
\noindent
,\smallskip
,\medskip
, \bigskip`hair space between quantity and unit: 33\,GB (best solved with siunitx)
use short symbols: ‘the state~s’, ‘for all~i’
citations:
Reference is not part of sentence, never used as object in sentence. Removing the reference may not destroy the sentence. Bad: “[3] says …”, “as described in [4]” Good: “as described by Smith [4].”, “as done in HCI [5]”
Always use non-breaking space
~\cite{...}
Avoid “et al.”
Types of Hyphens and Dashes¶
Hyphen: Conjuncts words
En-dash: Minus and range
Em-dash: Separation of thoughts, insertion
BibTeX¶
Use proper names for entry keys
R-textbook
Fool-Name, Author-Name + Year
Conference
Best: Memorizable abbreviation
Entry data should be in consistent style and formatting
Use ‘annot’ field for short explanation why paper is relevant
Repository Organization¶
Start repository as soon as serious work on topic exists (e.g., whiteboard screenshot)
Commit each document
Main source file:
main.tex
Split large documents into sections. For example:
main.tex
,abstract.tex
,intro.tex
, …Sub directories:
archive/
2021-03-02_CAV07-submission.pdf
2021-07-05_CAV07-published.pdf
2021-07-05_CAV07-Copyright-Form.pdf
2021-05-05_CAV07-rebuttal-answer.txt
paper/
main.tex
…
talk/
main.tex
…
Comments¶
% Text that may be used in the future
%%% db: Explanation by Dirk Beyer for co-authors
Each comment starts a new line