Developer Guide¶
Note
This page describes information for RELION developers and code contributors. General users do not need information here.
Coding styles in C++¶
Indentation should be done with tabs, while alignment should be done with spaces.
New lines should be as follows. Note that due to limitation of rST syntax, I used spaces instead of tabs.
// Use this
void test(int a, int b)
{
if (!flag)
{
A();
B();
}
else
{
C();
D();
}
}
// Not this
void test(int a, int b) {
if (!flag) {
A();
B();
} else {
A();
B();
}
}
How to compile this documentation¶
To compile this documentation into HTML, type:
make html
For PDF, perform:
make latex
cd build/latex
pdflatex relion.tex # you might have to install several style files
If your system has latexmk
, this can be done in one line:
make latexpdf
If above commands complain about missing Python packages, try:
python3 -m pip install --upgrade sphinx sphinxcontrib-bibtex
Coding styles in reStructuredText (rST)¶
For Å, α, β in the main text, just type as is using Unicode. Don’t use TeX commands.
To make git diff
easier to understand, each sentense should use a new line.
A sentence.
Next sentence.
A new paragraph.
``Keyword``, *emphasis by italic* and **emphasis by bold** are marked like this.
You can cite a paper :cite:`Zivanov_estimation_2020`.
A link to `rST documentation <https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_.
Note the underline.
You can use LaTeX math :math:`\sum x_i^2`.
We have custom tags for :button:`buttons`, :joblist:`joblists`, :jobtype:`jobtypes` and :guitab:`guitabs`.
|RELION| prints RELION in smallscaps.
We also have |MotionCor2| and |CTFFIND4.1| defined.
This paragram is a bad example. Two sentences are in one line.
::
A block quote for commands is an indented block following two
colons and an empty line. Please use FOUR SPACES, not tabs for indentation.
- When using a list, be careful about indentation.
The second sentence must be aligned.
- The second item in the list.
:Field list: suggested value
(Explanation sentence 1.
Note the indentation of this line!
Also note the following blank line.)
:Another option without a value: \
(Please put `\` at the end of the line to the field that should be left empty.)
The above example is rendered as:
A sentence. Next sentence.
A new paragraph.
Keyword
, emphasis by italic and emphasis by bold are marked like this.
You can cite a paper [ZNS20].
A link to rST documentation.
Note the underline.
You can use LaTeX math \(\sum x_i^2\).
We have custom tags for joblists, jobtypes and guitabs. relion prints RELION in smallscaps. We also have motioncor2 and ctffind 4.1 defined.
,This paragram is a bad example. Two sentences are in one line.
A block quote for commands is an indented block following two
colons and an empty line. Please use FOUR SPACES, not tabs for indentation.
When using a list, be careful about indentation. The second sentence must be aligned.
The second item in the list.
- Field list:
suggested value
(Explanation sentence 1. Note the indentation of this line! Also note the blank lines.)
- Another option without a value:
-
(Please put
\
at the end of the line to the field that should be left empty.)