From d9da44ac7436d531a0398b4b23dc7660fd95b1df Mon Sep 17 00:00:00 2001 From: "matthias@quintern.xyz" Date: Tue, 25 Feb 2025 23:26:19 +0100 Subject: [PATCH] refactor referencing --- src/.latexmkrc | 3 +- src/ch/el.tex | 28 ++-- src/cm/charge_transport.tex | 4 +- src/cm/cm.tex | 8 +- src/cm/crystal.tex | 18 +-- src/cm/low_temp.tex | 112 ++++++++++---- src/cm/misc.tex | 9 ++ src/cm/semiconductors.tex | 6 +- src/cm/techniques.tex | 16 +- src/comp/ad.tex | 46 +++--- src/comp/est.tex | 26 ++-- src/comp/ml.tex | 42 ++++-- src/constants.tex | 9 ++ src/ed/el.tex | 2 +- src/ed/em.tex | 4 +- src/ed/mag.tex | 12 +- src/ed/optics.tex | 2 +- src/main.tex | 26 ++-- src/math/calculus.tex | 4 +- src/math/probability_theory.tex | 41 ++--- src/pkg/mqformula.sty | 62 +++----- src/pkg/mqfqname.sty | 193 ++++++------------------ src/pkg/mqlua.sty | 22 +-- src/pkg/mqref.sty | 258 ++++++++++++++++++++++++++++++++ src/pkg/mqtranslation.sty | 8 +- src/qm/atom.tex | 2 +- src/qm/qm.tex | 4 +- src/quantities.tex | 7 + src/quantum_computing.tex | 4 +- src/statistical_mechanics.tex | 21 ++- src/test.tex | 2 +- src/util/environments.tex | 12 +- 32 files changed, 623 insertions(+), 390 deletions(-) create mode 100644 src/pkg/mqref.sty diff --git a/src/.latexmkrc b/src/.latexmkrc index ad8b461..f0ad391 100644 --- a/src/.latexmkrc +++ b/src/.latexmkrc @@ -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/, diff --git a/src/ch/el.tex b/src/ch/el.tex index 637247f..7aa1344 100644 --- a/src/ch/el.tex +++ b/src/ch/el.tex @@ -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} diff --git a/src/cm/charge_transport.tex b/src/cm/charge_transport.tex index 20059dd..abb4b56 100644 --- a/src/cm/charge_transport.tex +++ b/src/cm/charge_transport.tex @@ -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}} diff --git a/src/cm/cm.tex b/src/cm/cm.tex index 5fa930f..49dcb14 100644 --- a/src/cm/cm.tex +++ b/src/cm/cm.tex @@ -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} diff --git a/src/cm/crystal.tex b/src/cm/crystal.tex index deed6f7..4454d88 100644 --- a/src/cm/crystal.tex +++ b/src/cm/crystal.tex @@ -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} diff --git a/src/cm/low_temp.tex b/src/cm/low_temp.tex index 064d0ec..b65e4d6 100644 --- a/src/cm/low_temp.tex +++ b/src/cm/low_temp.tex @@ -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,20 +153,21 @@ \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} @@ -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} diff --git a/src/cm/misc.tex b/src/cm/misc.tex index 8a813d9..0dfbea6 100644 --- a/src/cm/misc.tex +++ b/src/cm/misc.tex @@ -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} diff --git a/src/cm/semiconductors.tex b/src/cm/semiconductors.tex index 2c285c4..b724d0b 100644 --- a/src/cm/semiconductors.tex +++ b/src/cm/semiconductors.tex @@ -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} diff --git a/src/cm/techniques.tex b/src/cm/techniques.tex index 77973ab..20a07e6 100644 --- a/src/cm/techniques.tex +++ b/src/cm/techniques.tex @@ -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} diff --git a/src/comp/ad.tex b/src/comp/ad.tex index e405909..fea226a 100644 --- a/src/comp/ad.tex +++ b/src/comp/ad.tex @@ -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} diff --git a/src/comp/est.tex b/src/comp/est.tex index 3e0b98e..4a8bca5 100644 --- a/src/comp/est.tex +++ b/src/comp/est.tex @@ -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} diff --git a/src/comp/ml.tex b/src/comp/ml.tex index f9638b9..8b9fdc3 100644 --- a/src/comp/ml.tex +++ b/src/comp/ml.tex @@ -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} diff --git a/src/constants.tex b/src/constants.tex index 726f829..a1197cd 100644 --- a/src/constants.tex +++ b/src/constants.tex @@ -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}{}{} diff --git a/src/ed/el.tex b/src/ed/el.tex index 385ed3e..1c93b43 100644 --- a/src/ed/el.tex +++ b/src/ed/el.tex @@ -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{ diff --git a/src/ed/em.tex b/src/ed/em.tex index 829a2f3..3ff16f9 100644 --- a/src/ed/em.tex +++ b/src/ed/em.tex @@ -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 } diff --git a/src/ed/mag.tex b/src/ed/mag.tex index 56238c5..af1fc38 100644 --- a/src/ed/mag.tex +++ b/src/ed/mag.tex @@ -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 diff --git a/src/ed/optics.tex b/src/ed/optics.tex index 2a0bf24..0ccc4a7 100644 --- a/src/ed/optics.tex +++ b/src/ed/optics.tex @@ -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}} diff --git a/src/main.tex b/src/main.tex index 10cfc48..f54be74 100644 --- a/src/main.tex +++ b/src/main.tex @@ -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} diff --git a/src/math/calculus.tex b/src/math/calculus.tex index c85b4bd..7523f95 100644 --- a/src/math/calculus.tex +++ b/src/math/calculus.tex @@ -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}{}{} diff --git a/src/math/probability_theory.tex b/src/math/probability_theory.tex index c54ced0..f3fc1ad 100644 --- a/src/math/probability_theory.tex +++ b/src/math/probability_theory.tex @@ -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} diff --git a/src/pkg/mqformula.sty b/src/pkg/mqformula.sty index 4d77bad..cc314d9 100644 --- a/src/pkg/mqformula.sty +++ b/src/pkg/mqformula.sty @@ -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{} % [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]{} diff --git a/src/pkg/mqfqname.sty b/src/pkg/mqfqname.sty index ecdfdf4..ca28c67 100644 --- a/src/pkg/mqfqname.sty +++ b/src/pkg/mqfqname.sty @@ -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
, 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: where 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 -% -\newrobustcmd{\fqSecRef}[1]{% - \hyperref[sec:#1]{\GT{#1}}% -} -% Quantities -% -\newrobustcmd{\qtyRef}[1]{% - \edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"linkto"}}% - \hyperref[qty:#1]{\GT{\tempname:#1}}% -} -% -\newrobustcmd{\QtyRef}[1]{% - $\luaDoubleFieldValue{quantities}{"#1"}{"symbol"}$ \qtyRef{#1}% -} -% Constants -% -\newrobustcmd{\constRef}[1]{% - \edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}% - \hyperref[const:#1]{\GT{\tempname:#1}}% -} -% -\newrobustcmd{\ConstRef}[1]{% - $\luaDoubleFieldValue{constants}{"#1"}{"symbol"}$ \constRef{#1}% -} -% Element from periodic table -% -\newrobustcmd{\elRef}[1]{% - \hyperref[el:#1]{{\color{fg0}#1}}% -} -% -\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 - } -} diff --git a/src/pkg/mqlua.sty b/src/pkg/mqlua.sty index cbee5d6..37a685c 100644 --- a/src/pkg/mqlua.sty +++ b/src/pkg/mqlua.sty @@ -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]{ diff --git a/src/pkg/mqref.sty b/src/pkg/mqref.sty new file mode 100644 index 0000000..1849d81 --- /dev/null +++ b/src/pkg/mqref.sty @@ -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