-
Notifications
You must be signed in to change notification settings - Fork 1
/
natsci_styleguide.tex
262 lines (235 loc) · 18.6 KB
/
natsci_styleguide.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
\documentclass{article}
\usepackage{natsci}
%*******************************************************************************
% polyglossia settings
%*******************************************************************************
\setdefaultlanguage[variant=british]{english}
\setotherlanguage{czech}
%*******************************************************************************
% fontspec settings
%*******************************************************************************
\newfontfamily{\latinmodernroman}{Latin Modern Roman}
\newfontfamily{\latinmodernsans}{Latin Modern Sans}
\newfontfamily{\latinmodernmono}{Latin Modern Mono}
\newfontfamily{\latinmodernmath}{Latin Modern Math}
\newfontfamily{\cjkfont}{Noto Serif CJK SC}
\setmainfont{Latin Modern Roman}[SmallCapsFont={Latin Modern Roman Caps}]
\setromanfont{Latin Modern Roman}[SmallCapsFont={Latin Modern Roman Caps}]
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}
%*******************************************************************************
% ucharclasses settings
%*******************************************************************************
\setTransitionsForCJK{\begingroup\cjkfont}{\endgroup}
%*******************************************************************************
% unicode-math settings
%*******************************************************************************
\setmathfont{Latin Modern Math}
\setmathfont{STIX Two Math}[range={"29B5}] % Taking the "standard symbol" (\circlehbar) from STIX Two Math
%*******************************************************************************
% fancyhdr settings
%*******************************************************************************
\pagestyle{fancy} % Make pages fancy
\fancyhf{}
\fancyhead[C]{\texttt{natsci} --- Package style guide}
\fancyfoot[C]{\thepage}
%*******************************************************************************
% Changing footnotes to symbols to avoid confusion with superscript references
%*******************************************************************************
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
%*******************************************************************************
% Title page
%*******************************************************************************
\title{\vspace{-2cm}\texttt{natsci} --- Science notation style guide}
\author{Adam Přáda}
\date{2020-10-26}
\usepackage[backend=biber,style=chem-rsc,doi=true]{biblatex}
\addbibresource{library.bib}
\usepackage{hologo} % For LaTeX and other logos
\setlength{\parindent}{0pt}
\setlength{\parskip}{0.5em}
\begin{document}
\pagestyle{fancy}
\maketitle
\section{Introduction}
This style guide outlines some \LaTeX{} basics and some typesetting conventions using the \texttt{natsci} package. It is aimed at English and Czech users, but should be easily adaptable for everyone. This document should be read side-by-side with its source code.
\section{General}
Normal text is written as it is
and line breaks
in
the
code
are treated only as spaces. The number of spaces between words does not matter.
However, a completely empty line signifies a new paragraph. Note that it must be completely empty (may contain only spaces). Any comments or commands count as non-empty. \par Alternatively, a new paragraph can be created by a command, but that is usually not necessary. Sometimes\\ you want a line break without a new paragraph. That is done using two backslashes.
Different styles of text are \textrm{roman (upright)}, \textbf{bold}, \textit{italics}, \emph{emphasised} (usually italics, but can be globally changed), \textbf{\textit{bold italics}}, \textsf{sans-serif}, \textsf{\textbf{sans-serif bold}}, \textsf{\textit{sans-serif italics (oblique)}}, \texttt{mono-spaced}, \texttt{\textbf{mono-spaced bold}}, \texttt{\textit{mono-spaced italic}}.
\subsection{Escaping characters}
There are some characters that have meaning in \hologo{LaTeX} and have to be ``escaped'' when you actually want to display them. These are \&, \%, \$, \#, \_, \{, \}, \textasciitilde{}, \textasciicircum{}, \textbackslash{}. The empty curly braces are not necessary, but prevent disappearence of spaces that follow them. (If you don't want a space after them, you can omit the braces.)
\subsection{Unicode characters}
The package uses \hologo{XeLaTeX}, which can directly typeset the whole of Unicode. However, the characters need to be supported by the font, and there is not a single font that would cover the whole of Unicode. This means that one would have to manually switch fonts if characters outside of the body font are needed. This can be done automatically for predefined Unicode ranges using the \texttt{ucharclasses} package, as demonstrated for the Han characters (漢字) in the header of this file.
\newpage
\subsection{Unicode abbreviations}
There are some Unicode characters that have \TeX{} shorthands consisting of \textsc{ascii} characters. These are more explicit and easier to type than the actual Unicode characters, which is why we shall use them.
\paragraph{Space sizes.} There are different sizes of spaces in typesetting which are represented by different characters in Unicode. \hologo{LaTeX} automatically inserts a larger space following a full stop. This is appropriate following a sentence, but not for other uses of full stop, e.g.\ in abbreviations. There, the space should be escaped using a backslash, which achieves a normal sized space.
\\
\textenglish{Compare e.g. spacing to e.g.\ spacing.} This is only in English language.
\paragraph{Non-breaking spaces.} In some cases, spaces should not change into line breaks. This is done using the tilde symbol. Let's say that we don't want the initials to separate, like in A.~Přáda. This also suppresses the large spacing after a full stop that is present in English.
Dashes and hyphens are typed by 1 to 3 \textsc{ascii} hyphens. For hy-phe-na-ted words use a single one. For ranges of numbers, use two, which give you an en-dash (e.g.\ 1--2). For pauses --- em-dashes are used, which are represented by three hyphens.
\textczech{English quotation marks are created using backticks for the front and apostrophes for the back, like `this' or ``this''. Make sure that you don't use the the typewriter double quote \texttt{"}, which can cause troubles. Czech quotation marks, however, are typed using the double-quote character followed by quotations as previously, like "`this"'. (This works only in Czech texts.)}
\paragraph{Non-breaking hyphens} Sometimes there are hyphenated words that should not be split across lines. We use the \texttt{extdash} package and the hyphens are done as follows: 2\=/propanol.\label{importantsection}
\subsection{References}
You can refer to other places in the document using the \texttt{\textbackslash ref} command. This refers to a place labelled with the appropriate \texttt{\textbackslash label} command. This refers to section \ref{importantsection} on page \pageref{importantsection}. If these labels are inside numbered environments like sections, subsections, equations, figures or tables, they carry the appropriate number in the \texttt{ref} command and the page number in the \texttt{pageref} command. It is customary to name labels with prefixes \texttt{eq:}, \texttt{fig:} and \texttt{tab:} for equations, figures and tables respectively.
\subsection{Footnotes}
Footnotes are simple done like this.\footnote{My first footnote.} You can write the footnote text\footnotemark outside of the paragraph, if appropriate.
\footnotetext{My second footnote}
\section{Mathematical equations}
\hologo{LaTeX} has a special math mode that needs to be triggered by a command.
Inline mathematics is written either using dollar signs like this $x=y$ (this is the old \TeX{} macro) or using escaped parentheses \(x=y\). These two are completely equivalent, even though the latter one is somewhat neater and makes it easier to search for a missing one.
Display mathematics is written either using escaped brackets.
\[
x=y
\]
or using the \texttt{equation*} environment.
\begin{equation*}
x=y
\end{equation*}
These two are equivalent. The * means that the equation is not automatically numbered. Please refrain from using the old \TeX{} double dolar macro \texttt{\$\$ x=y \$\$}. This is poorly defined and breaks things. For automatically numbered equations, use the \texttt{\textbackslash equation} environment.
\begin{equation}
x=y
\end{equation}
Note that empty lines prior to \texttt{\textbackslash[} or \texttt{\textbackslash begin\{equation\}} matter. Display equations are parts of paragraphs or paragraphs themselves, and the spacing reflects this. Also, note that spaces can be used to separate individual commands, but just like in normal mode, any number of spaces counts as a single space. Other environments that you may want to use are \texttt{align} (aligned equations, arrays of equations), \texttt{multline} (not a typo) (one equation split across line) and \texttt{gather} (not-aligned equations, one per line). (Please don't use \texttt{array}, it causes problems.)
If you want to number equations manually, you use the \texttt{tag} command
\[
x=y
\tag{4}
\]
\section{Mathematical typesetting conventions}
The document uses \texttt{unicode-math}, which means that you can type mathematical symbols directly using their Unicode characters. However, since there are no Unicode keyboards, it is usually more convenient to use the related \textsc{ascii} macros.
\paragraph{Variables} All variables are typeset in \textit{italics/slanted/oblique}. This includes fundamental constants that do not vary. (We can imagine a hypothetical situation when they do.)
\[
x, y, i, j, e\ (\textrm{elementary charge}), c\ (\textrm{the speed of light})
\]
Vector variables are typeset in \textbf{\textit{bold italics}}. (They are still variables.) For this, use the \texttt{vc} command.
\[
\vc{F} = m \vc{a}
\]
Matrix/tensor variables are typeset in bold sans-serif font. For these the command \texttt{mat} was defined. (In addition, a command \texttt{transp} was defined for transpose \transp)
\[
\vc{c}^\transp \mat{H} \vc{c} = E
\]
\paragraph{Mathmatical alphabets} If you want a more direct control, below is the list of all the mathematical alphabets that exist in Unicode. (These commands can also be used without the curly braces, in which case they apply to the next symbol, like this $\symcal L$. However, with curly braces it is more explicit what you mean.)
\begin{align*}
&a A \xi \Xi &
&\symnormal{a A \xi \Xi} &
&\symliteral{a A \xi \Xi} &
&\symup{a A \xi \Xi} &
&\symit{a A \xi \Xi} &
&\symbf{a A \xi \Xi} &
&\symsf{a A \xi \Xi} &
&\symtt{a A \xi \Xi} \\
&\symbfsf{a A \xi \Xi} &
&\symbfup{a A \xi \Xi} &
&\symbfit{a A \xi \Xi} &
&\symbb{a A \xi \Xi} &
&\symbbit{a A \xi \Xi} &
&\symcal{a A \xi \Xi} &
&\symbfcal{a A \xi \Xi} &
&\symscr{a A \xi \Xi} \\
&\symbfscr{a A \xi \Xi} &
&\symfrak{a A \xi \Xi} &
&\symbffrak{a A \xi \Xi} &
&\symsfup{a A \xi \Xi} &
&\symbfsfup{a A \xi \Xi} &
&\symsfit{a A \xi \Xi} &
&\symbfsfit{a A \xi \Xi} \\
\end{align*}
\paragraph{Non-variables} All other objects, like operators, labels, abbreviations, function names or units, must be typed upright. This also applies to mathematical constants that are usually denoted by letters, like e (Euler's number), i (imaginary unit), \upi (circumference of a circle of a unit diameter). Basic functions, like trigs and logs have their own commands. For differentials d, e, i and \upi, new commands were defined for their upright versions \texttt{ue, ud, ui, upi}. Similarly, the difference, the upright capital delta is used \uDelta, which has been assigned the macro \texttt{uDelta}. For derivatives, the package \texttt{diffcoeff} provides a simpler notation than explicitly writing fractions.
If you want to specify that something should be upright in the math mode, you have a few options.
\begin{itemize}[leftmargin=10em]
\item[\texttt{symup} \(\symup{effigy}\)] Symbols from the mathematical upright alphabet. No spaces, no ligatures and specific spacing. Use for mathematical symbols that are upright letters (differentials, mathematical constants)
\item[\texttt{math*}] Uses math font and its variations without ligatures and spaces. Ideal for multiletter operators.
\item[\texttt{mathrm} \(\mathrm{effigy}\)]
\item[\texttt{mathup} \(\mathup{effigy}\)] Equivalent to mathrm
\item[\texttt{mathit} \(\mathit{effigy}\)]
\item[\texttt{mathbf} \(\mathbf{effigy}\)]
\item[\texttt{mathbfit} \(\mathbfit{effigy}\)]
\item[\texttt{mathsf} \(\mathsf{effigy}\)]
\item[\texttt{mathtt} \(\mathtt{effigy}\)]
\item[\texttt{mathtext*}] ``Old'' definitions of the math* commands that are not updated throughout Use only for compatibility purposes.
\item[\texttt{mathtextrm} \(\mathtextrm{effigy}\)]
\item[\texttt{mathtextit} \(\mathtextit{effigy}\)]
\item[\texttt{mathtextbf} \(\mathtextbf{effigy}\)]
\item[\texttt{text} \(\text{effigy}\)] Gives the same result as text outside of the math mode (including the font, spaces and ligatures). Can also use \texttt{textrm, textbf, textit, textsf, texttt} just like outside of math mode.
\end{itemize}
See examples below.
\[
\sin x, \ln \uDelta H_\textrm{fus}^\std,\int \ud x, \ue^{\ui \upi}, \mat{A}^\transp, \diff{f(x)}{x}, \diff[3]{f}{x}[x=0], \diffp[3]{f(x,y)}{x}[y]
\]
Also note the standard state symbol $\circlehbar$, which has been assigned the \texttt{std} macro.
\paragraph{Units and decimal numbers}For the formating of numerical values and units, the package \texttt{siunitx} is used. The main advantage is the ability to globally change the decimal separator between dot and comma, or the way units are typeset. This can be used e.g.\ in making of different language versions. Therefore, all decimal numbers and numbers with units should be typeset as follows:
\begin{align*}
&\num{12345,67890} &
&\num[output-decimal-marker = {,}]{12345.67890} &
&\num{1+-2i} \\
&\num{0.3e45} &
&\num[exponent-product = \ensuremath{{}\cdot{}}]{0.3e45} &
&\si{kJ.mol^{-1}} \\
&\SI{1525.3}{kJ.mol^{-1}} &
&\SI{10}{\micro\metre} &
&\SI{10}{\um} \\
&\SI{10}{\ul} &
&\SI{10}{\degreeCelsius} &
&\SI{1525.3}{\kJ\per\mol} \\
&\SI{15.3}{\joule\per\mole\per\kelvin} &
&\SI[inter-unit-product = \ensuremath{{}\cdot{}}]{15.3}{\J\mol^{-1}\K^{-1}} &
&\SI{1525.3}{kJ.mol^{-1}} \\
&\ang{4,5} &
&\ang{1;2;3} &
\end{align*}
Note that the units are correctly typeset in upright font with a non-breaking space between the number and the unit. It does not matter whether decimal comma or dot is used in the source code, the output will follow the package setting. Units can be either selected by typing their abbreviations separated by dots with explicit powers, or by specific commands as demonstrate above.
\begin{table}[]
\caption{Multiplication symbols recommended by different authorities}
\begin{tabularx}{\textwidth}{|L|C|C|C|C|C|}
\hline
& \textbf{ISO} & \textbf{SI (BIPM)} & \textbf{IUPAP} & \textbf{IUPAC} & \textbf{NIST} \\ \hline
\textbf{letter symbols} & nothing, space, $\cdot$, $\times$, $/$ & nothing, space, $\cdot$, $\times$, $/$ & nothing,\newline $\cdot$, $\times$, $/$ & nothing, space, $\cdot$, $\times$, $/$ & nothing, space, $\cdot$, $\times$, $/$ \\ \hline
\textbf{numbers with decimal dots} & $\times$ & $\times$ & $\times$ & ? (uses $\times$) & $\times$ \\ \hline
\textbf{numbers with decimal comas} & $\times$, $\cdot$ & $\times$ & $\times$, $\cdot$ & ? (uses $\times$) & $\times$, $\cdot$ \\ \hline
\textbf{units} & space, $\cdot$, $/$, nothing (when unambiguous) & space, $\cdot$, $/$ & space, $\cdot$, $/$ & space, $\cdot$, $/$ & space, $\cdot$, $/$ \\ \hline
\textbf{notes} & cannot do $a \times b^{-1}$ for any of above & & & & \\ \hline
\end{tabularx}
\end{table}
\section{Chemistry typesetting}
The package used is \texttt{chemmacros}. Chemical formulas are then enclosed in the \texttt{ch} command, like this \ch{H2O}. This works also in the math mode like in
\[
\uDelta G_\mathrm{fus}^\std(\ch{H2O}).
\]
Alternatively, for full reactions, one can use the \texttt{reaction} and \texttt{reaction*} environments. (* again to avoid numbering)
\begin{reaction*}
H2SO4 + 2 H2O <=> HSO4- + H3O+ + H2O <=> 2 H3O+ + SO4^{2-}
\end{reaction*}
\begin{reaction*}
_{0}^{1}n + \isotope{235,U} -> 3 _{0}^{1}n + \isotope{93,Kr} + \isotope{140,Ba}
\end{reaction*}
\begin{reaction*}
2 R-CHO -> R-COO^{-} + R-CH2-OH
\end{reaction*}
\begin{reaction*}
F2 + H2O \sld -> [ $\SI{-40}{\degreeCelsius}$ ] HF ($\mathbf{A}$) + HOF ($\mathbf{B}$)
\end{reaction*}
However, the package can do much more, so feel free to explore
\begin{center}
\begin{tabular}{cc} % I am not sure if this is the easiest way of doing this
{\large
\ch{Ag^\fscrp} \ch{^\fscrm}\chlewis{90:180:270:}{O}\bond{sb}\ch{C}\bond{tp}\chlewis{0:}{N}
}
&
{\large
\ch{Ag^\fscrp} \ch{^\fscrm}\chlewis{90:180:270:}{O}\bond{sb}\ch{N^\fscrp}\bond{tp}\chlewis{0:}{C}\ch{^\fscrm}
}\\
\end{tabular}
\end{center}
\section{Literature citations}
For citations, the package recommended today, is \texttt{biblatex} with \texttt{biber} backend. The citations are then imported from a separate \texttt{.bib} file, which can be automatically generated from a citation manager, like Zotero, Mendeley or EndNote.
AS citation commands, one can use either superscripts, which is mainly when the reference is not explicitly a part of the sentence.\supercite{cit1} Alternatively, you can mention them in sentence, like ref \cite{cit2}. You can also reference in full like \fullcite{mendelejev} or in a footnote like this.\footfullcite{iupac}
\printbibliography
\end{document}