refactor referencing

This commit is contained in:
matthias@quintern.xyz 2025-02-25 23:26:19 +01:00
parent d803b2308a
commit d9da44ac74
32 changed files with 623 additions and 390 deletions

View File

@ -5,12 +5,13 @@ $out_dir = '../out';
# Set lualatex as the default engine
$pdf_mode = 1; # Enable PDF generation mode
# $pdflatex = 'lualatex --interaction=nonstopmode --shell-escape'
$lualatex = 'lualatex %O --interaction=nonstopmode --shell-escape %S'
$lualatex = 'lualatex %O --interaction=nonstopmode --shell-escape %S';
# Additional options for compilation
# '-verbose',
# '-file-line-error',
ensure_path('TEXINPUTS', './pkg');
# Quickfix-like filtering (warnings to ignore)
# @warnings_to_filter = (
# qr/Underfull \\hbox/,

View File

@ -24,7 +24,7 @@
\end{formula}
\begin{formula}{activity}
\desc{Activity}{relative activity}{\QtyRef{chemical_potential}, \QtyRef{standard_chemical_potential}, \ConstRef{universal_gas}, \QtyRef{temperature}}
\desc{Activity}{relative activity}{\QtyRef{chemical_potential}, \fRef{::standard_chemical_potential}, \ConstRef{universal_gas}, \QtyRef{temperature}}
\desc[german]{Aktivität}{Relative Aktivität}{}
\quantity{a}{}{s}
\eq{a_i = \Exp{\frac{\mu_i-\mu_i^\theta}{RT}}}
@ -147,13 +147,13 @@
\begin{formula}{nernst_equation}
\desc{Nernst equation}{Electrode potential for a half-cell reaction}{\QtyRef{electrode_potential}, $E^\theta$ \secEqRef{standard_cell_potential}, \ConstRef{universal_gas}, \ConstRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \QtyRef{activity}, \QtyRef{stoichiometric_coefficient}}
\desc{Nernst equation}{Electrode potential for a half-cell reaction}{\QtyRef{electrode_potential}, $E^\theta$ \fRef{::standard_cell_potential}, \ConstRef{universal_gas}, \ConstRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \QtyRef{activity}, \QtyRef{stoichiometric_coefficient}}
\desc[german]{Nernst-Gleichung}{Elektrodenpotential für eine Halbzellenreaktion}{}
\eq{E = E^\theta + \frac{RT}{zF} \Ln{\frac{ \left(\prod_{i}(a_i)^{\abs{\nu_i}}\right)_\text{oxidized}}{\left(\prod_{i}(a_i)^{\abs{\nu_i}}\right)_\text{reduced}}}}
\end{formula}
\begin{formula}{cell_efficiency}
\desc{Thermodynamic cell efficiency}{}{$P$ \fqEqRef{ed:el:power}}
\desc{Thermodynamic cell efficiency}{}{$P$ \fRef{ed:el:power}}
\desc[german]{Thermodynamische Zelleffizienz}{}{}
\eq{
\eta_\text{cell} &= \frac{P_\text{obtained}}{P_\text{maximum}} = \frac{E_\text{cell}}{E_\text{cell,rev}} & & \text{\gt{galvanic}} \\
@ -312,8 +312,8 @@
\ger{Massentransport}
]{mass}
\begin{formula}{concentration_overpotential}
\desc{Concentration overpotential}{Due to concentration gradient near the electrode, the ions need to \hyperref[f:ch:el:ion_cond:diffusion]{diffuse} to the electrode before reacting}{\ConstRef{universal_gas}, \QtyRef{temperature}, $\c_{0/\txS}$ ion concentration in the electrolyte / at the double layer, $z$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc[german]{Konzentrationsüberspannung}{Durch einen Konzentrationsgradienten an der Elektrode müssen Ionen erst zur Elektrode \hyperref[f:ch:el:ion_cond:diffusion]{diffundieren}, bevor sie reagieren können}{}
\desc{Concentration overpotential}{Due to concentration gradient near the electrode, the ions need to \fRef[diffuse]{ch:el:ion_cond:diffusion} to the electrode before reacting}{\ConstRef{universal_gas}, \QtyRef{temperature}, $\c_{0/\txS}$ ion concentration in the electrolyte / at the double layer, $z$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc[german]{Konzentrationsüberspannung}{Durch einen Konzentrationsgradienten an der Elektrode müssen Ionen erst zur Elektrode \fRef[diffundieren]{ch:el:ion_cond:diffusion}, bevor sie reagieren können}{}
\eq{
\eta_\text{conc,anodic} &= -\frac{RT}{\alpha \,zF} \ln \left(\frac{c_\text{red}^0}{c_\text{red}^\txS}\right) \\
\eta_\text{conc,cathodic} &= -\frac{RT}{(1-\alpha) zF} \ln \left(\frac{c_\text{ox}^0}{c_\text{ox}^\txS}\right)
@ -321,7 +321,7 @@
\end{formula}
\begin{formula}{diffusion_overpotential}
\desc{Diffusion overpotential}{Due to mass transport limitations}{$j_\infty$ \secEqRef{limiting_current}, $j_\text{meas}$ measured \qtyRef{current_density}, \ConstRef{universal_gas}, \QtyRef{temperature}, $n$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc{Diffusion overpotential}{Due to mass transport limitations}{$j_\infty$ \fRef{::limiting_current}, $j_\text{meas}$ measured \qtyRef{current_density}, \ConstRef{universal_gas}, \QtyRef{temperature}, $n$ \qtyRef{charge_number}, \ConstRef{faraday}}
\desc[german]{Diffusionsüberspannung}{Durch Limit des Massentransports}{}
% \eq{\eta_\text{diff} = \frac{RT}{nF} \ln \left( \frac{\cfrac{c^\txs_\text{ox}}{c^0_\text{ox}}}{\cfrac{c^\txs_\text{red}}{c^0_\text{red}}} \right)}
\eq{\eta_\text{diff} = \frac{RT}{nF} \Ln{\frac{j_\infty}{j_\infty - j_\text{meas}}}}
@ -424,7 +424,7 @@
\end{formula}
\begin{formula}{limiting_current}
\desc{(Limiting) current density}{}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \secEqRef{diffusion_layer_thickness}}
\desc{(Limiting) current density}{}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \fRef{::diffusion_layer_thickness}}
% \desc[german]{Limitierender Strom}{}{}
\eq{
\abs{j} &= nFD \frac{c^0-c^\txS}{\delta_\text{diff}}
@ -434,14 +434,14 @@
\end{formula}
\begin{formula}{relation?}
\desc{Current - concentration relation}{}{$c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}, $j$ \secEqRef{limiting_current}}
\desc{Current - concentration relation}{}{$c^0$ \GT{c_bulk}, $c^\txS$ \GT{c_surface}, $j$ \fRef{::limiting_current}}
\desc[german]{Strom - Konzentrationsbeziehung}{}{}
\eq{\frac{j}{j_\infty} = 1 - \frac{c^\txS}{c^0}}
\end{formula}
\begin{formula}{kinetic_current}
\desc{Kinetic current density}{}{$j_\text{meas}$ measured \qtyRef{current_density}, $j_\infty$ \secEqRef{limiting_current}}
\desc[german]{Kinetische Stromdichte}{}{$j_\text{meas}$ gemessene \qtyRef{current_density}, $j_\infty$ \secEqRef{limiting_current}}
\desc{Kinetic current density}{}{$j_\text{meas}$ measured \qtyRef{current_density}, $j_\infty$ \fRef{::limiting_current}}
\desc[german]{Kinetische Stromdichte}{}{$j_\text{meas}$ gemessene \qtyRef{current_density}, $j_\infty$ \fRef{::limiting_current}}
\eq{j_\text{kin} = \frac{j_\text{meas} j_\infty}{j_\infty - j_\text{meas}}}
\end{formula}
@ -452,10 +452,10 @@
\begin{formula}{butler_volmer}
\desc{Butler-Volmer equation}{Reaction kinetics near the equilibrium potentential}
{$j$ \qtyRef{current_density}, $j_0$ exchange current density, $\eta$ \fqEqRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ cathodic/anodic charge transfer coefficient, $\text{rf}$ \secEqRef{roughness_factor}}
{$j$ \qtyRef{current_density}, $j_0$ exchange current density, $\eta$ \fRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ cathodic/anodic charge transfer coefficient, $\text{rf}$ \fRef{::roughness_factor}}
%Current through an electrode iof a unimolecular redox reaction with both anodic and cathodic reaction occuring on the same electrode
\desc[german]{Butler-Volmer-Gleichung}{Reaktionskinetik in der Nähe des Gleichgewichtspotentials}
{$j$ \qtyRef{current_density}, $j_0$ Austauschstromdichte, $\eta$ \fqEqRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ Ladungstransferkoeffizient an der Kathode/Anode, $\text{rf}$ \secEqRef{roughness_factor}}
{$j$ \qtyRef{current_density}, $j_0$ Austauschstromdichte, $\eta$ \fRef{ch:el:kin:overpotential}, \QtyRef{temperature}, $z$ \qtyRef{charge_number}, \ConstRef{faraday}, \ConstRef{universal_gas}, $\alpha_{\txC/\txA}$ Ladungstransferkoeffizient an der Kathode/Anode, $\text{rf}$ \fRef{::roughness_factor}}
\begin{gather}
j = j_0 \,\rfactor\, \left[ \Exp{\frac{(1-a_\txC) z F \eta}{RT}} - \Exp{-\frac{\alpha_\txC z F \eta}{RT}}\right]
\intertext{\GT{with}}
@ -512,7 +512,7 @@
\end{formula}
\begin{formula}{rhe}
\desc{Reversible hydrogen electrode (RHE)}{RHE Potential does not change with the pH value}{$E^0\equiv \SI{0}{\volt}$, \QtyRef{activity}, \QtyRef{pressure}, \GT{see} \fqEqRef{ch:el:cell:nernst_equation}}
\desc{Reversible hydrogen electrode (RHE)}{RHE Potential does not change with the pH value}{$E^0\equiv \SI{0}{\volt}$, \QtyRef{activity}, \QtyRef{pressure}, \GT{see} \fRef{ch:el:cell:nernst_equation}}
\desc[german]{Reversible Wasserstoffelektrode (RHE)}{Potential ändert sich nicht mit dem pH-Wert}{}
\eq{
E_\text{RHE} &= E^0 + \frac{RT}{F} \Ln{\frac{a_{\ce{H^+}}}{p_{\ce{H2}}}}
@ -638,7 +638,7 @@
\end{formula}
\begin{formula}{limiting_current}
\desc{Limiting current density}{for a \abbrRef{rde}}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \secEqRef{diffusion_layer_thickness}, $\nu$ \qtyRef{kinematic_viscosity}, \QtyRef{angular_frequency}}
\desc{Limiting current density}{for a \abbrRef{rde}}{$n$ \QtyRef{charge_number}, \ConstRef{faraday}, $c^0$ \GT{c_bulk}, $D$ \qtyRef{diffusion_coefficient}, $\delta_\text{diff}$ \fRef{::diffusion_layer_thickness}, $\nu$ \qtyRef{kinematic_viscosity}, \QtyRef{angular_frequency}}
% \desc[german]{Limitierender Strom}{}{}
\eq{j_\infty = nFD \frac{c^0}{\delta_\text{diff}} = \frac{1}{1.61} nFD^{\frac{2}{3}} v^{\frac{-1}{6}} c^0 \sqrt{\omega}}
\end{formula}

View File

@ -63,8 +63,8 @@
\ger{Boltzmann-Transport}
]{boltzmann}
\begin{ttext}
\eng{Semiclassical description using a probability distribution (\fqEqRef{stat:todo:fermi_dirac}) to describe the particles.}
\ger{Semiklassische Beschreibung, benutzt eine Wahrscheinlichkeitsverteilung (\fqEqRef{stat:todo:fermi_dirac}).}
\eng{Semiclassical description using a probability distribution (\fRef{stat:todo:fermi_dirac}) to describe the particles.}
\ger{Semiklassische Beschreibung, benutzt eine Wahrscheinlichkeitsverteilung (\fRef{stat:todo:fermi_dirac}).}
\end{ttext}
\begin{formula}{boltzmann_transport}
\desc{Boltzmann Transport equation}{for charge transport}{$f$ \ref{stat:todo:fermi-dirac}}

View File

@ -11,8 +11,8 @@
\eq{D(E) = \frac{1}{V}\sum_{i=1}^{N} \delta(E-E(\vec{k_i}))}
\end{formula}
\begin{formula}{dos_parabolic}
\desc{Density of states for parabolic dispersion}{Applies to \fqSecRef{cm:egas}}{}
\desc[german]{Zustandsdichte für parabolische Dispersion}{Bei \fqSecRef{cm:egas}}{}
\desc{Density of states for parabolic dispersion}{Applies to \fRef{cm:egas}}{}
\desc[german]{Zustandsdichte für parabolische Dispersion}{Bei \fRef{cm:egas}}{}
\eq{
D_1(E) &= \frac{1}{2\sqrt{c_k(E-E_0)}} && (\text{1D}) \\
D_2(E) &= \frac{\pi}{2c_k} && (\text{2D}) \\
@ -65,8 +65,8 @@
\ger{Debye-Modell}
]{debye}
\begin{ttext}
\eng{Atoms behave like coupled \hyperref[sec:qm:hosc]{quantum harmonic oscillators}. The finite sample size leads to periodic boundary conditio. The finite sample size leads to periodic boundary conditions for the vibrations.}
\ger{Atome verhalten sich wie gekoppelte \hyperref[sec:qm:hosc]{quantenmechanische harmonische Oszillatoren}. Die endliche Ausdehnung des Körpers führt zu periodischen Randbedingungen. }
\eng{Atoms behave like coupled \fRef[quantum harmonic oscillators]{sec:qm:hosc}. The finite sample size leads to periodic boundary conditio. The finite sample size leads to periodic boundary conditions for the vibrations.}
\ger{Atome verhalten sich wie gekoppelte \fRef[quantenmechanische harmonische Oszillatoren]{sec:qm:hosc}. Die endliche Ausdehnung des Körpers führt zu periodischen Randbedingungen. }
\end{ttext}

View File

@ -135,8 +135,8 @@
}
\end{formula}
\begin{formula}{bcc}
\desc{Body centered cubic (BCC)}{Reciprocal: \fqEqRef{cm:bravais:fcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch raumzentriert (BCC)}{Reziprok: \fqEqRef{cm:bravais:fcc}}{}
\desc{Body centered cubic (BCC)}{Reciprocal: \fRef{::fcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch raumzentriert (BCC)}{Reziprok: \fRef{::fcc}}{}
\eq{
\vec{a}_{1}=\frac{a}{2} \begin{pmatrix} -1\\1\\1 \end{pmatrix},\,
\vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\-1\\1 \end{pmatrix},\,
@ -145,8 +145,8 @@
\end{formula}
\begin{formula}{fcc}
\desc{Face centered cubic (FCC)}{Reciprocal: \fqEqRef{cm:bravais:bcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch flächenzentriert (FCC)}{Reziprok: \fqEqRef{cm:bravais:bcc}}{}
\desc{Face centered cubic (FCC)}{Reciprocal: \fRef{::bcc}}{\QtyRef{lattice_constant}}
\desc[german]{Kubisch flächenzentriert (FCC)}{Reziprok: \fRef{::bcc}}{}
\eq{
\vec{a}_{1}=\frac{a}{2} \begin{pmatrix} 0\\1\\1 \end{pmatrix},\,
\vec{a}_{2}=\frac{a}{2} \begin{pmatrix} 1\\0\\1 \end{pmatrix},\,
@ -158,8 +158,8 @@
\desc{Diamond lattice}{}{}
\desc[german]{Diamantstruktur}{}{}
\ttxt{
\eng{\fqEqRef{cm:bravais:fcc} with basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ and $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
\ger{\fqEqRef{cm:bravais:fcc} mit Basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ und $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
\eng{\fRef{:::fcc} with basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ and $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
\ger{\fRef{:::fcc} mit Basis $\begin{pmatrix} 0 & 0 & 0 \end{pmatrix}$ und $\begin{pmatrix} \frac{1}{4} & \frac{1}{4} & \frac{1}{4} \end{pmatrix}$}
}
\end{formula}
\begin{formula}{zincblende}
@ -167,8 +167,8 @@
\desc[german]{Zinkblende-Struktur}{}{}
\ttxt{
\includegraphics[width=0.5\textwidth]{img/cm_zincblende.png}
\eng{Like \fqEqRef{cm:bravais:diamond} but with different species on each basis}
\ger{Wie \fqEqRef{cm:bravais:diamond} aber mit unterschiedlichen Spezies auf den Basen}
\eng{Like \fRef{:::diamond} but with different species on each basis}
\ger{Wie \fRef{:::diamond} aber mit unterschiedlichen Spezies auf den Basen}
}
\end{formula}
\begin{formula}{wurtzite}
@ -176,7 +176,7 @@
\desc[german]{Wurtzite-Struktur}{hP4}{}
\ttxt{
\includegraphics[width=0.5\textwidth]{img/cm_wurtzite.png}
Placeholder
\TODO{Placeholder}
}
\end{formula}

View File

@ -1,10 +1,8 @@
\def\L{\text{L}}
\def\txL{\text{L}}
\def\gl{\text{GL}}
\def\GL{Ginzburg-Landau }
\def\Tcrit{T_\text{c}}
\def\Bcrit{B_\text{c}}
\def\ssc{\text{s}}
\def\ssn{\text{n}}
\def\Bcth{B_\text{c}}
\Section[
\eng{Superconductivity}
@ -13,78 +11,116 @@
\begin{ttext}
\eng{
Materials for which the electric resistance jumps to 0 under a critical temperature $\Tcrit$.
Below $\Tcrit$ they have perfect conductivity and perfect diamagnetism, up until a critical magnetic field $\Bcrit$.
\\\textbf{Type I}: Has a single critical magnetic field at which the superconuctor becomes a normal conductor.
Below $\Tcrit$ they have perfect conductivity and perfect diamagnetism, up until a critical magnetic field $\Bcth$.
\\\textbf{Type I}:
\\\textbf{Type II}: Has two critical
}
\ger{
Materialien, bei denen der elektrische Widerstand beim unterschreiten einer kritischen Temperatur $\Tcrit$ auf 0 springt.
Sie verhalten sich dann wie ideale Leiter und ideale Diamagnete, bis zu einem kritischen Feld $\Bcrit$.
Sie verhalten sich dann wie ideale Leiter und ideale Diamagnete, bis zu einem kritischen Feld $\Bcth$.
}
\end{ttext}
\begin{formula}{type1}
\desc{Type-I superconductor}{}{}
\desc[german]{Typ-I Supraleiter}{}{}
\ttxt{\eng{
Has a single critical magnetic field, $\Bcth$.
\\$B < \Bcth$: \fRef{:::meissner_effect}
\\$B > \Bcth$: Normal conductor
}}
\end{formula}
\begin{formula}{type2}
\desc{Type-II superconductor}{}{}
\desc[german]{Typ-II Supraleiter}{}{}
\ttxt{\eng{
Has a two critical magnetic fields.
\\$B < B_\text{c1}$: \fRef{:::meissner_effect}
\\$B_\text{c1} < B < B_\text{c2}$: \fRef{:::shubnikov_phase}
\\$B > B_\text{c2}$: Normal conductor
}}
\end{formula}
\begin{formula}{perfect_conductor}
\desc{Perfect conductor}{}{}
\desc[german]{Ideale Leiter}{}{}
\ttxt{
\eng{
In contrast to a superconductor, perfect conductors become diamagnetic only when the external magnetic field is turned on \textbf{after} the material was cooled below the critical temperature.
(\fqEqRef{ed:fields:mag:induction:lenz})
(\fRef{ed:fields:mag:induction:lenz})
}
\ger{
Im Gegensatz zu einem Supraleiter werden ideale Leiter nur dann diamagnetisch, wenn das externe magnetische Feld \textbf{nach} dem Abkühlen unter die kritische Temperatur eingeschaltet wird.
(\fqEqRef{ed:fields:mag:induction:lenz})
(\fRef{ed:fields:mag:induction:lenz})
}
}
\end{formula}
\begin{formula}{meissner_effect}
\desc{Meißner-Ochsenfeld effect}{Perfect diamagnetism}{}
\desc[german]{Meißner-Ochsenfeld Effekt}{Idealer Diamagnetismus}{}
\desc{Meißner-Ochsenfeld effect}{Perfect diamagnetism}{$\chi=-1$ \qtyRef{magnetic_susceptibility}}
\desc[german]{Meißner-Ochsenfeld Effekt}{Perfekter Diamagnetismus}{}
\ttxt{
\eng{External magnetic field decays exponetially inside the superconductor below a critical temperature and a critical magnetic field.}
\ger{Externes Magnetfeld fällt im Supraleiter exponentiell unterhalb einer kritischen Temperatur und unterhalb einer kritischen Feldstärke ab.}
\eng{External magnetic field decays exponetially inside the superconductor below a critical temperature and a critical magnetic field, path-independant.}
\ger{Externes Magnetfeld fällt im Supraleiter exponentiell unterhalb einer kritischen Temperatur und unterhalb einer kritischen Feldstärke ab, wegunabhängig.}
}
\end{formula}
\begin{formula}{condensation_energy}
\desc{Condensation energy}{}{\QtyRef{gibbs_energy}}
\desc[german]{Kondensationsenergie}{}{}
\eq{
\d G &= -S \d T + V \d p - V \vecM \cdot \d\vecB \\
G_\text{con} &= G_\txn(B=0,T) - G_\txs(B=0,T) = \frac{V \Bcth^2(T)}{2\mu_0}
}
\end{formula}
\Subsection[
\eng{London equations}
\ger{London-Gleichungen}
]{london}
\begin{ttext}
\eng{
Quantitative description of the \fqEqRef{cm:sc:meissner_effect}.
Quantitative description of the \fRef{cm:sc:meissner_effect}.
}
\ger{
Quantitative Beschreibung des \fqEqRef{cm:sc:meissner_effect}s.
Quantitative Beschreibung des \fRef{cm:sc:meissner_effect}s.
}
\end{ttext}
% \begin{formula}{coefficient}
% \desc{London-coefficient}{}{}
% \desc[german]{London-Koeffizient}{}{}
% \eq{\Lambda = \frac{m_\ssc}{n_\ssc q_\ssc^2}}
% \eq{\txLambda = \frac{m_\txs}{n_\txs q_\txs^2}}
% \end{formula}
\Eng[of_sc_particle]{of the superconducting particle}
\Ger[of_sc_particle]{der Supraleitenden Teilchen}
\begin{formula}{first}
% \vec{j} = \frac{nq\hbar}{m}\Grad S - \frac{nq^2}{m}\vec{A}
\desc{First London Equation}{}{$\vec{j}$ current density, $n_\ssc$, $m_\ssc$, $q_\ssc$ density, mass and charge of superconduticng particles}
\desc[german]{Erste London-Gleichun-}{}{$\vec{j}$ Stromdichte, $n_\ssc$, $m_\ssc$, $q_\ssc$ Dichte, Masse und Ladung der supraleitenden Teilchen}
\desc{First London Equation}{}{$\vec{j}$ \qtyRef{current_density}, $m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}, \QtyRef{electric_field}}
\desc[german]{Erste London-Gleichun-}{}{}
\eq{
\pdv{\vec{j}_{\ssc}}{t} = \frac{n_\ssc q_\ssc^2}{m_\ssc}\vec{E} {\color{gray}- \Order{\vec{j}_\ssc^2}}
\pdv{\vec{j}_{\txs}}{t} = \frac{n_\txs q_\txs^2}{m_\txs}\vec{\E} {\color{gray}- \Order{\vec{j}_\txs^2}}
% \\{\color{gray} = \frac{q}{m}\Grad \left(\frac{1}{2} \TODO{FActor} \vec{j}^2\right)}
}
\end{formula}
\begin{formula}{second}
\desc{Second London Equation}{Describes the \fqEqRef{cm:sc:meissner_effect}}{$\vec{j}$ current density, $n_\ssc$, $m_\ssc$, $q_\ssc$ density, mass and charge of superconduticng particles}
\desc[german]{Zweite London-Gleichung}{Beschreibt den \fqEqRef{cm:sc:meissner_effect}}{$\vec{j}$ Stromdichte, $n_\ssc$, $m_\ssc$, $q_\ssc$ Dichte, Masse und Ladung der supraleitenden Teilchen}
\desc{Second London Equation}{Describes the \fRef{cm:sc:meissner_effect}}{$\vec{j}$ \qtyRef{current_density}, $m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}, \QtyRef{magnetic_field}}
\desc[german]{Zweite London-Gleichung}{Beschreibt den \fRef{cm:sc:meissner_effect}}{}
\eq{
\Rot \vec{j_\ssc} = -\frac{n_\ssc q_\ssc^2}{m_\ssc} \vec{B}
\Rot \vec{j_\txs} = -\frac{n_\txs q_\txs^2}{m_\txs} \vec{B}
}
\end{formula}
\begin{formula}{penetration_depth}
\desc{London penetration depth}{}{}
\desc[german]{London Eindringtiefe}{}{}
\eq{\lambda_\L = \sqrt{\frac{m_\ssc}{\mu_0 n_\ssc q_\ssc^2}}}
\desc{London penetration depth}{Depth at which $B$ is $1/\e$ times the value of $B_\text{ext}$}{$m_\txs$/$n_\txs$/$q_\txs$ \qtyRef{mass}/\qtyRef{charge_carrier_density}/\qtyRef{charge} \GT{of_sc_particle}}
\desc[german]{London Eindringtiefe}{Tiefe bei der $B$ das $1/\e$-fache von $B_\text{ext}$ ist}{}
\eq{\lambda_\txL = \sqrt{\frac{m_\txs}{\mu_0 n_\txs q_\txs^2}}}
\end{formula}
\begin{formula}{penetration_depth_temp}
\desc{Temperature dependence of \fRef{::penetration_depth}}{}{}
\desc[german]{Temperaturabhängigkeit der \fRef{::penetration_depth}}{}{}
\eq{\lambda_\txL(T) = \lambda_\txL(0) \frac{1}{\sqrt{1- \left(\frac{T}{T_\txc}\right)^4}}}
\end{formula}
@ -97,8 +133,14 @@
\eng{
\TODO{TODO}
}
\end{ttext}
\begin{formula}{boundary_energy}
\desc{Boundary energy}{}{$\Delta E_\text{boundary}$ \TODO{TODO}}
\desc[german]{Grenzflächenenergie}{}{}
\eq{\Delta E_\text{boundary} = \Delta E_\text{con} - \Delta E_\txB = (\xi_\gl - \lambda) \frac{B_\text{c,th}^2}{2\mu_0}}
\end{formula}
\begin{formula}{coherence_length}
\desc{\GL Coherence Length}{}{}
\desc[german]{\GL Kohärenzlänge}{}{}
@ -111,21 +153,22 @@
\desc{\GL Penetration Depth / Field screening length}{}{}
\desc[german]{\GL Eindringtiefe}{}{}
\eq{
\lambda_\gl &= \sqrt{\frac{m_\ssc\beta}{\mu_0 \abs{\alpha} q_s^2}} \\
\lambda_\gl &= \sqrt{\frac{m_\txs\beta}{\mu_0 \abs{\alpha} q_s^2}} \\
\lambda_\gl(T) &= \lambda_\gl(0) \frac{1}{\sqrt{1-\frac{T}{\Tcrit}}}
}
\end{formula}
\begin{formula}{first}
\desc{First Ginzburg-Landau Equation}{}{$\xi_\gl$ \fqEqRef{cm:sc:gl:coherence_length}, $\lambda_\gl$ \fqEqRef{cm:sc:gl:penetration_depth}}
\desc{First Ginzburg-Landau Equation}{}{$\xi_\gl$ \fRef{cm:sc:gl:coherence_length}, $\lambda_\gl$ \fRef{cm:sc:gl:penetration_depth}}
\desc[german]{Erste Ginzburg-Landau Gleichung}{}{}
\eq{\alpha\Psi + \beta\abs{\Psi}^2 \Psi + \frac{1}{2m} (-i\hbar \Grad + 2e\vec{A})^2\Psi = 0}
\end{formula}
\begin{formula}{second}
\desc{Second Ginzburg-Landau Equation}{}{}
\desc[german]{Zweite Ginzburg-Landau Gleichung}{}{}
\eq{\vec{j_\ssc} = \frac{ie\hbar}{m}(\Psi^*\Grad\Psi - \Psi\Grad\Psi^*) - \frac{4e^2}{m}\abs{\Psi}^2 \vec{A}}
\eq{\vec{j_\txs} = \frac{ie\hbar}{m}(\Psi^*\Grad\Psi - \Psi\Grad\Psi^*) - \frac{4e^2}{m}\abs{\Psi}^2 \vec{A}}
\end{formula}
\TODO{proximity effect}
\Subsection[
@ -184,7 +227,7 @@
\end{formula}
\begin{formula}{bogoliubov-valatin}
\desc{Bogoliubov-Valatin transformation}{Diagonalization of the \fqEqRef{cm:sc:micro:bcs:hamiltonian} to derive excitation energies}{}
\desc{Bogoliubov-Valatin transformation}{Diagonalization of the \fRef{cm:sc:micro:bcs:hamiltonian} to derive excitation energies}{}
\desc[german]{Bogoliubov-Valatin transformation}{}{}
\eq{
\hat{H}_\BCS - N\mu = \sum_\veck \big[\xi_\veck - E_\veck + \Delta_\veck g_\veck^*\big] + \sum_\veck \big[E_\veck a_\veck^\dagger a_\veck + E_\veck \beta_{-\veck}^\dagger \beta_{-\veck}\big]
@ -196,3 +239,10 @@
\desc[german]{}{}{}
\eq{\Delta_\veck^* = -\sum_\veck^+\prime V_{\veck,\veck^\prime} \frac{\Delta_{\veck^\prime}}{2E_\veck} \tanh \left(\frac{E_{\veck^\prime}}{2\kB T}\right)}
\end{formula}
\begin{formula}{tcrit_temp}
\desc{Temperatur dependance of the crictial temperature}{}{}
\desc[german]{Temperaturabhängigkeit der kritischen Temperatur}{}{}
\eq{ \Bcth(T) = \Bcth(0) \left[1- \left(\frac{t}{T_\txc}\right) \right] }
\TODO{empirical relation, relate to BCS}
\end{formula}

View File

@ -84,6 +84,15 @@
\ger{\GT{misc}}
]{misc}
\begin{formula}{vdw_material}
\desc{Van-der-Waals material}{2D materials}{}
\desc[german]{Van-der-Waals Material}{2D Materialien}{}
\ttxt{\eng{
Materials consiting of multiple 2D-layers held together by Van-der-Waals forces.
}\ger{
Aus mehreren 2D-Schichten bestehende Materialien, die durch Van-der-Waals Kräfte zusammengehalten werden.
}}
\end{formula}
\begin{formula}{work_function}

View File

@ -3,7 +3,7 @@
\ger{Halbleiter}
]{semic}
\begin{formula}{types}
\desc{Intrinsic/extrinsic}{}{$n,p$ \fqEqRef{cm:semic:charge_density_eq}}
\desc{Intrinsic/extrinsic}{}{$n,p$ \fRef{cm:semic:charge_density_eq}}
\desc[german]{Intrinsisch/Extrinsisch}{}{}
\ttxt{
\eng{
@ -89,7 +89,7 @@
\end{formula}
\begin{bigformula}{schottky_barrier}
\desc{Schottky barrier}{Rectifying \fqEqRef{cm:sc:junctions:metal-sc}}{}
\desc{Schottky barrier}{Rectifying \fRef{cm:sc:junctions:metal-sc}}{}
% \desc[german]{}{}{}
\centering
\resizebox{0.49\textwidth}{!}{\input{img/cm/sc_junction_metal_n_sc_separate.tex}}
@ -145,7 +145,7 @@
\eng[free_X]{for free Excitons}
\ger[free_X]{für freie Exzitons}
\begin{formula}{rydberg}
\desc{Exciton Rydberg energy}{\gt{free_X}}{$R_\txH$ \fqEqRef{qm:h:rydberg_energy}}
\desc{Exciton Rydberg energy}{\gt{free_X}}{$R_\txH$ \fRef{qm:h:rydberg_energy}}
\desc[german]{}{}{}
\eq{
E(n) = - \left(\frac{\mu}{m_0\epsilon_r^2}\right) R_\txH \frac{1}{n^2}

View File

@ -21,12 +21,12 @@
\desc[german]{Raman-Spektroskopie}{}{}
\begin{minipagetable}{raman}
\tentry{application}{
\eng{Vibrational modes, Crystal structure, Doping, Band Gaps, Layer thickness in \fqEqRef{cm:misc:vdw_material}}
\ger{Vibrationsmoden, Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fqEqRef{cm:misc:vdw_material}}
\eng{Vibrational modes, Crystal structure, Doping, Band Gaps, Layer thickness in \fRef{cm:misc:vdw_material}}
\ger{Vibrationsmoden, Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fRef{cm:misc:vdw_material}}
}
\tentry{how}{
\eng{Monochromatic light (\fqEqRef{Laser}) shines on sample, inelastic scattering because of rotation-, vibration-, phonon and spinflip-processes, plot spectrum as shift of the laser light (in \si{\per\cm})}
\ger{Monochromatisches Licht (\fqEqRef{Laser}) bestrahlt Probe, inelastische Streuung durch Rotations-, Schwingungs-, Phonon und Spin-Flip-Prozesse, plotte Spektrum als Verschiebung gegen das Laser Licht (in \si{\per\cm}) }
\eng{Monochromatic light (\fRef{Laser}) shines on sample, inelastic scattering because of rotation-, vibration-, phonon and spinflip-processes, plot spectrum as shift of the laser light (in \si{\per\cm})}
\ger{Monochromatisches Licht (\fRef{Laser}) bestrahlt Probe, inelastische Streuung durch Rotations-, Schwingungs-, Phonon und Spin-Flip-Prozesse, plotte Spektrum als Verschiebung gegen das Laser Licht (in \si{\per\cm}) }
}
\end{minipagetable}
\begin{minipage}{0.45\textwidth}
@ -44,12 +44,12 @@
\desc[german]{Photolumeszenz-Spektroskopie}{}{}
\begin{minipagetable}{pl}
\tentry{application}{
\eng{Crystal structure, Doping, Band Gaps, Layer thickness in \fqEqRef{cm:misc:vdw_material}}
\ger{Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fqEqRef{cm:misc:vdw_material}}
\eng{Crystal structure, Doping, Band Gaps, Layer thickness in \fRef{cm:misc:vdw_material}}
\ger{Kristallstruktur, Dotierung, Bandlücke, Schichtdicke im \fRef{cm:misc:vdw_material}}
}
\tentry{how}{
\eng{Monochromatic light (\fqEqRef{Laser}) shines on sample, electrons are excited, relax to the conduction band minimum and finally accross the band gap under photon emission}
\ger{Monochromatisches Licht (\fqEqRef{Laser}) bestrahlt Probe, Elektronen werden angeregt und relaxieren in das Leitungsband-Minimum und schließlich über die Bandlücke unter Photonemission}
\eng{Monochromatic light (\fRef{Laser}) shines on sample, electrons are excited, relax to the conduction band minimum and finally accross the band gap under photon emission}
\ger{Monochromatisches Licht (\fRef{Laser}) bestrahlt Probe, Elektronen werden angeregt und relaxieren in das Leitungsband-Minimum und schließlich über die Bandlücke unter Photonemission}
}
\end{minipagetable}
\begin{minipage}{0.45\textwidth}

View File

@ -3,12 +3,12 @@
% \ger{}
]{ad}
\begin{formula}{hamiltonian}
\desc{Electron Hamiltonian}{}{$\hat{T}$ \fqEqRef{comp:est:kinetic_energy}, $\hat{V}$ \fqEqRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\desc{Electron Hamiltonian}{}{$\hat{T}$ \fRef{comp:est:kinetic_energy}, $\hat{V}$ \fRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\desc[german]{Hamiltonian der Elektronen}{}{}
\eq{\hat{H}_\txe = \hat{T}_\txe + V_{\txe \leftrightarrow \txe} + V_{\txn \leftrightarrow \txe}}
\end{formula}
\begin{formula}{ansatz}
\desc{Wave function ansatz}{}{$\psi_\text{en}^n$ eigenstate $n$ of \fqEqRef{comp:est:hamiltonian}, $\psi_\txe^i$ eigenstate $i$ of \fqEqRef{comp:ad:bo:hamiltonian}, $\vecr,\vecR$ electron/nucleus positions, $\sigma$ electron spin, $c^{ni}$ coefficients}
\desc{Wave function ansatz}{}{$\psi_\text{en}^n$ eigenstate $n$ of \fRef{comp:est:hamiltonian}, $\psi_\txe^i$ eigenstate $i$ of \fRef{comp:ad:hamiltonian}, $\vecr,\vecR$ electron/nucleus positions, $\sigma$ electron spin, $c^{ni}$ coefficients}
\desc[german]{Wellenfunktion Ansatz}{}{}
\eq{\psi_\text{en}^n\big(\{\vecr,\sigma\},\{\vecR\}\big) = \sum_i c^{ni}\big(\{\vecR\}\big)\, \psi_\txe^i\big(\{\vecr,\sigma\},\{\vecR\}\big)}
\end{formula}
@ -34,30 +34,30 @@
\ger{Born-Oppenheimer Näherung}
]{bo}
\begin{formula}{adiabatic_approx}
\desc{Adiabatic approximation}{Electronic configuration remains the same when atoms move (\absRef{adiabatic_theorem})}{$\Lambda_{ij}$ \fqEqRef{comp:ad:coupling_operator}}
\desc{Adiabatic approximation}{Electronic configuration remains the same when atoms move (\absRef{adiabatic_theorem})}{$\Lambda_{ij}$ \fRef{comp:ad:coupling_operator}}
\desc[german]{Adiabatische Näherung}{Elektronenkonfiguration bleibt gleich bei Bewegung der Atome gleichl (\absRef{adiabatic_theorem})}{}
\eq{\Lambda_{ij} = 0 \quad \text{\GT{for} } i\neq j}
\end{formula}
\begin{formula}{approx}
\desc{Born-Oppenheimer approximation}{Electrons are not influenced by the movement of the atoms}{\GT{see} \fqEqRef{comp:ad:equation}, $V_{\txn \leftrightarrow \txn} = \const$ absorbed into $E_\txe^j$}
\desc{Born-Oppenheimer approximation}{Electrons are not influenced by the movement of the atoms}{\GT{see} \fRef{comp:ad:equation}, $V_{\txn \leftrightarrow \txn} = \const$ absorbed into $E_\txe^j$}
\desc[german]{Born-Oppenheimer Näherung}{Elektronen werden nicht durch die Bewegung der Atome beeinflusst}{}
\begin{gather}
\Lambda_{ij} = 0
\shortintertext{\fqEqRef{comp:ad:bo:equation} \Rightarrow}
% \shortintertext{\fRef{comp:ad:bo:equation} \Rightarrow}
\left[E_e^i\big(\{\vecR\}\big) + \hat{T}_\txn - E^n\right]c^{ni}\big(\{\vecR\}\big) = 0
\end{gather}
\end{formula}
\begin{formula}{surface}
\desc{Born-Oppenheimer surface}{Potential energy surface (PES)\\ The nuclei follow Newtons equations of motion on the BO surface if the system is in the electronic ground state}{$E_\txe^0, \psi_\txe^0$ lowest eigenvalue/eigenstate of \fqEqRef{comp:ad:bo:hamiltonian}}
\desc[german]{Born-Oppenheimer Potentialhyperfläche}{Die Nukleonen Newtons klassichen Bewegungsgleichungen auf der BO Hyperfläche wenn das System im elektronischen Grundzustand ist}{$E_\txe^0, \psi_\txe^0$ niedrigster Eigenwert/Eigenzustand vom \fqEqRef{comp:ad:bo:hamiltonian}}
\desc{Born-Oppenheimer surface}{Potential energy surface (PES)\\ The nuclei follow Newtons equations of motion on the BO surface if the system is in the electronic ground state}{$E_\txe^0, \psi_\txe^0$ lowest eigenvalue/eigenstate of \fRef{comp:ad:hamiltonian}}
\desc[german]{Born-Oppenheimer Potentialhyperfläche}{Die Nukleonen Newtons klassichen Bewegungsgleichungen auf der BO Hyperfläche wenn das System im elektronischen Grundzustand ist}{$E_\txe^0, \psi_\txe^0$ niedrigster Eigenwert/Eigenzustand vom \fRef{comp:ad:hamiltonian}}
\begin{gather}
V_\text{BO}\big(\{\vecR\}\big) = E_\txe^0\big(\{\vecR\}\big) \\
M_I \ddot{\vecR}_I(t) = - \Grad_{\vecR_I} V_\text{BO}\big(\{\vecR(t)\}\big)
\end{gather}
\end{formula}
\begin{formula}{ansatz}
\desc{Ansatz for \secEqRef{approx}}{Product of single electronic and single nuclear state}{}
\desc[german]{Ansatz für \secEqRef{approx}}{Produkt aus einem einzelnen elektronischen Zustand und einem Nukleus-Zustand}{}
\desc{Ansatz for \fRef{::approx}}{Product of single electronic and single nuclear state}{}
\desc[german]{Ansatz für \fRef{::approx}}{Produkt aus einem einzelnen elektronischen Zustand und einem Nukleus-Zustand}{}
\eq{
\psi_\text{BO} = c^{n0} \big(\{\vecR\}\big) \,\psi_\txe^0 \big(\{\vecr,\sigma\},\{\vecR\}\big)
}
@ -88,10 +88,14 @@
\begin{formula}{forces}
\desc{Forces}{}{}
\desc[german]{Kräfte}{}{}
\eq{\vec{F}_I = -\Grad_{\vecR_I} E \explOverEq{\fqEqRef{qm:se:hellmann_feynmann}} -\Braket{\psi(\vecR_I) | \left(\Grad_{\vecR_I} \hat{H}(\vecR_I)\right) | \psi(\vecR) }}
\eq{
\vec{F}_I = -\Grad_{\vecR_I} E
\explOverEq{\fRef{qm:se:hellmann_feynmann}}
-\Braket{\psi(\vecR_I) | \left(\Grad_{\vecR_I} \hat{H}(\vecR_I)\right) | \psi(\vecR)}
}
\end{formula}
\begin{formula}{ionic_cycle}
\desc{Ionic cycle}{\fqEqRef{comp:est:dft:ks:scf} for geometry optimization}{}
\desc{Ionic cycle}{\fRef{comp:est:dft:ks:scf} for geometry optimization}{}
\desc[german]{}{}{}
\ttxt{
\eng{
@ -99,11 +103,11 @@
\item Initial guess for $n(\vecr)$
\begin{enumerate}
\item Calculate effective potential $V_\text{eff}$
\item Solve \fqEqRef{comp:est:dft:ks:equation}
\item Solve \fRef{comp:est:dft:ks:equation}
\item Calculate density $n(\vecr)$
\item Repeat b-d until self consistent
\end{enumerate}
\item Calculate \secEqRef{forces}
\item Calculate \fRef{:::forces}
\item If $F\neq0$, get new geometry by interpolating $R$ and restart
\end{enumerate}
}
@ -146,8 +150,8 @@
\end{formula}
\begin{formula}{harmonic_approx}
\desc{Harmonic approximation}{Hessian matrix, 2nd order Taylor expansion of the \fqEqRef{comp:ad:bo:surface} around every nucleus position $\vecR_I^0$}{$\Phi_{IJ}^{\mu\nu}$ \secEqRef{force_constant_matrix}, $s$ displacement}
\desc[german]{Harmonische Näherung}{Hesse matrix, Taylor Entwicklung der \fqEqRef{comp:ad:bo:surface} in zweiter Oddnung um Atomposition $\vecR_I^0$}{}
\desc{Harmonic approximation}{Hessian matrix, 2nd order Taylor expansion of the \fRef{comp:ad:bo:surface} around every nucleus position $\vecR_I^0$}{$\Phi_{IJ}^{\mu\nu}$ \fRef{::force_constant_matrix}, $s$ displacement}
\desc[german]{Harmonische Näherung}{Hesse matrix, Taylor Entwicklung der \fRef{comp:ad:bo:surface} in zweiter Oddnung um Atomposition $\vecR_I^0$}{}
\eq{ V^\text{BO}(\{\vecR_I\}) \approx V^\text{BO}(\{\vecR_I^0\}) + \frac{1}{2} \sum_{I,J}^N \sum_{\mu,\nu}^3 s_I^\mu s_J^\nu \Phi_{IJ}^{\mu\nu} }
\end{formula}
@ -166,13 +170,13 @@
\eq{\Phi_{IJ}^{\mu\nu} \approx \frac{\vecF_I^\mu(\vecR_1^0, \dots, \vecR_J^0+\Delta s_J^\nu,\dots, \vecR_N^0)}{\Delta s_J^\nu}}
\end{formula}
\begin{formula}{dynamical_matrix}
\desc{Dynamical matrix}{Mass reduced \absRef[fourier transform]{fourier_transform} of the \fqEqRef{comp:ad:latvib:force_constant_matrix}}{$\vec{L}$ vector from origin to unit cell $n$, $\alpha/\beta$ atom index in th unit cell, $\vecq$ \qtyRef{wave_vector}, $\Phi$ \fqEqRef{comp:ad:latvib:force_constant_matrix}, $M$ \qtyRef{mass}}
\desc{Dynamical matrix}{Mass reduced \absRef[fourier transform]{fourier_transform} of the \fRef{comp:ad:latvib:force_constant_matrix}}{$\vec{L}$ vector from origin to unit cell $n$, $\alpha/\beta$ atom index in th unit cell, $\vecq$ \qtyRef{wave_vector}, $\Phi$ \fRef{comp:ad:latvib:force_constant_matrix}, $M$ \qtyRef{mass}}
% \desc[german]{}{}{}
\eq{D_{\alpha\beta}^{\mu\nu} = \frac{1}{\sqrt{M_\alpha M_\beta}} \sum_{n^\prime} \Phi_{\alpha\beta}^{\mu\nu}(n-n^\prime) \e^{\I \vec{q}(\vec{L}_n - \vec{L}_{n^\prime})}}
\end{formula}
\begin{formula}{eigenvalue_equation}
\desc{Eigenvalue equation}{For a periodic crystal, reduces number of equations from $3N_p\times N$ to $3N_p$. Eigenvalues represent phonon band structure.}{$N_p$ number of atoms per unit cell, $\vecc$ displacement amplitudes, $\vecq$ \qtyRef{wave_vector}, $\mat{D}$ \secEqRef{dynamical_matrix}}
\desc{Eigenvalue equation}{For a periodic crystal, reduces number of equations from $3N_p\times N$ to $3N_p$. Eigenvalues represent phonon band structure.}{$N_p$ number of atoms per unit cell, $\vecc$ displacement amplitudes, $\vecq$ \qtyRef{wave_vector}, $\mat{D}$ \fRef{::dynamical_matrix}}
\desc[german]{Eigenwertgleichung}{}{}
\eq{\omega^2 \vecc(\vecq) = \mat{D}(\vecq) \vecc(\vecq) }
\end{formula}
@ -186,7 +190,7 @@
\desc{Quasi-harmonic approximation}{}{}
\desc[german]{}{}{}
\ttxt{\eng{
Include thermal expansion by assuming \fqEqRef{comp:ad:bo:surface} is volume dependant.
Include thermal expansion by assuming \fRef{comp:ad:bo:surface} is volume dependant.
}}
\end{formula}
@ -194,7 +198,7 @@
\desc{Pertubative approaches}{}{}
% \desc[german]{Störungs}{}{}
\ttxt{\eng{
Expand \fqEqRef{comp:ad:latvib:force_constant_matrix} to third order.
Expand \fRef{comp:ad:latvib:force_constant_matrix} to third order.
}}
\end{formula}
@ -244,7 +248,7 @@
\ttxt{\eng{
\begin{enumerate}
\item Calculate electronic ground state of current nucleui configuration $\{\vecR(t)\}$ with \abbrRef{ksdft}
\item \hyperref[f:comp:ad:opt:forces]{Calculate forces} from the \fqEqRef{comp:ad:bo:surface}
\item \fRef[Calculate forces]{comp:ad:opt:forces} from the \fRef{comp:ad:bo:surface}
\item Update positions and velocities
\end{enumerate}
\begin{itemize}
@ -375,7 +379,7 @@
\end{formula}
\begin{formula}{vdos} \abbrLabel{VDOS}
\desc{Vibrational density of states (VDOS)}{}{$S_{v_i}$ velocity \secEqRef{spectral_density} of particle $I$}
\desc{Vibrational density of states (VDOS)}{}{$S_{v_i}$ velocity \fRef{::spectral_density} of particle $I$}
\desc[german]{Vibrationszustandsdicht (VDOS)}{}{}
\eq{g(\omega) \sim \sum_{I=1}^N M_I S_{v_I}(\omega)}
\end{formula}

View File

@ -14,7 +14,7 @@
\eq{\hat{V}_{i \leftrightarrow j} &= -\sum_{k,l} \frac{Z_i Z_j e^2}{\abs{\vecr_k - \vecr_l}}}
\end{formula}
\begin{formula}{hamiltonian}
\desc{Electronic structure Hamiltonian}{}{$\hat{T}$ \fqEqRef{comp:est:kinetic_energy}, $\hat{V}$ \fqEqRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\desc{Electronic structure Hamiltonian}{}{$\hat{T}$ \fRef{comp:est:kinetic_energy}, $\hat{V}$ \fRef{comp:est:potential_energy}, $\txe$ \GT{electrons}, $\txn$ \GT{nucleons}}
\eq{\hat{H} &= \hat{T}_\txe + \hat{T}_\txn + V_{\txe \leftrightarrow \txe} + V_{\txn \leftrightarrow \txe} + V_{\txn \leftrightarrow \txn}}
\end{formula}
\begin{formula}{mean_field}
@ -64,8 +64,8 @@
\begin{ttext}
\eng{
\begin{itemize}
\item Assumes wave functions are \fqEqRef{qm:other:slater_det} \Rightarrow Approximation
\item \fqEqRef{comp:est:mean_field} theory obeying the Pauli principle
\item Assumes wave functions are \fRef{qm:other:slater_det} \Rightarrow Approximation
\item \fRef{comp:est:mean_field} theory obeying the Pauli principle
\item Self-interaction free: Self interaction is cancelled out by the Fock-term
\end{itemize}
}
@ -76,14 +76,14 @@
$\varphi_\xi$ single particle wavefunction of $\xi$th orbital,
$\hat{T}$ kinetic electron energy,
$\hat{V}_{\text{en}}$ electron-nucleus attraction,
$\hat{V}_{\text{HF}}$ \fqEqRef{comp:dft:hf:potential},
$h\hat{V}_{\text{HF}}$ \fRef{comp:est:dft:hf:potential},
$x = \vecr,\sigma$ position and spin
}
\desc[german]{Hartree-Fock Gleichung}{}{
$\varphi_\xi$ ein-Teilchen Wellenfunktion des $\xi$-ten Orbitals,
$\hat{T}$ kinetische Energie der Elektronen,
$\hat{V}_{\text{en}}$ Electron-Kern Anziehung,
$\hat{V}_{\text{HF}}$ \fqEqRef{comp:dft:hf:potential},
$\hat{V}_{\text{HF}}$ \fRef{comp:est:dft:hf:potential},
$x = \vecr,\sigma$ Position and Spin
}
\eq{
@ -158,7 +158,7 @@
\eq{n(\vecr) = \sum_{i=1}^N \abs{\phi_i(\vecr)}^2}
\end{formula}
\begin{formula}{functional}
\desc{Kohn-Sham functional}{}{$T_\text{KS}$ kinetic enery, $V_\text{ext}$ external potential, $E_\txH$ \hyperref[f:comp:est:dft:hf:potential]{Hartree term}, $E_\text{XC}$ \fqEqRef{comp:est:dft:xc:xc}}
\desc{Kohn-Sham functional}{}{$T_\text{KS}$ kinetic enery, $V_\text{ext}$ external potential, $E_\txH$ \fRef[Hartree term]{comp:est:dft:hf:potential}, $E_\text{XC}$ \fRef{comp:est:dft:xc:xc}}
\desc[german]{Kohn-Sham Funktional}{}{}
\eq{E_\text{KS}[n(\vecr)] = T_\text{KS}[n(\vecr)] + V_\text{ext}[n(\vecr)] + E_\text{H}[n(\vecr)] + E_\text{XC}[n(\vecr)] }
\end{formula}
@ -186,7 +186,7 @@
\begin{enumerate}
\item Initial guess for $n(\vecr)$
\item Calculate effective potential $V_\text{eff}$
\item Solve \fqEqRef{comp:est:dft:ks:equation}
\item Solve \fRef{comp:est:dft:ks:equation}
\item Calculate density $n(\vecr)$
\item Repeat 2-4 until self consistent
\end{enumerate}
@ -212,14 +212,14 @@
}}
\end{formula}
\begin{formula}{lda}
\desc{Local density approximation (LDA)}{Simplest DFT functionals}{$\epsilon_\txX$ calculated exchange energy from \hyperref[f:comp:qmb:models:heg]{HEG model}, $\epsilon_\txC$ correlation energy calculated with \fqSecRef{comp:qmb:methods:qmonte-carlo}}
\desc{Local density approximation (LDA)}{Simplest DFT functionals}{$\epsilon_\txX$ calculated exchange energy from \fRef[HEG model]{comp:qmb:models:heg}, $\epsilon_\txC$ correlation energy calculated with \fRef{comp:qmb:methods:qmonte-carlo}}
\desc[german]{}{}{}
\abbrLabel{LDA}
\eq{E_\text{XC}^\text{LDA}[n(\vecr)] = \int \d^3r\,n(r) \Big[\epsilon_\txX[n(\vecr)] + \epsilon_\txC[n(\vecr)]\Big]}
\end{formula}
\begin{formula}{gga}
\desc{Generalized gradient approximation (GGA)}{}{$\epsilon_\txX$ calculated exchange energy from \hyperref[f:comp:qmb:models:heg]{HEG model}, $F_\text{XC}$ function containing exchange-correlation energy dependency on $n$ and $\Grad n$}
\desc{Generalized gradient approximation (GGA)}{}{$\epsilon_\txX$ calculated exchange energy from \fRef[HEG model]{comp:qmb:models:heg}, $F_\text{XC}$ function containing exchange-correlation energy dependency on $n$ and $\Grad n$}
\desc[german]{}{}{}
\abbrLabel{GGA}
\eq{E_\text{XC}^\text{GGA}[n(\vecr)] = \int \d^3r\,n(r) \epsilon_\txX[n(\vecr)]\,F_\text{XC}[n(\vecr), \Grad n(\vecr)]}
@ -232,7 +232,7 @@
\desc[german]{Hybride Funktionale}{}{$\alpha$ mixing paramter, $E_\txX$ exchange energy, $E_\txC$ correlation energy}
\eq{\alpha E_\txX^\text{HF} + (1-\alpha) E_\txX^\text{GGA} + E_\txC^\text{GGA}}
\ttxt{\eng{
Include \hyperref[f:comp:dft:hf:potential]{Fock term} (exact exchange) in other functional, like \abbrRef{gga}. Computationally expensive
Include \fRef[Fock term]{comp:est:dft:hf:potential} (exact exchange) in other functional, like \abbrRef{gga}. Computationally expensive
}}
\end{formula}
@ -246,7 +246,7 @@
\end{gather}
\separateEntries
\ttxt{\eng{
Use \abbrRef{gga} and \hyperref[comp:est:dft:hf:potential]{Fock} exchange for short ranges (SR) and only \abbrRef{GGA} for long ranges (LR).
Use \abbrRef{gga} and \fRef[Fock]{comp:est:dft:hf:potential} exchange for short ranges (SR) and only \abbrRef{GGA} for long ranges (LR).
\abbrRef{GGA} correlation is always used. Useful when dielectric screening reduces long range interactions, saves computational cost.
}}
\end{formula}
@ -255,7 +255,7 @@
\desc{Comparison of DFT functionals}{}{}
\desc[german]{Vergleich von DFT Funktionalen}{}{}
% \begin{tabular}{l|c}
% \hyperref[f:comp:est:dft:hf:potential]{Hartree-Fock} & only exchange, no correlation \Rightarrow upper bound of GS energy \\
% \fRef[Hartree-Fock]{comp:est:dft:hf:potential} & only exchange, no correlation \Rightarrow upper bound of GS energy \\
% \abbrRef{lda} & understimates e repulsion \Rightarrow Overbinding \\
% \abbrRef{gga} & underestimate band gap \\
% hybrid & underestimate band gap
@ -374,7 +374,7 @@
\ger{Basis-Sets}
]{basis}
\begin{formula}{plane_wave}
\desc{Plane wave basis}{Plane wave ansatz in \fqEqRef{comp:est:dft:ks:equation}\\Good for periodic structures, allows computation parallelization over a sample points in the \abbrRef{brillouin_zone}}{}
\desc{Plane wave basis}{Plane wave ansatz in \fRef{comp:est:dft:ks:equation}\\Good for periodic structures, allows computation parallelization over a sample points in the \abbrRef{brillouin_zone}}{}
\desc[german]{Ebene Wellen als Basis}{}{}
\eq{\sum_{\vecG^\prime} \left[\frac{\hbar^2 \abs{\vecG+\veck}^2}{2m} \delta_{\vecG,\vecG^\prime} + V_\text{eff}(\vecG-\vecG^\prime)\right] c_{i,\veck,\vecG^\prime} = \epsilon_{i,\veck} c_{i,\veck,\vecG}}
\end{formula}

View File

@ -48,8 +48,8 @@
\ger{Lineare Regression}
]{linear}
\begin{formula}{eq}
\desc{Linear regression}{Fits the data under the assumption of \hyperref[f:math:pt:distributions:cont:normal]{normally distributed errors}}{$\mat{x}\in\R^{N\times M}$ input data, $\mat{y}\in\R^{N\times L}$ output data, $\mat{b}$ bias, $\vec{\beta}$ weights, $N$ samples, $M$ features, $L$ output variables}
\desc[german]{Lineare Regression}{Fitted Daten unter der Annahme \hyperref[f:math:pt:distributions:cont:normal]{normalverteilter Fehler}}{}
\desc{Linear regression}{Fits the data under the assumption of \fRef[normally distributed errors]{math:pt:distributions:cont:normal}}{$\mat{x}\in\R^{N\times M}$ input data, $\mat{y}\in\R^{N\times L}$ output data, $\mat{b}$ bias, $\vec{\beta}$ weights, $N$ samples, $M$ features, $L$ output variables}
\desc[german]{Lineare Regression}{Fitted Daten unter der Annahme \fRef[normalverteilter Fehler]{math:pt:distributions:cont:normal}}{}
\eq{\mat{y} = \mat{\epsilon} + \mat{x} \cdot \vec{\beta}}
\end{formula}
\begin{formula}{design_matrix}
@ -60,13 +60,13 @@
}
\end{formula}
\begin{formula}{scalar_bias}
\desc{Linear regression with scalar bias}{Using the design matrix, the scalar is absorbed into the weight vector}{$\mat{y}$ output data, $\mat{X}$ \fqEqRef{comp:ml:reg:design_matrix}, $\vec{\beta}$ weights}
\desc{Linear regression with scalar bias}{Using the design matrix, the scalar is absorbed into the weight vector}{$\mat{y}$ output data, $\mat{X}$ \fRef{::design_matrix}, $\vec{\beta}$ weights}
\desc[german]{Lineare Regression mit skalarem Bias}{Durch die Designmatrix wird der Bias in den Gewichtsvektor absorbiert}{}
\eq{\mat{y} = \mat{X} \cdot \vec{\beta}}
\end{formula}
\begin{formula}{normal_equation}
\desc{Normal equation}{Solves \fqEqRef{comp:ml:reg:linear:scalar_bias} with \fqEqRef{comp:ml:performance:mse}}{$\mat{y}$ output data, $\mat{X}$ \fqEqRef{comp:ml:reg:linear:design_matrix}, $\vec{\beta}$ weights}
\desc[german]{Normalengleichung}{Löst \fqEqRef{comp:ml:reg:linear:scalar_bias} mit \fqEqRef{comp:ml:performance:mse}}{}
\desc{Normal equation}{Solves \fRef{comp:ml:reg:linear:scalar_bias} with \fRef{comp:ml:performance:mean_square_error}}{$\mat{y}$ output data, $\mat{X}$ \fRef{::design_matrix}, $\vec{\beta}$ weights}
\desc[german]{Normalengleichung}{Löst \fRef{comp:ml:reg:linear:scalar_bias} mit \fRef{comp:ml:performance:mean_square_error}}{}
\eq{\vec{\beta} = \left(\mat{X}^\T \mat{X}\right)^{-1} \mat{X}^T \mat{y}}
\end{formula}
@ -112,7 +112,7 @@
\desc{Bayesian linear regression}{}{}
\desc[german]{Bayes'sche lineare Regression}{}{}
\ttxt{\eng{
Assume a \fqEqRef{math:pt:bayesian:prior} distribution over the weights.
Assume a \fRef{math:pt:bayesian:prior} distribution over the weights.
Offers uncertainties in addition to the predictions.
}}
\end{formula}
@ -123,16 +123,16 @@
\ttxt{\eng{
Applies a L2 norm penalty on the weights.
This ensures unimportant features are less regarded and do not encode noise.
\\Corresponds to assuming a \fqEqRef{math:pt:bayesian:prior} \absRef{multivariate_normal_distribution} with $\vec{\mu} = 0$ and independent components ($\mat{\Sigma}$) for the weights.
\\Corresponds to assuming a \fRef{math:pt:bayesian:prior} \absRef{multivariate_normal_distribution} with $\vec{\mu} = 0$ and independent components ($\mat{\Sigma}$) for the weights.
}\ger{
Reduziert Gewichte mit der L2-Norm.
Dadurch werden unwichtige Features nicht berücksichtigt (kleines Gewicht) und enkodieren nicht Noise.
\\Entspricht der Annahme einer \absRef[Normalverteilung]{multivariate_normal_distribution} mit $\vec{\mu}=0$ und unanhängingen Komponenten ($\mat{Sigma}$ diagonaol) der die Gewichte als \fqEqRef{math:pt:bayesian:prior}.
\\Entspricht der Annahme einer \absRef[Normalverteilung]{multivariate_normal_distribution} mit $\vec{\mu}=0$ und unanhängingen Komponenten ($\mat{Sigma}$ diagonaol) der die Gewichte als \fRef{math:pt:bayesian:prior}.
}}
\end{formula}
\begin{formula}{ridge_weights}
\desc{Optimal weights}{for ridge regression}{$\lambda = \frac{\sigma^2}{\xi^2}$ shrinkage parameter, $\xi$ \absRef{variance} of the gaussian \fqEqRef{math:pt:bayesian:prior}, $\sigma$ \absRef{variance} of the gaussian likelihood of the data}
\desc{Optimal weights}{for ridge regression}{$\lambda = \frac{\sigma^2}{\xi^2}$ shrinkage parameter, $\xi$ \absRef{variance} of the gaussian \fRef{math:pt:bayesian:prior}, $\sigma$ \absRef{variance} of the gaussian likelihood of the data}
\desc[german]{Optimale Gewichte}{für Ridge Regression}{}
\eq{\vec{\beta} = \left(\mat{X}^\T \mat{X} + \lambda \mathcal{1} \right)^{-1} \mat{X}^\T \vecy}
\TODO{Does this only work for gaussian data?}
@ -143,11 +143,11 @@
\desc[german]{Lasso Regression}{}{}
\ttxt{\eng{
Applies a L1 norm penalty on the weights, which means features can be disregarded entirely.
\\Corresponds to assuming a \absRef{laplace_distribution} for the weights as \fqEqRef{math:pt:bayesian:prior}.
\\Corresponds to assuming a \absRef{laplace_distribution} for the weights as \fRef{math:pt:bayesian:prior}.
}\ger{
Reduziert Gewichte mit der L1-Norm.
Unwichtige Features werden reduziert und können auch ganz vernachlässigt werden und enkodieren nicht Noise.
\\Entspricht der Annahme einer \absRef[Laplace-Verteilung]{laplace_distribution} der die Gewichte als \fqEqRef{math:pt:bayesian:prior}.
\\Entspricht der Annahme einer \absRef[Laplace-Verteilung]{laplace_distribution} der die Gewichte als \fRef{math:pt:bayesian:prior}.
}}
\end{formula}
@ -158,7 +158,7 @@
% \desc[german]{}{}{}
\ttxt{\eng{
Gaussian process: A distribtuion over functions that produce jointly gaussian distribution.
Multivariate normal distribution like \secEqRef{bayesian}, except that $\vec{\mu}$ and $\mat{\Sigma}$ are functions.
Multivariate normal distribution like \fRef{:::linear_regression}, except that $\vec{\mu}$ and $\mat{\Sigma}$ are functions.
GPR: non-parametric Bayesion regressor, does not assume fixed functional form for the underlying data, instead, the data determines the functional shape,
with predictions governed by the covariance structure defined by the kernel (often \abbrRef{radial_basis_function}).
@ -168,7 +168,23 @@
\end{formula}
\TODO{soap}
\begin{formula}{soap}
\desc{Smooth overlap of atomic atomic positions (SOAP)}{}{}
% \desc[german]{}{}{}
\ttxt{\eng{
Goal: symmetric invariance, smoothness, completeness (completeness not achieved)
\\Gaussian smeared density expanded in \abbrRef{radial_basis_function} and spherical harmonics.
}}
\end{formula}
\begin{formula}{gaussian_approximation_potential}
\desc{Gaussian approximation potential}{Bond-order potential}{$V_\text{rep/attr}$ repulsive / attractive potential}
% \desc[german]{}{}{}
\ttxt{\eng{
Models atomic interactions via a \textit{bond-order} term $b$.
}}
\eq{V_\text{BondOrder}(\vecR_M, \vecR_N) = V_\text{rep}(\vecR_M, \vecR_N) + b_{MNK} V_\text{attr}(\vecR_M, \vecR_N)}
\end{formula}
\Subsection[
\eng{Gradient descent}

View File

@ -53,6 +53,15 @@
}
\end{formula}
\begin{formula}{flux_quantum}
\desc{Flux quantum}{}{}
\desc[german]{Flussquantum}{}{}
\constant{\Phi_0}{def}{
\val{2.067 833 848 \xE{-15}}{\weber=\volt\s=\kg\m^2\per\s^2\ampere}
}
\eq{\Phi_0 = \frac{h}{2e}}
\end{formula}
\begin{formula}{atomic_mass_unit}
\desc{Atomic mass unit}{}{}
\desc[german]{Atomare Massneinheit}{}{}

View File

@ -45,7 +45,7 @@
\end{formula}
\begin{formula}{electric_susceptibility}
\desc{Electric susceptibility}{Describes how polarized a dielectric material becomes when an electric field is applied}{$\epsilon_\txr$ \fqEqRef{ed:el:relative_permittivity}}
\desc{Electric susceptibility}{Describes how polarized a dielectric material becomes when an electric field is applied}{$\epsilon_\txr$ \fRef{ed:el:relative_permittivity}}
\desc[german]{Elektrische Suszeptibilität}{Beschreibt wie stark ein dielektrisches Material polarisiert wird, wenn ein elektrisches Feld angelegt wird}{}
\quantity{\chi_\txe}{}{s}
\eq{

View File

@ -37,8 +37,8 @@
\end{formula}
\begin{formula}{hamiltonian}
\desc{Hamiltonian of a particle in an electromagnetic field}{In the \fqEqRef{ed:em:gauge:coulomb}}{\QtyRef{mass}, $\hat{p}$ \fqEqRef{qm:se:momentum_operator}, \QtyRef{charge}, \QtyRef{magnetic_vector_potential}, \ConstRef{speed_of_light}}
\desc[german]{Hamiltonian eines Teilchens im elektromagnetischen Feld}{In der \fqEqRef{ed:em:gauge:coulomb}}{}
\desc{Hamiltonian of a particle in an electromagnetic field}{In the \fRef{ed:em:gauge:coulomb}}{\QtyRef{mass}, $\hat{p}$ \fRef{qm:se:momentum_operator}, \QtyRef{charge}, \QtyRef{magnetic_vector_potential}, \ConstRef{speed_of_light}}
\desc[german]{Hamiltonian eines Teilchens im elektromagnetischen Feld}{In der \fRef{ed:em:gauge:coulomb}}{}
\eq{
\hat{H} = \frac{1}{2m} \left[\hat{p} \ \frac{e \vec{A}}{c}\right]^2
}

View File

@ -11,8 +11,8 @@
\end{formula}
\begin{formula}{magnetic_flux_density}
\desc{Magnetic flux density}{Defined by \fqEqRef{ed:mag:lorentz}}{$\vec{H}$ \qtyRef{magnetic_field_intensity}, $\vec{M}$ \qtyRef{magnetization}, \ConstRef{magnetic_vacuum_permeability}}
\desc[german]{Magnetische Flussdichte}{Definiert über \fqEqRef{ed:mag:lorentz}}{}
\desc{Magnetic flux density}{Defined by \fRef{ed:mag:lorentz}}{$\vec{H}$ \qtyRef{magnetic_field_intensity}, $\vec{M}$ \qtyRef{magnetization}, \ConstRef{magnetic_vacuum_permeability}}
\desc[german]{Magnetische Flussdichte}{Definiert über \fRef{ed:mag:lorentz}}{}
\quantity{\vec{B}}{\tesla=\volt\s\per\m^2=\newton\per\ampere\m=\kg\per\ampere\s^2}{}
\eq{\vec{B} = \mu_0 (\vec{H}+\vec{M})}
\end{formula}
@ -88,7 +88,7 @@
\end{formula}
\begin{formula}{magnetic_susceptibility}
\desc{Susceptibility}{}{$\mu_\txr$ \fqEqRef{ed:mag:relative_permeability}}
\desc{Susceptibility}{}{$\mu_\txr$ \fRef{ed:mag:relative_permeability}}
\desc[german]{Suszeptibilität}{}{}
\eq{\chi_\txm = \pdv{M}{B} = \mu_\txr - 1}
\end{formula}
@ -101,19 +101,19 @@
\ger{Magnetische Materialien}
]{materials}
\begin{formula}{paramagnetism}
\desc{Paramagnetism}{Magnetic field strengthend in the material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc{Paramagnetism}{Magnetic field strengthend in the material}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Paramagnetismus}{Magnetisches Feld wird im Material verstärkt}{}
\eq{\mu_\txr &> 1 \\ \chi_\txm &> 0}
\end{formula}
\begin{formula}{diamagnetism}
\desc{Diamagnetism}{Magnetic field expelled from material}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc{Diamagnetism}{Magnetic field expelled from material}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Diamagnetismus}{Magnetisches Feld wird aus dem Material gedrängt}{}
\eq{0 < \mu_\txr < 1 \\ -1 < \chi_\txm < 0}
\end{formula}
\begin{formula}{ferromagnetism}
\desc{Ferromagnetism}{Magnetic moments align to external magnetic field and stay aligned when the field is turned off (Remanescence)}{$\mu$ \fqEqRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fqEqRef{ed:mag:magnetic_susceptibility}}
\desc{Ferromagnetism}{Magnetic moments align to external magnetic field and stay aligned when the field is turned off (Remanescence)}{$\mu$ \fRef{ed:mag:magnetic_permeability}, $\chi_\txm$ \fRef{ed:mag:magnetic_susceptibility}}
\desc[german]{Ferromagnetismus}{Magnetische Momente werden am äußeren Feld ausgerichtet und behalten diese ausrichtung auch wenn das Feld abgeschaltet wird (Remanenz)}{}
\eq{
\mu_\txr \gg 1

View File

@ -79,7 +79,7 @@
\begin{formula}{intensity}
\desc{Electromagnetic radiation intensity}{Surface power density}{$S$ \fqEqRef{ed:poynting}}
\desc{Electromagnetic radiation intensity}{Surface power density}{$S$ \fRef{ed:poynting}}
\desc[german]{Elektromagnetische Strahlungsintensität}{Flächenleistungsdichte}{}
\quantity{I}{\watt\per\m^2=\k\per\s^3}{s}
\eq{I = \abs{\braket{S}_t}}

View File

@ -20,7 +20,7 @@
% FORMATING
\usepackage{float} % float barrier
\usepackage{subcaption} % subfigures
\usepackage[hidelinks]{hyperref} % hyperrefs for \fqEqRef, \qtyRef, etc
\usepackage[hidelinks]{hyperref} % hyperrefs for \fRef, \qtyRef, etc
\usepackage[shortlabels]{enumitem} % easily change enum symbols to i), a. etc
\setlist{noitemsep} % no vertical space between items
\setlist[1]{labelindent=\parindent} % < Usually a good idea
@ -87,30 +87,24 @@
\newcommand{\TODO}[1]{{\color{fg-red}TODO:#1}}
\newcommand{\ts}{\textsuperscript}
% Create a text file with relevant labels for vim-completion
\newwrite\labelsFile
\immediate\openout\labelsFile=\jobname.labels.txt
\newcommand\storeLabel[1]{
\immediate\write\labelsFile{#1}%
}
\AtEndDocument{\immediate\closeout\labelsFile}
\input{circuit.tex}
\input{util/macros.tex}
\input{util/math-macros.tex}
\input{util/environments.tex} % requires util/translation.tex to be loaded first
\usepackage{pkg/mqlua}
\usepackage{pkg/mqfqname}
\usepackage{mqlua}
\usepackage{mqfqname}
\usepackage{mqref}
% TRANSLATION
% \usepackage{translations}
\usepackage{pkg/mqtranslation}
\usepackage{mqtranslation}
\input{util/colorscheme.tex}
\input{util/colors.tex} % after colorscheme
\usepackage{pkg/mqconstant}
\usepackage{pkg/mqquantity}
\usepackage{pkg/mqformula}
\usepackage{pkg/mqperiodictable}
\usepackage{mqconstant}
\usepackage{mqquantity}
\usepackage{mqformula}
\usepackage{mqperiodictable}
\title{Formelsammlung}
@ -127,7 +121,7 @@
\input{util/translations.tex}
% \InputOnly{comp}
% \InputOnly{cm}
\Input{math/math}
\Input{math/linalg}

View File

@ -170,7 +170,7 @@
x^{\log(y)} &= y^{\log(x)}
}
\end{formula}
\begin{formula}{intergral}
\begin{formula}{integral}
\desc{Integral of natural logarithm}{}{}
\desc[german]{Integral des natürluchen Logarithmus}{}{}
\eq{
@ -253,7 +253,7 @@
\ger{Liste nützlicher Integrale}
]{list}
% Put links to other integrals here
\fqEqRef{cal:log:integral}
\fRef{math:cal:log:integral}
\begin{formula}{arcfunctions}
\desc{Arcsine, arccosine, arctangent}{}{}

View File

@ -13,8 +13,8 @@
\begin{formula}{variance}
\absLabel
\desc{Variance}{Square of the \fqEqRef{math:pt:std-deviation}}{}
\desc[german]{Varianz}{Quadrat der\fqEqRef{math:pt:std-deviation}}{}
\desc{Variance}{Square of the \fRef{math:pt:std-deviation}}{}
\desc[german]{Varianz}{Quadrat der\fRef{math:pt:std-deviation}}{}
\eq{\sigma^2 = (\Delta \hat{x})^2 = \Braket{\hat{x}^2} - \braket{\hat{x}}^2 = \braket{(x - \braket{x})^2}}
\end{formula}
@ -172,7 +172,7 @@
\begin{bigformula}{gamma}
\absLabel[gamma_distribution]
\desc{Gamma Distribution}{with $\lambda$ parameter}{$\Gamma$ \fqEqRef{math:cal:integral:list:gamma}, $\gamma$ \fqEqRef{math:cal:integral:list:lower_incomplete_gamma_function}}
\desc{Gamma Distribution}{with $\lambda$ parameter}{$\Gamma$ \fRef{math:cal:integral:list:gamma_function}, $\gamma$ \fRef{math:cal:integral:list:lower_incomplete_gamma_function}}
\desc[german]{Gamma Verteilung}{mit $\lambda$ Parameter}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
@ -191,7 +191,8 @@
\end{bigformula}
\begin{bigformula}{beta}
\desc{Beta Distribution}{}{$\txB$ \fqEqRef{math:cal:integral:list:beta_function} / \fqEqRef{math:cal:integral:list:incomplete_beta_function}}
\absLabel[beta_distribution]
\desc{Beta Distribution}{}{$\txB$ \fRef{math:cal:integral:list:beta_function} / \fRef{math:cal:integral:list:incomplete_beta_function}}
\desc[german]{Beta Verteilung}{}{}
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
@ -216,11 +217,12 @@
\ger{Diskrete Wahrscheinlichkeitsverteilungen}
]{discrete}
\begin{bigformula}{binomial}
\absLabel[binomial_distribution]
\desc{Binomial distribution}{}{}
\desc[german]{Binomialverteilung}{}{}
\begin{ttext}
\eng{For the number of trials going to infinity ($n\to\infty$), the binomial distribution converges to the \hyperref[sec:pb:distributions:poisson]{poisson distribution}}
\ger{Geht die Zahl der Versuche gegen unendlich ($n\to\infty$), konvergiert die Binomualverteilung gegen die \hyperref[sec:pb:distributions:poisson]{Poissonverteilung}}
\eng{For the number of trials going to infinity ($n\to\infty$), the binomial distribution converges to the \absRef[poisson distribution]{poisson_distribution}}
\ger{Geht die Zahl der Versuche gegen unendlich ($n\to\infty$), konvergiert die Binomualverteilung gegen die \absRef[Poissonverteilung]{poisson_distribution}}
\end{ttext}\\
\begin{minipage}{\distleftwidth}
\begin{figure}[H]
@ -240,6 +242,7 @@
\end{bigformula}
\begin{bigformula}{poisson}
\absLabel[poisson_distribution]
\desc{Poisson distribution}{}{}
\desc[german]{Poissonverteilung}{}{}
\begin{minipage}{\distleftwidth}
@ -296,8 +299,8 @@
\ger{Fehlerfortpflanzung}
]{error}
\begin{formula}{generalised}
\desc{Generalized error propagation}{}{$V$ \fqEqRef{math:pt:covariance} matrix, $J$ \fqEqRef{math:cal:jacobi-matrix}}
\desc[german]{Generalisiertes Fehlerfortpflanzungsgesetz}{$V$ \fqEqRef{math:pt:covariance} Matrix, $J$ \fqEqRef{cal:jacobi-matrix}}{}
\desc{Generalized error propagation}{}{$V$ \fRef{math:pt:covariance} matrix, $J$ \fRef{math:cal:jacobi-matrix}}
\desc[german]{Generalisiertes Fehlerfortpflanzungsgesetz}{$V$ \fRef{math:pt:covariance} Matrix, $J$ \fRef{cal:jacobi-matrix}}{}
\eq{V_y = J(x) \cdot V_x \cdot J^{\T} (x)}
\end{formula}
@ -308,19 +311,19 @@
\end{formula}
\begin{formula}{weight}
\desc{Weight}{Variance is a possible choice for a weight}{$\sigma$ \fqEqRef{math:pt:variance}}
\desc{Weight}{Variance is a possible choice for a weight}{$\sigma$ \fRef{math:pt:variance}}
\desc[german]{Gewicht}{Varianz ist eine mögliche Wahl für ein Gewicht}{}
\eq{w_i = \frac{1}{\sigma_i^2}}
\end{formula}
\begin{formula}{weighted-mean}
\desc{Weighted mean}{}{$w_i$ \fqEqRef{math:pt:error:weight}}
\desc{Weighted mean}{}{$w_i$ \fRef{math:pt:error:weight}}
\desc[german]{Gewichteter Mittelwert}{}{}
\eq{\overline{x} = \frac{\sum_{i} (x_i w_i)}{\sum_i w_i}}
\end{formula}
\begin{formula}{weighted-mean-error}
\desc{Variance of weighted mean}{}{$w_i$ \fqEqRef{math:pt:error:weight}}
\desc{Variance of weighted mean}{}{$w_i$ \fRef{math:pt:error:weight}}
\desc[german]{Varianz des gewichteten Mittelwertes}{}{}
\eq{\sigma^2_{\overline{x}} = \frac{1}{\sum_i w_i}}
\end{formula}
@ -330,18 +333,18 @@
\ger{Maximum likelihood Methode}
]{mle}
\begin{formula}{likelihood}
\desc{Likelihood function}{Likelihood of observing $x$ when parameter is $\theta$\\in general not normalized!}{$\rho$ \fqEqRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ depending on parameter $\theta$, $\Theta$ parameter space}
\desc[german]{Likelihood Funktion}{"Plausibilität" $x$ zu messen, wenn der Parameter $\theta$ ist\\nicht normalisiert!}{$\rho$ \fqEqRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ hängt ab von Parameter $\theta$, $\Theta$ Parameterraum}
\desc{Likelihood function}{Likelihood of observing $x$ when parameter is $\theta$\\in general not normalized!}{$\rho$ \fRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ depending on parameter $\theta$, $\Theta$ parameter space}
\desc[german]{Likelihood Funktion}{"Plausibilität" $x$ zu messen, wenn der Parameter $\theta$ ist\\nicht normalisiert!}{$\rho$ \fRef{math:pt:pdf} $x\mapsto \rho(x|\theta)$ hängt ab von Parameter $\theta$, $\Theta$ Parameterraum}
\eq{L:\Theta \rightarrow [0,1], \quad \theta \mapsto \rho(x|\theta)}
\end{formula}
\begin{formula}{likelihood_independant}
\desc{Likelihood function}{for independent and identically distributed random variables}{$x_i$ $n$ random variables, $\rho$ \fqEqRef{math:pt:pdf} $x\mapsto f(x|\theta)$ depending on parameter $\theta$}
\desc[german]{Likelihood function}{für unabhängig und identisch verteilte Zufallsvariablen}{$x_i$ $n$ Zufallsvariablen$\rho$ \fqEqRef{math:pt:pdf} $x\mapsto f(x|\theta)$ hängt ab von Parameter $\theta$}
\desc{Likelihood function}{for independent and identically distributed random variables}{$x_i$ $n$ random variables, $\rho$ \fRef{math:pt:pdf} $x\mapsto f(x|\theta)$ depending on parameter $\theta$}
\desc[german]{Likelihood function}{für unabhängig und identisch verteilte Zufallsvariablen}{$x_i$ $n$ Zufallsvariablen$\rho$ \fRef{math:pt:pdf} $x\mapsto f(x|\theta)$ hängt ab von Parameter $\theta$}
\eq{L(\theta) = \prod_{i=1}^n f(x_i;\theta)}
\end{formula}
\begin{formula}{maximum_likelihood_estimate}
\desc{Maximum likelihood estimate (MLE)}{Paramater for which outcome is most likely}{$L$ \fqEqRef{pt:mle:likelihood}, $\theta$ parameter of a \fqEqRef{math:pt:pdf}}
\desc[german]{Maximum likelihood-Schätzung (MLE)}{Paramater, für den das Ergebnis am Wahrscheinlichsten ist}{$L$ \fqEqRef{math:pt:mle:likelihood}, $\theta$ Parameter einer \fqEqRef{math:pt:pdf}}
\desc{Maximum likelihood estimate (MLE)}{Paramater for which outcome is most likely}{$L$ \fRef{math:pt:mle:likelihood}, $\theta$ parameter of a \fRef{math:pt:pdf}}
\desc[german]{Maximum likelihood-Schätzung (MLE)}{Paramater, für den das Ergebnis am Wahrscheinlichsten ist}{$L$ \fRef{math:pt:mle:likelihood}, $\theta$ Parameter einer \fRef{math:pt:pdf}}
\eq{\theta_\text{ML} &= \argmax_\theta L(\theta)\\ &= \argmax_\theta \log \big(L(\theta)\big)}
\end{formula}
@ -356,13 +359,13 @@
\end{formula}
\begin{formula}{evidence}
\desc{Evidence}{}{$p(\mathcal{D}|\theta)$ \fqEqRef{math:pt:mle:likelihood}, $p(\theta)$ \fqEqRef{math:pt:bayesian:prior}, $\mathcal{D}$ data set}
\desc{Evidence}{}{$p(\mathcal{D}|\theta)$ \fRef{math:pt:mle:likelihood}, $p(\theta)$ \fRef{math:pt:bayesian:prior}, $\mathcal{D}$ data set}
% \desc[german]{}{}{}
\eq{p(\mathcal{D}) = \int\d\theta \,p(\mathcal{D}|\theta)\,p(\theta)}
\end{formula}
\begin{formula}{theorem}
\desc{Bayes' theorem}{}{$p(\theta|\mathcal{D})$ posterior distribution, $p(\mathcal{D}|\theta)$ \fqEqRef{math:pt:mle:likelihood}, $p(\theta)$ \fqEqRef{math:pt:bayesian:prior}, $p(\mathcal{D})$ \fqEqRef{math:pt:bayesian:evidence}, $\mathcal{D}$ data set}
\desc{Bayes' theorem}{}{$p(\theta|\mathcal{D})$ posterior distribution, $p(\mathcal{D}|\theta)$ \fRef{math:pt:mle:likelihood}, $p(\theta)$ \fRef{math:pt:bayesian:prior}, $p(\mathcal{D})$ \fRef{math:pt:bayesian:evidence}, $\mathcal{D}$ data set}
\desc[german]{Satz von Bayes}{}{}
\eq{p(\theta|\mathcal{D}) = \frac{p(\mathcal{D}|\theta)\,p(\theta)}{p(\mathcal{D})}}
\end{formula}

View File

@ -54,18 +54,16 @@
% Class defining commands shared by all formula environments
% 1: key
\newenvironment{formulainternal}[1]{
% TODO refactor, using fqname@enter and leave
% TODO There is no real need to differentiate between fqnames and sections,
% TODO thus change the meaning of f: from formula to fqname and change sec to f
\mqfqname@enter{#1}
% [1]: language
% 2: name
% 3: description
% 4: definitions/links
\newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{##2}{}{\dt[#1]{##1}{##2}}
\ifblank{##3}{}{\dt[#1_desc]{##1}{##3}}
\ifblank{##4}{}{\dt[#1_defs]{##1}{##4}}
\ifblank{##2}{}{\dt{##1}{##2}}
\ifblank{##3}{}{\dt[desc]{##1}{##3}}
\ifblank{##4}{}{\dt[defs]{##1}{##4}}
}
\directlua{n_formulaEntries = 0}
@ -73,12 +71,12 @@
% [1]: label to use
% 2: Abbreviation to use for references
\newcommand{\abbrLabel}[2][#1]{
\abbrLink[f:\fqname:#1]{##1}{##2}
\abbrLink[\fqname]{##1}{##2}
}
% makes this formula referencable with \absRef{<name>}
% [1]: label to use
\newcommand{\absLabel}[1][#1]{
\absLink[\fqname:#1]{f:\fqname:#1}{##1}
\absLink[\fqname]{\fqname}{##1}
}
\newcommand{\newFormulaEntry}{
@ -98,18 +96,6 @@
##1
\end{align}
}
% 1: equation for alignat environment
\newcommand{\eqAlignedAt}[2]{
\newFormulaEntry
\begin{flalign}%
\TODO{\text{remove macro}}
% dont place label when one is provided
% \IfSubStringInString{label}\unexpanded{#3}{}{
% \label{eq:#1}
% }
##1%
\end{flalign}
}
% 1: equation for flalign environment
\newcommand{\eqFLAlign}[2]{
\newFormulaEntry
@ -127,7 +113,7 @@
\includegraphics{##1}
}
% 1: content for the ttext environment
\newcommand{\ttxt}[2][#1:desc]{
\newcommand{\ttxt}[2][text]{
\newFormulaEntry
\begin{ttext}[##1]
##2
@ -141,6 +127,9 @@
\newFormulaEntry
\quantity@print{#1}
}
\newcommand{\hiddenQuantity}[3]{%
\quantity@new[\fqname]{#1}{##1}{##2}{##3}
}
% must be used only in third argument of "constant" command
% 1: value
@ -159,20 +148,21 @@
\newFormulaEntry
\constant@print{#1}
}
}{}
}{
\mqfqname@leave
}
\newenvironment{formula}[1]{
\begin{formulainternal}{#1}
\begingroup
\label{f:\fqname:#1}
\storeLabel{\fqname:#1} % write label witout type prefix to aux file
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\NameWithDescription[\descwidth]{\fqname:#1}{\fqname:#1_desc}
\NameWithDescription[\descwidth]{\fqname}{\fqname:desc}
\hfill
\begin{ContentBoxWithExplanation}{\fqname:#1_defs}
\begin{ContentBoxWithExplanation}{\fqname:defs}
}{
\end{ContentBoxWithExplanation}
\endgroup
@ -188,33 +178,28 @@
\newenvironment{bigformula}[1]{
\begin{formulainternal}{#1}
\edef\tmpFormulaName{#1}
\par\noindent
\begin{minipage}{\textwidth} % using a minipage to now allow line breaks within the bigformula
\label{f:\fqname:#1}
\storeLabel{\fqname:#1} % write label witout type prefix to aux file
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\textbf{
\IfTranslationExists{\fqname:#1}{%
\raggedright
\GT{\fqname:#1}
}{\detokenize{#1}}
\raggedright
\GT{\fqname}
}
\IfTranslationExists{\fqname:#1_desc}{
: {\color{fg1} \GT{\fqname:#1_desc}}
\IfTranslationExists{\fqname:desc}{
: {\color{fg1} \GT{\fqname:desc}}
}{}
\hfill
\par
}{
\edef\tmpContentDefs{\fqname:\tmpFormulaName_defs}
\IfTranslationExists{\tmpContentDefs}{%
\IfTranslationExists{\fqname:defs}{%
\smartnewline
\noindent
\begingroup
\color{fg1}
\GT{\tmpContentDefs}
\GT{\fqname:defs}
% \edef\temp{\GT{#1_defs}}
% \expandafter\StrSubstitute\expandafter{\temp}{:}{\\}
\endgroup
@ -230,7 +215,6 @@
\newenvironment{hiddenformula}[1]{
\begin{formulainternal}{#1}
\renewcommand{\eq}[1]{}
\renewcommand{\eqAlignedAt}[2]{}
\renewcommand{\eqFLAlign}[2]{}
\renewcommand{\fig}[2][1.0]{}
\renewcommand{\ttxt}[2][#1:desc]{}

View File

@ -3,51 +3,70 @@
\RequirePackage{etoolbox}
\directlua{
\begin{luacode}
sections = sections or {}
function fqnameEnter(name)
table.insert(sections, name)
% table.sort(sections)
table.insert(sections, name)
-- table.sort(sections)
end
function fqnameLeave()
if table.getn(sections) > 0 then
table.remove(sections)
end
if table.getn(sections) > 0 then
table.remove(sections)
end
end
function fqnameGet()
return table.concat(sections, ":")
return table.concat(sections, ":")
end
function fqnameLeaveOnlyFirstN(n)
if n >= 0 then
while table.getn(sections) > n do
table.remove(sections)
if n >= 0 then
while table.getn(sections) > n do
table.remove(sections)
end
end
end
end
}
\end{luacode}
\begin{luacode}
function fqnameGetDepth()
return table.getn(sections)
end
function fqnameGetN(N)
if N == nil or table.getn(sections) < N then
luatexbase.module_warning('fqnameGetN', 'N = ' .. N .. ' is larger then the table length')
return "?!?"
end
s = sections[1]
for i = 2, N do
s = s .. ":" .. sections[i]
end
return s
end
\end{luacode}
\newcommand{\mqfqname@update}{%
\edef\fqname{\luavar{fqnameGet()}}
\edef\fqname{\luavar{fqnameGet()}}
}
\newcommand{\mqfqname@enter}[1]{%
\directlua{fqnameEnter("\luaescapestring{#1}")}%
\mqfqname@update
\directlua{fqnameEnter("\luaescapestring{#1}")}%
\mqfqname@update
}
\newcommand{\mqfqname@leave}{%
\directlua{fqnameLeave()}%
\mqfqname@update
\directlua{fqnameLeave()}%
\mqfqname@update
}
\newcommand{\mqfqname@leaveOnlyFirstN}[1]{%
\directlua{fqnameLeaveOnlyFirstN(#1)}%
\directlua{fqnameLeaveOnlyFirstN(#1)}%
}
% SECTIONING
% start <section>, get heading from translation, set label
% secFqname is the fully qualified name of sections: the keys of all previous sections joined with a ':'
% fqname is the fully qualified name of all sections and formulas, the keys of all previous sections joined with a ':'
% fqname is secFqname:<key> where <key> is the key/id of some environment, like formula
% [1]: code to run after setting \fqname, but before the \part, \section etc
% 2: key
@ -55,164 +74,36 @@
\newpage
\mqfqname@leaveOnlyFirstN{0}
\mqfqname@enter{#2}
\edef\secFqname{\fqname}
#1
% this is necessary so that \part/\section... takes the fully expanded string. Otherwise the pdf toc will have just the fqname
\edef\fqnameText{\GT{\fqname}}
\part{\fqnameText}
\label{sec:\fqname}
\mqfqname@label
}
\newcommand{\Section}[2][]{
\mqfqname@leaveOnlyFirstN{1}
\mqfqname@enter{#2}
\edef\secFqname{\fqname}
#1
\edef\fqnameText{\GT{\fqname}}
\section{\fqnameText}
\label{sec:\fqname}
\mqfqname@label
}
\newcommand{\Subsection}[2][]{
\mqfqname@leaveOnlyFirstN{2}
\mqfqname@enter{#2}
\edef\secFqname{\fqname}
#1
\edef\fqnameText{\GT{\fqname}}
\subsection{\fqnameText}
\label{sec:\fqname}
\mqfqname@label
}
\newcommand{\Subsubsection}[2][]{
\mqfqname@leaveOnlyFirstN{3}
\mqfqname@enter{#2}
\edef\secFqname{\fqname}
#1
\edef\fqnameText{\GT{\fqname}}
\subsubsection{\fqnameText}
\label{sec:\fqname}
\mqfqname@label
}
\edef\fqname{NULL}
\newcommand\printFqName{\expandafter\detokenize\expandafter{\fqname}}
\newcommand\luaDoubleFieldValue[3]{%
\directlua{
if #1 \string~= nil and #1[#2] \string~= nil and #1[#2][#3] \string~= nil then
tex.sprint(#1[#2][#3])
return
end
luatexbase.module_warning('luaDoubleFieldValue', 'Invalid indices to `#1`: `#2` and `#3`');
tex.sprint("???")
}%
}
% REFERENCES
% All xyzRef commands link to the key using the translated name
% Uppercase (XyzRef) commands have different link texts, but the same link target
% 1: key/fully qualified name (without qty/eq/sec/const/el... prefix)
% Equations/Formulas
% \newrobustcmd{\fqEqRef}[1]{%
\newrobustcmd{\fqEqRef}[1]{%
% \edef\fqeqrefname{\GT{#1}}
% \hyperref[eq:#1]{\fqeqrefname}
\hyperref[f:#1]{\GT{#1}}%
}
% Formula in the current section
\newrobustcmd{\secEqRef}[1]{%
% \edef\fqeqrefname{\GT{#1}}
% \hyperref[eq:#1]{\fqeqrefname}
\hyperref[f:\secFqname:#1]{\GT{\secFqname:#1}}%
}
% Section
% <name>
\newrobustcmd{\fqSecRef}[1]{%
\hyperref[sec:#1]{\GT{#1}}%
}
% Quantities
% <symbol>
\newrobustcmd{\qtyRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"linkto"}}%
\hyperref[qty:#1]{\GT{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\QtyRef}[1]{%
$\luaDoubleFieldValue{quantities}{"#1"}{"symbol"}$ \qtyRef{#1}%
}
% Constants
% <name>
\newrobustcmd{\constRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}%
\hyperref[const:#1]{\GT{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\ConstRef}[1]{%
$\luaDoubleFieldValue{constants}{"#1"}{"symbol"}$ \constRef{#1}%
}
% Element from periodic table
% <symbol>
\newrobustcmd{\elRef}[1]{%
\hyperref[el:#1]{{\color{fg0}#1}}%
}
% <name>
\newrobustcmd{\ElRef}[1]{%
\hyperref[el:#1]{\GT{el:#1}}%
}
% "LABELS"
% These currently do not place a label,
% instead they provide an alternative way to reference an existing label
\directLuaAux{
absLabels = absLabels or {}
abbrLabels = abbrLabel or {}
}
% [1]: translation key, if different from target
% 2: target (fqname to point to)
% 3: key
\newcommand{\absLink}[3][\relax]{
\directLuaAuxExpand{
absLabels["#3"] = {}
absLabels["#3"]["fqname"] = [[#2]]
absLabels["#3"]["translation"] = [[#1]] or [[#2]]
% if [[#1]] == "" then
% absLabels["#3"]["translation"] = [[#2]]
% else
% absLabels["#3"]["translation"] = [[#1]]
% end
}
}
% [1]: target (fqname to point to)
% 2: key
% 3: label (abbreviation)
\newcommand{\abbrLink}[3][sec:\fqname]{
\directLuaAuxExpand{
abbrLabels["#2"] = {}
abbrLabels["#2"]["abbr"] = [[#3]]
abbrLabels["#2"]["fqname"] = [[#1]]
}
}
% [1]: text
% 2: key
\newcommand{\absRef}[2][]{%
\directlua{
if absLabels["#2"] == nil then
tex.sprint(string.sanitize(\luastring{#2}) .. "???")
else
if \luastring{#1} == "" then %-- if [#1] is not given, use translation of key as text, else us given text
tex.sprint("\\hyperref[" .. absLabels["#2"]["fqname"] .. "]{\\GT{" .. absLabels["#2"]["translation"] .. "}}")
else
tex.sprint("\\hyperref[" .. absLabels["#2"]["fqname"] .. "]{\luaescapestring{#1}}")
end
end
}
}
\newrobustcmd{\abbrRef}[1]{%
\directlua{
if abbrLabels["#1"] == nil then
tex.sprint(string.sanitize(\luastring{#1}) .. "???")
else
tex.sprint("\\hyperref[" .. abbrLabels["#1"]["fqname"] .. "]{" .. abbrLabels["#1"]["abbr"] .. "}")
end
}
}

View File

@ -6,13 +6,17 @@
\newcommand\luavar[1]{\directlua{tex.sprint(#1)}}
\begin{luacode*}
function warning(message)
function warning(fname, message)
-- Get the current file name and line number
-- local info = debug.getinfo(2, "Sl")
-- local file_name = info.source
-- local line_number = info.currentline
-- tex.error(string.format("Warning %s at %s:%d", message, file_name, line_number))
texio.write("\nWARNING: " .. message .. "\n")
if message == nil then
texio.write("\nWARNING: " .. fname .. "\n")
else
texio.write("\nWARNING: in " .. fname .. ":" .. message .. "\n")
end
end
OUTDIR = os.getenv("TEXMF_OUTPUT_DIRECTORY") or "."
@ -22,17 +26,15 @@ function fileExists(file)
if f then f:close() end
return f ~= nil
end
warning("TEST")
\end{luacode*}
% units: siunitx units arguments, possibly chained by '='
% returns: 1\si{unit1} = 1\si{unit2} = ...
\directlua{
\begin{luacode*}
function split_and_print_units(units)
if units == nil then
tex.print("1")
tex.sprint("1")
return
end
@ -47,20 +49,20 @@ function split_and_print_units(units)
end
tex.print(result)
end
}
\end{luacode*}
% STRING UTILITY
\luadirect{
\begin{luacode*}
function string.startswith(s, start)
return string.sub(s,1,string.len(start)) == start
end
function string.sanitize(s)
% -- Use gsub to replace the specified characters with an empty string
-- Use gsub to replace the specified characters with an empty string
local result = s:gsub("[_^&]", " ")
return result
end
}
\end{luacode*}
% Write directlua command to aux and run it as well
% This one expands the argument in the aux file:
\newcommand\directLuaAuxExpand[1]{

258
src/pkg/mqref.sty Normal file
View File

@ -0,0 +1,258 @@
\ProvidesPackage{mqref}
\RequirePackage{mqlua}
\RequirePackage{mqfqname}
\newcommand\luaDoubleFieldValue[3]{%
\directlua{
if #1 \string~= nil and #1[#2] \string~= nil and #1[#2][#3] \string~= nil then
tex.sprint(#1[#2][#3])
return
end
luatexbase.module_warning('luaDoubleFieldValue', 'Invalid indices to `#1`: `#2` and `#3`');
tex.sprint("???")
}%
}
% LABELS
\begin{luacode}
-- Contains <label>: <true> for defined labels
-- This could later be extended to contain a list of all fqnames that
-- reference the label to make a network of references or sth like that
labels = labels or {}
-- Table of all labels that dont exist but were referenced
-- <label>: <fqname where it was referenced>
missingLabels = {}
-- aux file with labels for completion in vim
labelsFilepath = OUTDIR .. "/labels.txt" or "/tmp/labels.txt"
labelsLuaFilepath = OUTDIR .. "/labels.lua.txt" or "/tmp/labels.lua.txt"
-- aux file for debugging
missingLabelsFilepath = OUTDIR .. "/missing-labels.txt" or "/tmp/missing-labels.txt"
function labelExists(label)
if labels[label] == nil then return false else return true end
end
function labelSet(label)
labels[label] = true
end
if fileExists(labelsLuaFilepath) then
labels = dofile(labelsLuaFilepath) or {}
end
\end{luacode}
\begin{luacode*}
function serializeKeyValues(tbl)
local result = {}
-- sort by keys making a new table with keys as values and sorting that
for k, v in pairs(tbl) do
table.insert(result, k)
end
table.sort(result)
s = ""
for i, k in ipairs(result) do
s = s .. k .. "\tin\t" .. tbl[k] .. "\n"
end
return s
end
function dumpTableKeyValues(tableobj, filepath)
table.sort(tableobj)
local file = io.open(filepath, "w")
file:write(serializeKeyValues(tableobj))
file:close()
end
function serializeKeys(tbl)
local result = {}
-- sort by keys making a new table with keys as values and sorting that
for k, v in pairs(tbl) do
table.insert(result, k)
end
table.sort(result)
return table.concat(result, "\n")
end
function dumpTableKeys(tableobj, filepath)
table.sort(tableobj)
local file = io.open(filepath, "w")
file:write(serializeKeys(tableobj))
file:close()
end
\end{luacode*}
\AtEndDocument{\directlua{dumpTableKeys(labels, labelsFilepath)}}
\AtEndDocument{\directlua{dumpTable(labels, labelsLuaFilepath)}}
\AtEndDocument{\directlua{dumpTableKeyValues(missingLabels, missingLabelsFilepath)}}
% Set a label and write the label to the aux file
% [1]
\newcommand\mqfqname@label[1][\fqname]{
\label{#1}
\directlua{labelSet(\luastring{#1})}
}
% REFERENCES
% All xyzRef commands link to the key using the translated name
% Uppercase (XyzRef) commands have different link texts, but the same link target
% 1: key/fully qualified name (without qty/eq/sec/const/el... prefix)
\begin{luacode*}
function hyperref(target, text)
local s = ""
if labelExists(target) then
s = "\\hyperref[" .. target .. "]"
else -- mark as missing and referenced in current section
missingLabels[target] = fqnameGet()
end
if text == "" then
tex.sprint(s .. "{" .. tlGetFallbackCurrent(target) .. "}")
else
tex.sprint(s .. "{" .. text .. "}")
end
end
\end{luacode*}
% Equations/Formulas
% \newrobustcmd{\fqEqRef}[1]{%
\newrobustcmd{\fAbsRef}[2][]{%
\directlua{hyperref(\luastring{#2}, \luastring{#1})}%
}
\begin{luacode*}
function translateRelativeFqname(target)
local relN = 0
local relTarget = ""
warning('translateRelativeFqname', '(target=' .. target .. ') ');
for i = 1, #target do
local c = target:sub(i,i)
if c == ":" then
relN = relN + 1
else
relTarget = target:sub(i,#target)
break
end
end
if relN == 0 then
return target
end
local N = fqnameGetDepth()
local newtarget = fqnameGetN(N - relN + 1) .. ":" .. relTarget
warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget);
return newtarget
end
\end{luacode*}
\newcommand{\fRef}[2][]{
\directlua{hyperref(translateRelativeFqname(\luastring{#2}), \luastring{#1})}
}
% [1]: link text
% 2: number of steps to take up
% 3: link target relative to the previous fqname section
\newcommand{\mqfqname@fRelRef}[3][1]{
\directlua{
local N = fqnameGetDepth()
luatexbase.module_warning('fRelRef', '(N=' .. N .. ') #2');
if N > #2 then
local upfqname = fqnameGetN(N-#2)
hyperref(upfqname .. \luastring{:#3}, \luastring{#1})
else
luatexbase.module_warning('fUpRef', 'fqname depth (N=' .. N .. ') too low for fUpRef if #1');
end
}
}
\newcommand{\fThisRef}[2][]{\mqfqname@fRelRef[#1]{0}{#2}}
\newcommand{\fUpRef}[2][]{\mqfqname@fRelRef[#1]{1}{#2}}
\newcommand{\fUppRef}[2][]{\mqfqname@fRelRef[#1]{2}{#2}}
% Quantities
% <symbol>
\newrobustcmd{\qtyRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"linkto"}}%
\hyperref[qty:#1]{\GT{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\QtyRef}[1]{%
$\luaDoubleFieldValue{quantities}{"#1"}{"symbol"}$ \qtyRef{#1}%
}
% Constants
% <name>
\newrobustcmd{\constRef}[1]{%
\edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}%
\hyperref[const:#1]{\GT{\tempname:#1}}%
}
% <symbol> <name>
\newrobustcmd{\ConstRef}[1]{%
$\luaDoubleFieldValue{constants}{"#1"}{"symbol"}$ \constRef{#1}%
}
% Element from periodic table
% <symbol>
\newrobustcmd{\elRef}[1]{%
\hyperref[el:#1]{{\color{fg0}#1}}%
}
% <name>
\newrobustcmd{\ElRef}[1]{%
\hyperref[el:#1]{\GT{el:#1}}%
}
% "LABELS"
% These currently do not place a label,
% instead they provide an alternative way to reference an existing label
\directLuaAux{
absLabels = absLabels or {}
abbrLabels = abbrLabel or {}
}
% [1]: translation key, if different from target
% 2: target (fqname to point to)
% 3: key
\newcommand{\absLink}[3][\relax]{
\directLuaAuxExpand{
absLabels["#3"] = {}
absLabels["#3"]["fqname"] = [[#2]]
absLabels["#3"]["translation"] = [[#1]] or [[#2]]
% if [[#1]] == "" then
% absLabels["#3"]["translation"] = [[#2]]
% else
% absLabels["#3"]["translation"] = [[#1]]
% end
}
}
% [1]: target (fqname to point to)
% 2: key
% 3: label (abbreviation)
\newcommand{\abbrLink}[3][sec:\fqname]{
\directLuaAuxExpand{
abbrLabels["#2"] = {}
abbrLabels["#2"]["abbr"] = [[#3]]
abbrLabels["#2"]["fqname"] = [[#1]]
}
}
\newcommand{\fLabel}
% [1]: text
% 2: key
\newcommand{\absRef}[2][]{%
\directlua{
if absLabels["#2"] == nil then
tex.sprint(string.sanitize(\luastring{#2}) .. "???")
else
if \luastring{#1} == "" then %-- if [#1] is not given, use translation of key as text, else us given text
tex.sprint("\\hyperref[" .. absLabels["#2"]["fqname"] .. "]{\\GT{" .. absLabels["#2"]["translation"] .. "}}")
else
tex.sprint("\\hyperref[" .. absLabels["#2"]["fqname"] .. "]{\luaescapestring{#1}}")
end
end
}
}
\newrobustcmd{\abbrRef}[1]{%
\directlua{
if abbrLabels["#1"] == nil then
tex.sprint(string.sanitize(\luastring{#1}) .. "???")
else
tex.sprint("\\hyperref[" .. abbrLabels["#1"]["fqname"] .. "]{" .. abbrLabels["#1"]["abbr"] .. "}")
end
}
}

View File

@ -85,9 +85,9 @@
end
function dumpTranslations()
local file = io.open(translationsFilepath, "w")
file:write("return " .. serialize(translations) .. "\n")
function dumpTable(tableobj, filepath)
local file = io.open(filepath, "w")
file:write("return " .. serialize(tableobj) .. "\n")
file:close()
end
@ -97,7 +97,7 @@
\end{luacode*}
\AtEndDocument{\directlua{dumpTranslations()}}
\AtEndDocument{\directlua{dumpTable(translations, translationsFilepath)}}
%
% TRANSLATION COMMANDS

View File

@ -28,7 +28,7 @@
\end{formula}
\begin{formula}{wave_function}
\desc{Wave function}{}{$R_{nl}(r)$ \fqEqRef{qm:h:radial}, $Y_{lm}$ \fqEqRef{qm:spherical_harmonics}}
\desc{Wave function}{}{$R_{nl}(r)$ \fRef{qm:h:radial}, $Y_{lm}$ \fRef{qm:spherical_harmonics}}
\desc[german]{Wellenfunktion}{}{}
\eq{\psi_{nlm}(r, \theta, \phi) = R_{nl}(r)Y_{lm}(\theta,\phi)}
\end{formula}

View File

@ -562,7 +562,7 @@
\eq{H &= \underbrace{\hbar\omega_c \hat{a}^\dagger \hat{a}}_\text{\GT{field}}
+ \underbrace{\hbar\omega_\text{a} \frac{\hat{\sigma}_z}{2}}_\text{\GT{atom}}
+ \underbrace{\frac{\hbar\Omega}{2} \hat{E} \hat{S}}_\text{int} \\
\shortintertext{\GT{after} \hyperref[eq:qm:other:RWA]{RWA}:} \\
\shortintertext{\GT{after} \fRef[RWA]{qm:other:RWA}:} \\
&= \hbar\omega_c \hat{a}^\dagger \hat{a}
+ \hbar\omega_\text{a} \hat{\sigma}^\dagger \hat{\sigma}
+ \frac{\hbar\Omega}{2} (\hat{a}\hat{\sigma^\dagger} + \hat{a}^\dagger \hat{\sigma})
@ -572,7 +572,7 @@
\Section[
\eng{Other}
\ger{Sonstiges}
]{other}
]{other}
\begin{formula}{RWA}
\desc{Rotating Wave Approximation (RWS)}{Rapidly oscilating terms are neglected}{$\omega_\text{L}$ light frequency, $\omega_0$ transition frequency}
\desc[german]{Rotating Wave Approximation / Drehwellennäherung (RWS)}{Schnell oscillierende Terme werden vernachlässigt}{$\omega_\text{L}$ Frequenz des Lichtes, $\omega_0$ Übergangsfrequenz}

View File

@ -150,6 +150,13 @@
\quantity{\sigma}{\per\ohm\m}{}
\end{formula}
\begin{formula}{wave_vector}
\desc{Wavevector}{Vector perpendicular to the wavefront}{}
\desc[german]{Wellenvektor}{Vektor senkrecht zur Wellenfront}{}
\eq{\abs{k} = \frac{2\pi}{\lambda}}
\quantity{\vec{k}}{1\per\m}{v}
\end{formula}
\Subsection[
\eng{Others}
\ger{Sonstige}

View File

@ -276,8 +276,8 @@
\ger{Tunable Transmon Qubit}
]{tunable}
\begin{formula}{circuit}
\desc{Frequency tunable transmon}{By using a \fqSecRef{qc:scq:elements:squid} instead of a \fqSecRef{qc:scq:elements:josephson_junction}, the qubit is frequency tunable through an external field}{}
\desc[german]{}{Durch Nutzung eines \fqSecRef{qc:scq:elements:squid} anstatt eines \fqSecRef{qc:scq:elements:josephson_junction}s, ist die Frequenz des Qubits durch ein externes Magnetfeld einstellbar}{}
\desc{Frequency tunable transmon}{By using a \fRef{qc:scq:elements:squid} instead of a \fRef{qc:scq:elements:josephson_junction}, the qubit is frequency tunable through an external field}{}
\desc[german]{}{Durch Nutzung eines \fRef{qc:scq:elements:squid} anstatt eines \fRef{qc:scq:elements:josephson_junction}s, ist die Frequenz des Qubits durch ein externes Magnetfeld einstellbar}{}
\centering
\begin{tikzpicture}
% \draw (0,0) to[sV=$V_\text{g}$] ++(0,3)

View File

@ -432,26 +432,31 @@
\desc{Internal energy}{}{}
\desc[german]{Innere Energie}{}{}
\eq{\d U(S,V,N) = T\d S -p\d V + \mu\d N}
\hiddenQuantity{U}{\joule}{s}
\end{formula}
\begin{formula}{free_energy}
\desc{Free energy / Helmholtz energy }{}{}
\desc[german]{Freie Energie / Helmholtz Energie}{}{}
\eq{\d F(T,V,N) = -S\d T -p\d V + \mu\d N}
\hiddenQuantity{F}{\joule}{s}
\end{formula}
\begin{formula}{enthalpy}
\desc{Enthalpy}{}{}
\desc[german]{Enthalpie}{}{}
\eq{\d H(S,p,N) = T\d S +V\d p + \mu\d N}
\hiddenQuantity{H}{\joule}{s}
\end{formula}
\begin{formula}{gibbs_energy}
\desc{Free enthalpy / Gibbs energy}{}{}
\desc[german]{Freie Entahlpie / Gibbs-Energie}{}{}
\eq{\d G(T,p,N) = -S\d T + V\d p + \mu\d N}
\hiddenQuantity{G}{\joule}{s}
\end{formula}
\begin{formula}{grand_canon_pot}
\desc{Grand canonical potential}{}{}
\desc[german]{Großkanonisches Potential}{}{}
\eq{\d \Phi(T,V,\mu) = -S\d T -p\d V - N\d\mu}
\hiddenQuantity{\Phi}{\joule}{s}
\end{formula}
\TODO{Maxwell Relationen, TD Quadrat}
@ -675,14 +680,14 @@
\eq{g_s = 2s+1}
\end{formula}
\begin{formula}{dos}
\desc{Density of states}{}{$g_s$ \fqEqRef{td:id_qgas:spin_degeneracy_factor}}
\desc[german]{Zustandsdichte}{}{$g_s$ \fqEqRef{td:id_qgas:spin_degeneracy_factor}}
\desc{Density of states}{}{$g_s$ \fRef{td:id_qgas:spin_degeneracy_factor}}
\desc[german]{Zustandsdichte}{}{$g_s$ \fRef{td:id_qgas:spin_degeneracy_factor}}
\eq{g(\epsilon) = g_s \frac{V}{4\pi} \left(\frac{2m}{\hbar^2}\right)^\frac{3}{2} \sqrt{\epsilon}}
\end{formula}
\begin{formula}{occupation_number_per_e}
\desc{Occupation number per energy}{}{\fqEqRef{td:id_qgas:dos}, \bosfer}
\desc[german]{Besetzungszahl pro Energie}{}{\fqEqRef{td:id_qgas:dos}, \bosfer}
\desc{Occupation number per energy}{}{\fRef{td:id_qgas:dos}, \bosfer}
\desc[german]{Besetzungszahl pro Energie}{}{\fRef{td:id_qgas:dos}, \bosfer}
\eq{n(\epsilon)\, \d\epsilon &= \frac{g(\epsilon)}{\e^{\beta(\epsilon - \mu)} \mp 1}\,\d\epsilon}
\end{formula}
@ -797,8 +802,8 @@
\end{formula}
\begin{formula}{specific_density}
\desc{Specific density}{}{$f$ \fqEqRef{td:id_qgas:generalized_zeta}, $g$ degeneracy factor, $z$ \fqEqRef{td:id_qgas:fugacity}}
\desc[german]{Spezifische Dichte}{}{$f$ \fqEqRef{td:id_qgas:generalized_zeta}, $g$ Entartungsfaktor, $z$ \fqEqRef{td:id_qgas:fugacity}}
\desc{Specific density}{}{$f$ \fRef{td:id_qgas:generalized_zeta}, $g$ degeneracy factor, $z$ \fRef{td:id_qgas:fugacity}}
\desc[german]{Spezifische Dichte}{}{$f$ \fRef{td:id_qgas:generalized_zeta}, $g$ Entartungsfaktor, $z$ \fRef{td:id_qgas:fugacity}}
\eq{v = \frac{N}{V} = \frac{g}{\lambda^3}f_{3/2}(z)}
\end{formula}
@ -826,8 +831,8 @@
\end{formula}
\begin{formula}{heat_cap}
\desc{Heat capacity}{\gt{low_temps}}{differs from \fqEqRef{td:TODO:petit_dulong}}
\desc[german]{Wärmecapacity}{\gt{low_temps}}{weicht ab vom \fqEqRef{td:TODO:petit_dulong}}
\desc{Heat capacity}{\gt{low_temps}}{differs from \fRef{td:TODO:petit_dulong}}
\desc[german]{Wärmecapacity}{\gt{low_temps}}{weicht ab vom \fRef{td:TODO:petit_dulong}}
\fig{img/td_fermi_heat_capacity.pdf}
\eq{C_V = \pdv{E}{T}_V = N\kB \frac{\pi}{2} \left(\frac{T}{T_\text{F}}\right)}
\end{formula}

View File

@ -52,7 +52,7 @@ GT: {\textbackslash}ttest:name = \GT{\ttest:name}\\
\paragraph{Testing hyperrefs}
\noindent{This text is labeled with "test" \label{test}}\\
\hyperref[test]{This should refer to the line above}\\
\fRef[This should refer to the line above]{test}\\
Link to quantity which is defined after the reference: \qtyRef{test}\\
\DT[eq:test]{english}{If you read this, then the translation for eq:test was expandend!}
Link to defined quantity: \qtyRef{mass}

View File

@ -43,12 +43,12 @@
% add links to some names
\directlua{
local cases = {
pdf = "f:math:pt:pdf",
pmf = "f:math:pt:pmf",
cdf = "f:math:pt:cdf",
mean = "f:math:pt:mean",
variance = "f:math:pt:variance",
median = "f:math:pt:median",
pdf = "math:pt:pdf",
pmf = "math:pt:pmf",
cdf = "math:pt:cdf",
mean = "math:pt:mean",
variance = "math:pt:variance",
median = "math:pt:median",
}
if cases["\luaescapestring{##1}"] \string~= nil then
tex.sprint("\\hyperref["..cases["\luaescapestring{##1}"].."]{\\GT{##1}}")