This commit is contained in:
matthias@quintern.xyz 2025-03-30 01:04:04 +01:00
parent a4dd8a3d1b
commit d2738907f8
29 changed files with 855 additions and 618 deletions

View File

@ -29,12 +29,12 @@ def dielectric_absorption():
omegas_THz = omegas / 1e12
anno_color = COLORSCHEME["fg2"]
axs[0].set_ylabel(r"$\epsreal(\omega)$")
axs[0].set_ylabel(r"$\epsReal(\omega)$")
axs[0].hlines([eps_real_0], omegas_THz[0], omegas_THz[omegas_THz.shape[0]//3], color=anno_color, linestyle="dotted")
axs[0].hlines([eps_real_infty], omegas_THz[omegas_THz.shape[0]*2//3], omegas_THz[-1], color=anno_color, linestyle="dotted")
axs[0].text(omegas_THz[-1], eps_real_infty, r"$\epsilon_\txr(\infty)$", ha="right", va="bottom", color=anno_color)
axs[0].text(omegas_THz[0], eps_real_0, r"$\epsilon_\txr(0)$", ha="left", va="top", color=anno_color)
axs[1].set_ylabel(r"$\epscomplex(\omega)$")
axs[1].set_ylabel(r"$\epsImag(\omega)$")
vals = [eps_real, eps_imag]
for i in range(2):
ax = axs[i]

20
src/appendix.tex Normal file
View File

@ -0,0 +1,20 @@
\Part{appendix}
\desc{Appendix}{}{}
\desc[german]{Anhang}{}{}
\begin{formula}{world}
\desc{World formula}{}{}
\desc[german]{Weltformel}{}{}
\eq{E = mc^2 +\text{AI}}
\end{formula}
\Input{quantities}
\Input{constants}
% \listofquantities
% \listoffigures
% \listoftables
\Section{elements}
\desc{List of elements}{}{}
\desc[german]{Liste der Elemente}{}{}
\printAllElements
\newpage

View File

@ -452,12 +452,12 @@
%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$ \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}}
\newFormulaEntry
\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}}
\alpha_\txA = 1 - \alpha_\txC
\end{gather}
\separateEntries
\fig{img/ch_butler_volmer.pdf}
\end{formula}

View File

@ -42,7 +42,7 @@
\end{formula}
\begin{formula}{mean_free_path}
\abbrLabel{mfp}
\abbrLabel{MFP}
\desc{Mean free path}{}{}
\desc[german]{Mittlere freie Weglänge}{}{}
\eq{\ell = \braket{v} \tau}

View File

@ -292,3 +292,121 @@
}
\end{formula}
\Subsection{defect}
\desc{Defects}{}{}
\desc[german]{Defekte}{}{}
\Subsubsection{point}
\desc{Point defects}{}{}
\desc[german]{Punktdefekte}{}{}
\begin{formula}{vacancy}
\desc{Vacancy}{}{}
\desc[german]{Fehlstelle}{}{}
\ttxt{\eng{
\begin{itemize}
\item Lattice site missing an atom
\item Low formation energy
\end{itemize}
}\ger{
\begin{itemize}
\item Unbesetzter Gitterpunkt
\item Geringe Formationsenergie
\end{itemize}
}}
\end{formula}
\begin{formula}{interstitial}
\desc{Interstitial}{}{}
\desc[german]{}{}{}
\ttxt{\eng{
\begin{itemize}
\item Extranous atom between lattice atoms
\item High formation energy
\end{itemize}
}\ger{
\begin{itemize}
\item Zusätzliches Atom zwischen Gitteratomen
\item Hohe Formationsenergy
\end{itemize}
}}
\end{formula}
\begin{formula}{schottky}
\desc{Schottky defect}{}{}
\desc[german]{Schottky-Defekt}{}{}
\ttxt{\eng{
Atom type A \fRef{:::vacancy} + atom type B \fRef{:::vacancy}.
Only in (partially) ionic materials.
}\ger{
\fRef{:::vacancy} von Atomsorte A und \fRef{:::vacancy} von Atomsorte B.
Tritt nur in ionischen Materialiern auf.
}}
\end{formula}
\begin{formula}{frenkel}
\desc{Frenkel defect}{}{}
\desc[german]{Frenkel Defekt}{}{}
\ttxt{\eng{
\fRef{:::vacancy} + \fRef{:::interstitial}
}\ger{
\fRef{:::vacancy} + \fRef{:::interstitial}
}}
\end{formula}
\Subsubsection{line}
\desc{Line defects}{}{}
\desc[german]{Liniendefekte}{}{}
\begin{formula}{edge}
\desc{Edge distortion}{}{}
\desc[german]{Stufenversetzung}{}{}
\ttxt{\eng{
Insertion of an extra plane of atoms
}\ger{
Einschiebung einer zusätzliche Atomebene
}}
\TODO{images}
\end{formula}
\begin{formula}{screw}
\desc{Screw distortion}{}{}
\desc[german]{Schraubenversetzung}{}{}
\ttxt{\eng{
\TODO{TODO}
}\ger{
}}
\end{formula}
\begin{formula}{burgers_vector}
\desc{Burgers vector}{Magnitude and direction of dislocation}{}
\desc[german]{Burgers-Vektor}{Größe und Richtung einer Versetzung}{}
\quantity{\vecb}{units}{ievs}
\eq{
\TODO{TODO}
}
\end{formula}
\Subsubsection{area}
\desc{Area defects}{}{}
\desc[german]{Flächendefekte}{}{}
\begin{formula}{grain_boundary}
\desc{Grain boundary}{}{}
\desc[german]{Korngrenze}{}{}
\ttxt{\eng{
Lead to
\begin{itemize}
\item Secondary phases
\item Charge carrier trapping, recombination
\item High mass diffusion constants
\end{itemize}
}\ger{
Führen zu
\begin{itemize}
\item Sekundärphasen
\item Separierung, Trapping und Streuung von Ladunsträgern
\item Hohe Massendiffusionskonstante
\end{itemize}
}}
\end{formula}

View File

@ -27,11 +27,11 @@
\Subsubsection{kp}
\desc{$k\cdot p$ Method}{
\desc{k p Method}{
\fRef[Pertubative]{qm:qm_pertubation} method for calculating the effective mass of a band.
Treats the $\veck\cdot\vecp$ term in the Bloch Hamiltonian as second-order pertubation near an extrmum, usually at $k=0$.
}{}
\desc[german]{$k\cdot p$ Methode}{
\desc[german]{kp Methode}{
\fRef[Störungstheoretische]{qm:qm_pertubation} Methode zur Berechnung der effektiver Massen von Bändern.
Betrachtung des Terms $\veck\cdot\vecp$ im Bloch-Hamiltonian als Störung zweiter Ordnung um ein Extremum, meistens bei $k=0$.
}{}
@ -167,7 +167,6 @@
% \desc{\GT{misc}}{}{}
% \desc[german]{\GT{misc}}{}{}
\begin{formula}{vdw_material}
\desc{Van-der-Waals material}{2D materials}{}
\desc[german]{Van-der-Waals Material}{2D Materialien}{}
@ -178,28 +177,18 @@
}}
\end{formula}
\begin{formula}{work_function}
\desc{Work function}{Lowest energy required to remove an electron into the vacuum}{}
\desc[german]{Austrittsarbeit}{eng. "Work function"; minimale Energie um ein Elektron aus dem Festkörper zu lösen}{}
\quantity{W}{\eV}{s}
\eq{W = \Evac - \EFermi}
\quantity{\Phi}{\volt}{s}
\eq{e\Phi = \Evac - \EFermi}
\end{formula}
\begin{formula}{electron_affinity}
\desc{Electron affinity}{Energy required to remove one electron from an anion with one negative charge.\\Energy difference between vacuum level and conduction band}{}
\desc[german]{Elektronenaffinität}{Energie, die benötigt wird um ein Elektron aus einem einfach-negativ geladenen Anion zu entfernen. Entspricht der Energiedifferenz zwischen Vakuum-Niveau und dem Leitungsband}{}
\quantity{\chi}{\eV}{s}
\eq{\chi = \left(\Evac - \Econd\right)}
\end{formula}
\begin{formula}{laser}
\desc{Laser}{Light amplification by stimulated emission of radiation}{}
\desc[german]{Laser}{}{}
\ttxt{
\eng{\textit{Gain medium} is energized \textit{pumping energy} (electric current or light), light of certain wavelength is amplified in the gain medium}
}
\quantity{\chi}{\volt}{s}
\eq{e\chi = \left(\Evac - \Econd\right)}
\end{formula}
\begin{formula}{vacuum}
@ -208,11 +197,16 @@
\ttxt{\eng{
\begin{itemize}
\item \textbf{Rough vacuum}: \SI{1}{\atm} - \SI{10e-2}{\milli\bar} \\ viscous flow
\item \textbf{Process vacuum}: \SI{10e-2}{\milli\bar} - \SI{10e-4}{\milli\bar} \\ \abbrRef{mfp} $\le$ chamber size
\item \textbf{High vacuum}: \SI{10e-5}{\milli\bar} - \SI{10e-9}{\milli\bar} \\ \abbrRef{mfp} $>$ chamber size, mostly residual \ce{H20} vapor
\item \textbf{Ultra-high vacuum}: $<$ \SI{10e-9}{\milli\bar} \\ \abbrRef{mfp} $\gg$ chamber size, mostly residual \ce{H2}
\item \textbf{Process vacuum}: \SI{10e-2}{\milli\bar} - \SI{10e-4}{\milli\bar} \\ \abbrRef{mean_free_path} $\le$ chamber size
\item \textbf{High vacuum}: \SI{10e-5}{\milli\bar} - \SI{10e-9}{\milli\bar} \\ \abbrRef{mean_free_path} $>$ chamber size, mostly residual \ce{H20} vapor
\item \textbf{Ultra-high vacuum}: $<$ \SI{10e-9}{\milli\bar} \\ \abbrRef{mean_free_path} $\gg$ chamber size, mostly residual \ce{H2}
\end{itemize}
}\ger{
\TODO{translate}
\begin{itemize}
\item \textbf{Grobvakuum}: \SI{1}{\atm} - \SI{10e-2}{\milli\bar} \\ viskoser Fluss
\item \textbf{Prozessvakuum}: \SI{10e-2}{\milli\bar} - \SI{10e-4}{\milli\bar} \\ \abbrRef{mean_free_path} $\le$ Kammergröße
\item \textbf{Hochvakuum}: \SI{10e-5}{\milli\bar} - \SI{10e-9}{\milli\bar} \\ \abbrRef{mean_free_path} $>$ Kammergröße, hauptsächlich \ce{H2O} Rückstände übrig
\item \textbf{Ultrahochvakuum}: $<$ \SI{10e-9}{\milli\bar} \\ \abbrRef{mean_free_path} $\gg$ Kammergröße, hauptsächlich \ce{H2} Rückstände übrig
\end{itemize}
}}
\end{formula}

View File

@ -2,9 +2,9 @@
\desc{Optics}{}{}
\desc[german]{Optik}{}{}
\Subsection{insulator}
\desc{Dielectrics and Insulators}{}{}
\desc[german]{Dielektrika und Isolatoren}{}{}
% \Subsection{insulator}
% \desc{Dielectrics and Insulators}{}{}
% \desc[german]{Dielektrika und Isolatoren}{}{}
\begin{formula}{eom}
\desc{Equation of motion}{Nuclei remain quasi static, electrons respond to field}{$u$ \GT{dislocation}, $\gamma = \frac{1}{\tau}$ \GT{dampening}, \QtyRef{momentum_relaxation_time}, \QtyRef{electric_field}, \ConstRef{charge}, $\omega_0$ \GT{resonance_frequency}, \ConstRef{electron_mass}}
@ -13,12 +13,12 @@
\end{formula}
\begin{formula}{lorentz}
\desc{Drude-Lorentz model}{Dipoles treated as classical harmonic oscillators}{$N$ number of oscillators (atoms), $\omega_0$ resonance frequency }
\desc[german]{Drude-Lorentz-Model}{Dipole werden als klassische harmonische Oszillatoren behandelt}{}
\eq{\epsilon_\txr(\omega) = 1+\chi + \frac{Ne^2}{\epsilon_0 m_\txe} \left(\frac{1}{\omega^2-\omega^2-i\gamma\omega}\right)}
\desc{Drude-Lorentz model}{Dipoles treated as classical harmonic oscillators}{\QtyRef{electric_suseptibility}, $N$ number of oscillators (atoms), $\omega_0$ resonance frequency, Absorption has \absRef[lorentzian shape]{lorentz_distribution}}
\desc[german]{Drude-Lorentz-Model}{Dipole werden als klassische harmonische Oszillatoren behandelt}{\QtyRef{electric_suseptibility}, $N$ Anzahl der Oszillatoren (Atome), $\omega_0$ Resonanzfrequenz, Absorption hat Form einer \absRef[Lorentz-Verteilung]{lorentz_distribution}}
\eq{\epsilon_\txr(\omega) = 1+\chi_\txe + \frac{Ne^2}{\epsilon_0 m_\txe} \left(\frac{1}{\omega^2-\omega^2-i\gamma\omega}\right)}
\eq{
\complex{\epsilon}_\txr(0) &\to 1+\chi + \frac{Ne^2}{\epsilon_0 m_\txe \omega_0^2} \\
\complex{\epsilon}_\txr(\infty) &= \epsilon_\infty = 1+\chi
\complex{\epsilon}_\txr(0) &\to 1+\chi_\txe + \frac{Ne^2}{\epsilon_0 m_\txe \omega_0^2} \\
\complex{\epsilon}_\txr(\infty) &= \epsilon_\infty = 1+\chi_\txe
}
\fig{img/cm_optics_absorption_dielectric.pdf}
\end{formula}
@ -117,7 +117,7 @@
\desc{\qtyRef{absorption_coefficient}}{For a direct semiconductor}{\QtyRef{angular_frequency}, \QtyRef{refraction_index_real}, \QtyRef{permittivity_complex}}
\desc[german]{}{Für direkte Halbleiter}{}
\eq{
\alpha &= \frac{\omega}{\nreal c} \epsreal \\
\alpha &= \frac{\omega}{\nReal c} \epsReal \\
\left(\hbar\omega\alpha\right)^2 \propto \hbar\omega-\Egap
}
\end{formula}
@ -130,31 +130,68 @@
}
\end{formula}
\begin{formulagroup}{quantum_well}
\desc{Interband absorption in quantum wells}{}{}
\desc[german]{Interbandabsorption in Quantum Wells}{}{}
\TODO{TODO}
\end{formulagroup}
\begin{formulagroup}{exciton}
\desc{\fRef{cm:sc:exciton} absorption}{}{\QtyRef{band_gap}, $E_\text{binding}$ \fRef{cm:sc:exciton:binding_energy}}
\desc[german]{\fRef{cm:sc:exciton} Absorption}{}{}
\begin{formula}{absorption}
\desc{Absorption}{}{}
\desc[german]{Absorption}{}{}
\ttxt{\eng{
Due to binding energy, exciton absorption can happen below the \absRef[band gap energy]{band_gap} \Rightarrow Sharp absorption peak below $\Egap$.
At high (room) temperatures, excitons are ionized by collisions with phonons.
}\ger{
Aufgrund der Bindungsenergie kann die Exzitonenabsorption unterhalb der \absRef[Bandlückenenergie]{band_gap} auftreten \Rightarrow scharfer Absorptionspeak unterhalb von $\Egap$.
Bei hohen (Raum) Temperaturen werden Exzitons durch Kollisionen mit Phononen ionisiert.
}}
\eq{\hbar\omega = \Egap - E_\text{binding}}
\end{formula}
\end{formulagroup}
\begin{formula}{exciton}
\desc{\fRef[Exciton]{cm:sc:exciton} absorption}{}{\QtyRef{band_gap}, $E_\text{binding}$ \fRef{cm:sc:exciton:binding_energy}}
\desc[german]{\fRef[Exciton]{cm:sc:exciton} Absorption}{}{}
\ttxt{\eng{
Due to binding energy, exciton absorption can happen below the \absRef[band gap energy]{band_gap} \Rightarrow Sharp absorption peak below $\Egap$.
At high (room) temperatures, excitons are ionized by collisions with phonons.
}\ger{
Aufgrund der Bindungsenergie kann die Exzitonenabsorption unterhalb der \absRef[Bandlückenenergie]{band_gap} auftreten \Rightarrow scharfer Absorptionspeak unterhalb von $\Egap$.
Bei hohen (Raum) Temperaturen werden Exzitons durch Kollisionen mit Phononen ionisiert.
}}
\eq{\hbar\omega = \Egap - E_\text{binding}}
\end{formula}
\Subsubsection{quantum_well}
\desc{Quantum wells}{}{}
\desc[german]{Quantum Wells}{}{}
\begin{formula}{interband}
\desc{Interband transitions}{}{}
\desc[german]{Interband-Übergänge}{}{}
\ttxt{\eng{
Selection rules:
\begin{itemize}
\item $\E \parallel \text{QW}$: allowed for \abbrRef{light_hole}, \abbrRef{heavy_hole}
\item $\E \perp \text{QW}$: allowed for \abbrRef{light_hole}, forbidden for \abbrRef{heavy_hole}
\item In a symmetric potential: only $\Delta n=0$ transitions allowed
\end{itemize}
}\ger{
Auswahlregeln:
\begin{itemize}
\item $\E \parallel \text{QW}$: erlaubt für \abbrRef{light_hole}, \abbrRef{heavy_hole}
\item $\E \perp \text{QW}$: erlaubt für \abbrRef{light_hole}, verboten für \abbrRef{heavy_hole}
\item In einem symmatrischen Potential: nur Übergänge mit $\Delta n=0$ erlaubt
\end{itemize}
}}
\end{formula}
\begin{formula}{intersubband}
\desc{Inter-subband transitions}{\qtyrange{3}{27}{\micro\m}}{}
\desc[german]{Inter-Subband-Übergänge}{}{}
\ttxt{\eng{
Selection rules:
\begin{itemize}
\item $\E \parallel \text{QW}$ allowed
\item $\E \perp \text{QW}$ forbidden
\item Parity of intial and final state must differ
\end{itemize}
}\ger{
Auswahlregeln:
\begin{itemize}
\item $\E \parallel \text{QW}$ erlaubt
\item $\E \perp \text{QW}$ verboten
\item Parität von Anfangs- und Endzustand muss unterschiedlich sein
\end{itemize}
}}
\end{formula}
\begin{formula}{exciton}
\desc{Exciton in a quantum well}{Increased \fRef{::binding_energy} due to larger Coulomb interaction through confinment}{}
% \desc[german]{}{}{}
\eq{E^\text{2D}_n = \Egap + E_{\txe0} + E_{\txh0} - \frac{R^*}{\left(n-\frac{1}{2}\right)^2}}
\end{formula}
\TODO{dipole approximation}

View File

@ -28,13 +28,13 @@
\desc[german]{Definition}{}{}
\hiddenQuantity[band_gap]{\Egap}{\electronvolt}{s}
\ttxt{\eng{
Energy gap between highest occupied (HO) and lowest unoccupied (LU) band/orbital\\
Energy gap between highest occupied (HO) and lowest unoccupied (LU) band/orbital.
\begin{itemize}
\item \textbf{direct}: HO and LU at same $\veck$
\item \textbf{indirect} HO and LU at different $\veck$
\end{itemize}
}\ger{
Energielücke zwischen höchstem besetztem (HO) und niedrigsten unbesetzten (LU) Band/Orbital
Energielücke zwischen höchstem besetztem (HO) und niedrigsten unbesetzten (LU) Band/Orbital.
\begin{itemize}
\item \textbf{direkt}: HO und LU bei gleichem $\veck$
\item \textbf{indirekt}: HO und LU bei unterschiedlichem $\veck$
@ -49,10 +49,9 @@
\ttxt{\eng{
$T\uparrow\quad\Rightarrow \Egap\downarrow$
\begin{itemize}
\item distance of atoms increases with higher temperatures \Rightarrow less wave function overlap
\item Distance of atoms increases with higher temperatures \Rightarrow less wave function overlap
\item Low temperature: less phonons avaiable for electron-phonon scattering
\end{itemize}
\TODO{why?}
}\ger{
$T\uparrow\quad\Rightarrow \Egap\downarrow$
\begin{itemize}
@ -117,7 +116,7 @@
\end{formulagroup}
\begin{formula}{band_edge_dos}
\desc{Band edge density of states}{}{$\meff$ \qtyRef{effective_mass}, \ConstRef{boltzmann}, \QtyRef{temperature}, \ConstRef{planck2pi}}
\desc{Band edge density of states}{}{$\meff$ \qtyRef{effective_mass}, \ConstRef{boltzmann}, \QtyRef{temperature}}
\desc[german]{Bandkanten-Zustandsdichte}{}{}
\eq{
N_\txC &= 2\left(\frac{\meff_\txe\kB T}{2\pi\hbar^2}\right)^{3/2} \\
@ -174,17 +173,17 @@
\end{formula}
\begin{formula}{charge_neutrality}
\desc{Charge neutrality}{Fermi level must adjust so that charge neutrality is preserved}{$N_{\txd/\txa}^{+/-}$ ionized donor/acceptor density, $n,p$ \fRef{cm:sc:charge_carrier_density}}
\desc[german]{Ladungsneutralität}{Fermi-Level muss sich so anpassen, dass Ladungsneutralität erhalten ist}{$N_{\txd/\txa}^{+/-}$ Dichte der ionisierten Donatoren/Akzeptoren , $n,p$ \fRef{cm:sc:charge_carrier_density}}
\eq{0 = N_\txd^+ + p - N_\txa^- -n}
\desc{Charge neutrality}{Fermi level must adjust so that charge neutrality is preserved}{$N_{\txD/\txA}^{+/-}$ ionized donor/acceptor density, $n,p$ \fRef{cm:sc:charge_carrier_density}}
\desc[german]{Ladungsneutralität}{Fermi-Level muss sich so anpassen, dass Ladungsneutralität erhalten ist}{$N_{\txD/\txA}^{+/-}$ Dichte der ionisierten Donatoren/Akzeptoren , $n,p$ \fRef{cm:sc:charge_carrier_density}}
\eq{0 = N_\txD^+ + p - N_\txA^- -n}
\end{formula}
\begin{formula}{ionization_ratio}
\desc{Fraction ionized donors/acceptors}{At thermal equilibrium}{$N_{\txd/\txa}^{+/-}$ ionized donor/acceptor density, $N_{\txd/\txa}$ donor/acceptor density, $E_{\txd/\txa}$ donor/acceptor energy level, $g$ spin degeneracy}
\desc[german]{Anteil ionisiserter Akzeptoren/Donatoren}{Im thermischen Equilibrium}{$N_{\txd/\txa}^{+/-}$ ionisierte Donor/Akzeptordichte, $N_{\txd/\txa}$ Donor/Akzeptordichte, $E_{\txd/\txa}$ Energie der Donatoren/Akzeptoren, $g$ Spindegenierung}
\desc{Fraction ionized donors/acceptors}{At thermal equilibrium}{$N_{\txD/\txA}^{+/-}$ ionized donor/acceptor density, $N_{\txD/\txA}$ donor/acceptor density, $E_{\txD/\txA}$ donor/acceptor energy level, $g$ spin degeneracy}
\desc[german]{Anteil ionisiserter Akzeptoren/Donatoren}{Im thermischen Equilibrium}{$N_{\txD/\txA}^{+/-}$ ionisierte Donor/Akzeptordichte, $N_{\txD/\txA}$ Donor/Akzeptordichte, $E_{\txD/\txA}$ Energie der Donatoren/Akzeptoren, $g$ Spindegenierung}
\eq{
\frac{N_\txd^+}{N_\txd} &= 1- \frac{1}{1+\frac{1}{g}\Exp{\frac{E_\txD-\Efermi}{\kB T}}} \\
\frac{N_\txa^-}{N_\txa} &= \frac{1}{1+g\Exp{\frac{E_\txA-\Efermi}{\kB T}}}
\frac{N_\txD^+}{N_\txD} &= 1- \frac{1}{1+\frac{1}{g}\Exp{\frac{E_\txD-\Efermi}{\kB T}}} \\
\frac{N_\txA^-}{N_\txA} &= \frac{1}{1+g\Exp{\frac{E_\txA-\Efermi}{\kB T}}}
}
\end{formula}
@ -218,123 +217,46 @@
}}
\end{formula}
\Subsection{defect}
\desc{Defects}{}{}
\desc[german]{Defekte}{}{}
\Subsubsection{point}
\desc{Point defects}{}{}
\desc[german]{Punktdefekte}{}{}
\begin{formula}{vacancy}
\desc{Vacancy}{}{}
\desc[german]{Fehlstelle}{}{}
\ttxt{\eng{
\begin{itemize}
\item Lattice site missing an atom
\item Low formation energy
\end{itemize}
}\ger{
\begin{itemize}
\item Unbesetzter Gitterpunkt
\item Geringe Formationsenergie
\end{itemize}
}}
\end{formula}
\begin{formula}{interstitial}
\desc{Interstitial}{}{}
\desc[german]{}{}{}
\ttxt{\eng{
\begin{itemize}
\item Extranous atom between lattice atoms
\item High formation energy
\end{itemize}
}\ger{
\begin{itemize}
\item Zusätzliches Atom zwischen Gitteratomen
\item Hohe Formationsenergy
\end{itemize}
}}
\end{formula}
\Subsection{Recombination}
\desc{Recombination}{}{}
\desc[german]{Rekombination}{}{}
\begin{formula}{schottky}
\desc{Schottky defect}{}{}
\desc[german]{Schottky-Defekt}{}{}
\ttxt{\eng{
Atom type A \fRef{:::vacancy} + atom type B \fRef{:::vacancy}.
Only in (partially) ionic materials.
}\ger{
\fRef{:::vacancy} von Atomsorte A und \fRef{:::vacancy} von Atomsorte B.
Tritt nur in ionischen Materialiern auf.
}}
\end{formula}
\begin{formula}{frenkel}
\desc{Frenkel defect}{}{}
\desc[german]{Frenkel Defekt}{}{}
\ttxt{\eng{
\fRef{:::vacancy} + \fRef{:::interstitial}
}\ger{
\fRef{:::vacancy} + \fRef{:::interstitial}
}}
\end{formula}
\Subsubsection{line}
\desc{Line defects}{}{}
\desc[german]{Liniendefekte}{}{}
\begin{formula}{edge}
\desc{Edge distortion}{}{}
\desc[german]{Stufenversetzung}{}{}
\ttxt{\eng{
Insertion of an extra plane of atoms
}\ger{
Einschiebung einer zusätzliche Atomebene
}}
\TODO{images}
\end{formula}
\begin{formula}{screw}
\desc{Screw distortion}{}{}
\desc[german]{Schraubenversetzung}{}{}
\ttxt{\eng{
\TODO{TODO}
}\ger{
}}
\end{formula}
\begin{formula}{burgers_vector}
\desc{Burgers vector}{Magnitude and direction of dislocation}{}
\desc[german]{Burgers-Vektor}{Größe und Richtung einer Versetzung}{}
\quantity{\vecb}{units}{ievs}
\eq{
\TODO{TODO}
}
\end{formula}
\Subsubsection{area}
\desc{Area defects}{}{}
\desc[german]{Flächendefekte}{}{}
\begin{formula}{grain_boundary}
\desc{Grain boundary}{}{}
\desc[german]{Korngrenze}{}{}
\ttxt{\eng{
Lead to
\begin{itemize}
\item Secondary phases
\item Charge carrier trapping, recombination
\item High mass diffusion constants
\end{itemize}
}\ger{
Führen zu
\begin{itemize}
\item Sekundärphasen
\item Separierung, Trapping und Streuung von Ladunsträgern
\item Hohe Massendiffusionskonstante
\end{itemize}
}}
\end{formula}
\begin{formula}{shockley-read}
\desc{Shockley-Read-Hall recombination}{}{}
\desc[german]{Shockley-Read-Hall Rekombination}{}{}
\ttxt{\eng{
Recombination via defect states in the band gap:
Electron capture, electron emission, hole capture, hole emission
}\ger{
Rekombination über Defektzustände in der Bandlücke:
Elektroneneinfang, Elektronenemission, Locherfassung, Locheremission
}}
\end{formula}
\begin{formula}{auger}
\desc{Auger recombination}{}{}
\desc[german]{Auger Rekombination}{}{}
\ttxt{\eng{
Non-radiative recombination involving three particles.
Recombination energy is transferred to another electron or hole.
Important at high carrier densities, high temperatures and small band gaps.
}\ger{
Nicht-strahlende Rekombination unter Beteiligung von drei Teilchen.
Die Rekombinationsenergie wird auf ein anderes Elektron oder Loch übertragen.
Wichtig bei hohen Ladungsträgerdichten, hohen Temperaturen und kleinen Bandlücken.
}}
\end{formula}
\begin{formula}{bi-molecular}
\desc{Bi-molecular recombination}{}{}
\desc[german]{Bimolekulare Rekombination}{}{}
\ttxt{\eng{
Radiative two-particle process where an electron from conduction and a hole from the valence band recombine.
}\ger{
Strahlender zwei-Teilchen-Prozess, bei dem ein Elektron aus dem Leitungsband und ein Loch aus dem Valenzband rekombinieren.
}}
\end{formula}
\Subsection{devices}
\desc{Devices and junctions}{}{}
@ -352,11 +274,10 @@
\resizebox{0.49\textwidth}{!}{\input{img_static/cm/sc_junction_metal_n_sc_separate.tex}}
\resizebox{0.49\textwidth}{!}{\input{img_static/cm/sc_junction_metal_n_sc.tex}}
}
\TODO{Work function electron affinity sind doch Energien und keine Potentiale, warum wird also immer $q$ davor geschrieben?}
\ttxt{\eng{
Upon contact, electrons flow from the semicondctor to the metal to align the Fermi levels \Rightarrow leaves depletion region of positively charged donors as barrier
}\ger{
Bei Kontakt fließen Elektronen vom Halbleiter zum Metall, um die Fermi-Niveaus anzugleichen \Rightarrow es entsteht eine Verarmungszone aus positiv geladenen Donatoren als Barriere
}}
\end{bigformula}
\begin{formula}{full_depletion_approx}
@ -412,16 +333,16 @@
\end{bigformula}
\begin{formula}{no_bias}
\desc{No bias}{Balance of \fRef[drift]{cm:charge_transport:current_density} and \fRef[diffusion]{cm:charge_transport:misc:diffusion_current} currents}{$n_{n/p}$ \qtyRef[electron density]{charge_carrier_density} in the $n$/$p$ side}
\desc[german]{Keine angelegte Spannung}{Gleichgewicht von \fRef[Drift-]{cm:charge_transport:current_density} und \fRef[Diffusions-]{cm:charge_transport:misc:diffusion_current}strömen}{$n_{n/p}$ \qtyRef[Elektronendichte]{charge_carrier_density} in der $n$/$p$ Seite}
\eq{U_\text{bias}= \left(\frac{\kB T}{e}\right) \Ln{\frac{n_n}{n_p}}}
\desc{No bias}{Balance of \fRef[drift]{cm:charge_transport:current_density} and \fRef[diffusion]{cm:charge_transport:misc:diffusion_current} currents}{$n_{n/p}$ \fRef[equilibrium electron density]{cm:sc:charge_carrier_density:equilibrium} in the $n$/$p$ side}
\desc[german]{Keine angelegte Spannung}{Gleichgewicht von \fRef[Drift-]{cm:charge_transport:current_density} und \fRef[Diffusions-]{cm:charge_transport:misc:diffusion_current}strömen}{$n_{0,n/p}$ \qtyRef[Elektronendichte]{charge_carrier_density} in der $n$/$p$ Seite}
\eq{U_\text{bias}= \left(\frac{\kB T}{e}\right) \Ln{\frac{n_{0,n}}{n_{0,p}}}}
\end{formula}
\end{formulagroup}
\TODO{Forward bias: negativ an n, positiv an p}
\begin{formulagroup}{2deg}
\desc{Heterointerface}{2DEG, \fRef{cm:sc:doping:modulation}}{}
\desc{Heterointerface}{2DEG, \fRef{cm:sc:dope:modulation}}{}
% \desc[german]{}{}{}
\begin{formula}{schematic}
\desc{Schematic and band diagram}{}{}
@ -486,11 +407,92 @@
}
\end{formula}
\Subsubsection{led}
\desc{Led emighting diodes (LED)}{Based around forward biased $p^+n$ or $n^+p$ \fRef[junctions]{::sc-sc:pn}}{}
\desc[german]{}{Basieren auf $p^+n$ oder $n^+p$ \fRef[Kontakten]{::sc-sc:pn} im forward bias}{}
\begin{formula}{principle}
\desc{Principle}{}{}
\desc[german]{Prinzip}{}{}
\ttxt{\eng{
Under external bias a net diffusion current flows across the junction. Injected minority carriers recombine in the vicinity of the depletion region and generate light.
}\ger{
Unter äußerer Spannung fließt ein Nettodiffusionsstrom über den Übergang.
Injizierte Minoritätsträger rekombinieren in der Nähe der Verarmungszone und erzeugen Licht.
}}
\end{formula}
\begin{formula}{efficiency}
\desc{Power conversion}{}{
$\eta_\text{int} = \frac{\frac{P_\text{int}}{\hbar\omega}}{\frac{j}{e}}$ internal quantum efficiency,
$\eta_\text{extraction} \approx \SI{3}{\percent}$ light extraction efficiency,
$\eta_\text{inj} = \frac{j_n}{j_n + j_p + j_\text{NR}}$ injection efficiency (for $n^+p$ junction)
}
\desc[german]{Umwandlungseffizienz}{}{}
\eq{
\eta_\text{ext} = \frac{\frac{P_\text{ext}}{\hbar\omega}}{\frac{j}{e}} = \eta_\text{int} \eta_\text{extraction} \eta_\text{inj}
}
\end{formula}
\Subsubsection{laser}
\desc{Laser}{Light Amplifictation by Stimulated Emission of Radiation}{}
\desc[german]{Laser}{}{}
\begin{formula}{laser}
\desc{Laser}{}{}
\desc[german]{Laser}{}{}
\ttxt{\eng{
\textit{Gain medium} is energized by \textit{pumping energy} (electric current or light), light of certain wavelength is amplified in the gain medium
Components:
\begin{itemize}
\item Gain medium: amplify light by stimulated emission
\item Pump: add energy to the gain medium to keep the gain positive
\item Positive feedback
\item Output coupler: extract light from the oscillator cavity
\end{itemize}
}\ger{
}}
\end{formula}
\begin{formulagroup}{stimulated_emission}
\desc{Stimulated emission}{}{$F$ \fRef{cm:egas:fermi-dirac}, $E$ \qtyRef{energy} of the electrons/holes}
\desc[german]{Stimulierte Emission}{}{$F$ \fRef{cm:egas:fermi-dirac}, $E$ \qtyRef{energy} der Elektronen/Löcher}
\begin{formula}{stimulated_emission}
\desc{Stimulated emission}{}{}
\desc[german]{Stimulierte Emission}{}{}
\ttxt{\eng{
Emitted photons are identical: phase coherent, same polarization and optical mode, same propagation direction.\\
Requires \textit{population inversion}, where most emitters are in the excited state.
}\ger{
Emittierte Photonen sind identisch: phasenkohärent, gleiche Polarisation und optischer Modus, gleiche Ausbreitungsrichtung.\\
Erfordert \textit{Besetzungsinversion}, bei der sich die meisten Emitter im angeregten Zustand befinden.
}}
\end{formula}
\begin{formula}{coefficient}
\desc{Stimulated emission coefficient}{}{}
\desc[german]{Koeffizient der stimulierten Emission}{}{}
\eq{\alpha(\hbar\omega) \propto \left(1-F_\txe(E_\txe)\right) \left(1-F_\txh(E_\txh)\right)}
\end{formula}
\begin{formula}{gain_coefficient}
\desc{Bernard condition}{Both quasi fermi levels must lie within the bands. If fulfilled, gain coefficient is positive}{$\Efermi$ electron/hole quasi-\qtyRef[fermi level]{fermi_energy}}
\desc[german]{Bernard-Bedingung}{Beide quasi-Fermi Level müssen innerhalb der Bänder liegen. Verstärkungskoeffizient ist positiv wenn erfüllt}{$\Efermi$ Elektron/Loch Quasi-\qtyRef[Fermi-Niveau]{fermi_energy}}
\eq{
E_\txe - E_\txh = E_\text{photon} < \left(\Efermi^\txe - \Efermi^\txh\right)
}
\end{formula}
\begin{formula}{gain_spectrum}
\desc{Gain spectrum}{Gain is frequency dependent}{}
% \desc[german]{}{}{}
\fig[width=0.7\textwidth]{img_static/cm_sc_laser_gain_spectrum.png}
\TODO{plot}
\end{formula}
\end{formulagroup}
\Subsubsection{other}
\desc{Other}{}{}
\desc[german]{Andere}{}{}
\begin{formula}{single_electron_box}
\desc{Single electron box}{Allows discrete changes of single electrons}{$C_\txg/V_\txg$ gate \qtyRef{capacity}/\qtyRef{voltage}, T tunnel barrier, $n\in\N_0$ number of electrons}
\desc{Single electron box}{Allows discrete changes of single electrons}{$C_\txg/V_\txg$ gate \qtyRef{capacitance}/\qtyRef{voltage}, T tunnel barrier, $n\in\N_0$ number of electrons}
\desc[german]{Ein-Elektronen-Box}{}{}
\fcenter{
\begin{tikzpicture}
@ -534,14 +536,14 @@
\eng[free_X]{for free Excitons}
\ger[free_X]{für freie Exzitons}
\begin{formula}{rydbrg}
\desc{Exciton Rydberg energy}{\gt{free_X}}{$R_\txH$ \fRef{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}
}
\end{formula}
\begin{formula}{bohr_radius}
\desc{Exciton Bohr radius}{\gt{free_X}. \qtyrange{2}{20}{\nm}}{\QtyRef{relative_permittivity}, \ConstRef{bohr_radius}, \ConstRef{electron_mass}, $\mu$ \GT{reduced_mass}}
\desc{Exciton Bohr radius}{\GT{::free_X}. \qtyrange{2}{20}{\nm}}{\QtyRef{relative_permittivity}, \ConstRef{bohr_radius}, \ConstRef{electron_mass}, $\mu$ \GT{reduced_mass}}
\desc[german]{Exziton-Bohr Radius}{}{}
\eq{
r_n = \left(\frac{m_\txe\epsilon_r a_\txB}{\mu}\right) n^2
@ -549,7 +551,7 @@
\end{formula}
\begin{formula}{binding_energy}
\desc{Binding energy}{\gt{free_X}. \qtyrange{0.2}{8}{\meV}}{$R^* = 1\,\text{Ry} \frac{\mu}{\epsilon_\txr^2}$, $\vecK_\text{CM} = \veck_\txe - \veck_\txh$, $\mu$ \TODO{reduced mass, of what?}, $n$ exciton state}
\desc{Binding energy}{\GT{::free_X}. \qtyrange{0.2}{8}{\meV}}{$R^* = 1\,\text{Ry} \frac{\mu}{\epsilon_\txr^2}$, $\vecK_\text{CM} = \veck_\txe - \veck_\txh$, $\mu$ \TODO{reduced mass, of what?}, $n$ exciton state}
\desc[german]{Bindungsenergie}{}{}
\eq{E_{n,K_\text{CM}} = \Egap - \frac{R^*}{n^2} + \frac{\hbar^2}{2 \left(\meff_\txe + \meff_\txh\right)} K^2_\text{CM}}
\end{formula}
@ -560,10 +562,4 @@
\eq{\abs{\E_\text{ion}} \approx \frac{2R^*}{e a_\txX}}
\end{formula}
\begin{formula}{quantum_well}
\desc{Exciton in a quantum well}{Increased \fRef{::binding_energy} due to larger Coulomb interaction through confinment}{}
% \desc[german]{}{}{}
\eq{E^\text{2D}_n = \Egap + E_{\txe0} + E_{\txh0} - \frac{R^*}{\left(n-\frac{1}{2}\right)^2}}
\end{formula}
\TODO{stark effect/shift, adv sc. slide 502}

View File

@ -232,11 +232,11 @@
\begin{formula}{range-separated-hybrid}
\desc{Range separated hyrid functionals (RSH)}{Here HSE as example}{$\alpha$ mixing paramter, $E_\txX$ exchange energy, $E_\txC$ correlation energy}
% \desc[german]{}{}{}
\newFormulaEntry
\begin{gather}
\frac{1}{r} = \frac{\erf(\omega r)}{r} + \frac{\erfc{\omega r}}{r} \\
E_\text{XC}^\text{HSE} = \alpha E_\text{X,SR}^\text{HF}(\omega) + (1-\alpha)E_\text{X,SR}^\text{GGA}(\omega) + E_\text{X,LR}^\text{GGA}(\omega) + E_\txC^\text{GGA}
\end{gather}
\separateEntries
\ttxt{\eng{
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.

View File

@ -6,9 +6,9 @@
\desc{Dipole moment}{}{}
\desc[german]{Dipolmoment}{}{}
\begin{formula}{definition}
\desc{Defintion}{}{$q$ \qtyRef{charge}, $l$ distance between charges}
\desc[german]{Defintion}{}{}
\begin{formula}{dipole_moment}
\desc{Dipole moment}{}{$q$ \qtyRef{charge}, $l$ distance between charges}
\desc[german]{Dipolmoment}{}{}
\quantity[dipole_moment]{\vecp}{\coulomb\meter}{v}
\eq{\vecp &= ql\vece_l}
\end{formula}
@ -42,13 +42,13 @@
\desc{misc}{}{}
\desc[german]{misc}{}{}
\begin{formula}{impedance_r}
\desc{Impedance of an ohmic rejkjksistor}{}{\QtyRef{resistance}}
\desc{Impedance of an ohmic resistor}{}{\QtyRef{resistance}}
\desc[german]{Impedanz eines Ohmschen Widerstands}{}{}
\eq{Z_{R} = R}
\end{formula}
\begin{formula}{impedance_c}
\desc{Impedance of a capacitor}{}{\QtyRef{capacity}, \QtyRef{angular_velocity}}
\desc{Impedance of a capacitor}{}{\QtyRef{capacitance}, \QtyRef{angular_velocity}}
\desc[german]{Impedanz eines Kondensators}{}{}
\eq{Z_{C} = \frac{1}{\I\omega C}}
\end{formula}
@ -77,7 +77,7 @@
\desc{Capacitor}{}
\desc[german]{Kondensator}
\begin{formula}{capacity}
\begin{formula}{capacitance}
\desc{Parallel plate capacitor}{}{\ConstRef{vacuum_permittivity}, \QtyRef{relative_permittivity}, \QtyRef{area}, $d$ \qtyRef{length}}
\desc[german]{Plattenkondensator}{}{}
\eq{C = \epsilon_0 \epsilon_\txr \frac{A}{d}}

View File

@ -6,32 +6,32 @@
\begin{formulagroup}{refraction_index}
\desc{Refraction index}{Macroscopic}{\QtyRef{relative_permittivity}, \QtyRef{relative_permeability}, \ConstRef{vacuum_speed_of_light}, \QtyRef{phase_velocity}}
\desc{Refraction index}{Macroscopic}{\QtyRef{relative_permittivity}, \QtyRef{relative_permeability}, $c_0$ \constRef{vacuum_speed_of_light}, $c_\txM$ \qtyRef{phase_velocity}}
\desc[german]{Brechungsindex}{Macroscopisch}{}
\begin{formula}{definition}
\desc{Definition}{}{}
\desc[german]{Definition}{}{}
\desc{Refraction index}{}{}
\desc[german]{Brechungsindex}{}{}
\quantity{\complex{n}}{}{s}
\eq{
\complex{n} = \nreal + i\ncomplex
\complex{n} = \nReal + i\nImag
}
\end{formula}
\begin{formula}{real}
\desc{Real part}{}{}
\desc[german]{Reller Teil}{}{}
\quantity[refraction_index_real]{\nreal}{}{s}
\desc{Real part of the refraction index}{}{}
\desc[german]{Reller Teil des Brechungsindex}{}{}
\quantity[refraction_index_real]{\nReal}{}{s}
\eq{
n = \sqrt{\epsilon_\txr \mu_\txr}
\nReal = \sqrt{\epsilon_\txr \mu_\txr}
}
\eq{
n = \frac{c_0}{c_\txM}
\nReal = \frac{c_0}{c_\txM}
}
\end{formula}
\begin{formula}{complex}
\desc{Extinction coefficient}{Complex part of the refraction index. Describes absorption in a medium}{\GT{sometimes} $\kappa$}
\desc[german]{Auslöschungskoeffizient}{Komplexer Teil des Brechungsindex. Beschreibt Absorption im Medium}{}
\quantity[refraction_index_complex]{\ncomplex}{}{s}
\quantity[refraction_index_complex]{\nImag}{}{s}
\end{formula}
\end{formulagroup}
@ -44,9 +44,9 @@
\end{formula}
\begin{formula}{snell}
\desc{Snell's law}{}{$\nreal_i$ \qtyRef{refraction_index_real}, $\theta_i$ incidence angle (normal to the surface)}
\desc{Snell's law}{}{$\nReal_i$ \qtyRef{refraction_index_real}, $\theta_i$ incidence angle (normal to the surface)}
\desc[german]{Snelliussches Brechungsgesetz}{}{$n_i$ \qtyRef{refraction_index}, $\theta_i$ Einfallswinkel (normal zur Fläche)}
\eq{\nreal_1 \sin\theta_1 = \nreal_2\sin\theta_2}
\eq{\nReal_1 \sin\theta_1 = \nReal_2\sin\theta_2}
\end{formula}
\begin{formula}{group_velocity}
@ -70,7 +70,7 @@
\desc[german]{Absoprtionskoeffizient}{Intensitätsverringerung beim Druchgang eines Mediums, nicht zwingend durch Energieabgabe an Medium}{}
\quantity{\alpha}{\per\cm}{s}
\eq{
\alpha &= 2\ncomplex \frac{\omega}{c}
\alpha &= 2\nImag \frac{\omega}{c}
}
\TODO{Is this equation really true in general?}
\end{formula}
@ -102,23 +102,23 @@
\begin{formulagroup}{permittivity_complex}
\desc{Complex relative \qtyRef[permittivity]{permittivity}}{Complex dielectric function\\Microscopic, response of a single atom to an EM wave}{\QtyRef{refraction_index_real}, \QtyRef{refraction_index_complex}}
\desc[german]{Komplexe relative \qtyRef{permittivity}}{Komplexe dielektrische Funktion\\Mikroskopisch, Verhalten eines Atoms gegen eine EM-Welle}{}
\begin{formula}{definition}
\desc{Definition}{}{}
\desc[german]{Definition}{}{}
\eq{\epsilon_\txr &= \epsreal + i\epscomplex}
\begin{formula}{permittivity_complex}
\desc{Complex relative permittivity}{}{}
\desc[german]{Komplexe relative Permittivität}{}{}
\eq{\epsilon_\txr &= \epsReal + i\epsImag}
\end{formula}
\begin{formula}{real}
\desc{Real part}{}{}
\desc[german]{Realteil}{}{}
\eq{\epsreal &= {\nreal}^2 - {\ncomplex}^2}
\hiddenQuantity[permittivity_real]{\epsreal}{}{}
\eq{\epsReal &= {\nReal}^2 - {\nImag}^2}
\hiddenQuantity[permittivity_real]{\epsReal}{}{}
\end{formula}
\begin{formula}{complex}
\desc{Complex part}{}{}
\desc[german]{Komplexer Teil}{}{}
\eq{\epscomplex &= 2\nreal \ncomplex}
\hiddenQuantity[permittivity_complex]{\epscomplex}{}{}
\eq{\epsImag &= 2\nReal \nImag}
\hiddenQuantity[permittivity_complex]{\epsImag}{}{}
\end{formula}
\end{formulagroup}

View File

@ -45,6 +45,6 @@
\drawDArrow{\tkRx+\tkRW*3/4}{\tkREf}{\tkREV}{$e\Phi_\txS$}
\drawDArrow{\tkRx+\tkRW*2/4}{\tkREc}{\tkREV}{$e\chi$}
% barrier height
\drawDArrow{\tkRx+\tkRBendW}{\tkREc}{\tkREc-\tkRBendH}{$eU_\text{Bias}$}
\drawDArrow{\tkRx+\tkRBendW}{\tkREc}{\tkREc+\tkRBendH}{$eU_\text{Bias}$}
\end{tikzpicture}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

View File

@ -48,8 +48,13 @@
% \tikzexternalize[prefix=tikz_figures]
% \tikzexternalize
\usepackage{circuitikz} % electrical circuits with tikz
\input{circuit.tex} % custom circuits TODO: move to util
% SCIENCE PACKAGES
\usepackage{mathtools}
\usepackage{unicode-math} % all sorts of math symbols, requires lualatex
% \setmathfont{STIX Math Two}
% \setmathfont{Latin Modern Math}
% \setmathfont{Fira Math}
% set display math skips
\AtBeginDocument{
\abovedisplayskip=0pt
@ -57,14 +62,14 @@
\belowdisplayskip=0pt
\belowdisplayshortskip=0pt
}
\usepackage{MnSymbol} % for >>> \ggg sign
% \usepackage{MnSymbol} % for >>> \ggg sign
\usepackage[version=4,arrows=pgf-filled]{mhchem}
\usepackage{upgreek} % upright greek letters for chemmacros
% \usepackage{upgreek} % upright greek letters for chemmacros -> unicode-math
\usepackage{chemmacros} % for orbitals images
% \usepackage{esdiff} % derivatives
% esdiff breaks when taking \dot{q} has argument
\usepackage{derivative} % \odv, \pdv
\usepackage{bbold} % \mathbb font
% \usepackage{bbold} % \mathbb font -> unicode-math
\usepackage{braket} % <bra|ket>
\usepackage{siunitx} % \si \SI units
\sisetup{output-decimal-marker = {,}}
@ -72,10 +77,11 @@
\sisetup{per-mode = power}
\sisetup{exponent-product=\ensuremath{\cdot}}
\usepackage{emoji}
% DEBUG
% \usepackage{lua-visual-debug}
% DUMB STUFF
% \usepackage{emoji}
% \newcommand\temoji[1]{\text{\emoji{#1}}}
% \def\sigma{\temoji{shark}}
% \def\lambda{\temoji{sheep}}
@ -86,16 +92,16 @@
% \def\nu{\temoji{unicorn}}
% \def\mu{\temoji{mouse}}
\newcommand{\TODO}[1]{{\color{fg-red}TODO:#1}}
\newcommand{\TODO}[1]{{\color{fg-red}TODO:#1}} % debug mode
\renewcommand{\TODO}[1]{} % release mode
\newcommand{\ts}{\textsuperscript}
\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{mqlua}
\usepackage{mqfqname}
\usepackage{mqsections}
\usepackage{mqref}
\input{util/macros.tex} % requires mqfqname
\input{util/math-macros.tex}
% TRANSLATION
% \usepackage{translations}
\usepackage{mqtranslation}
@ -107,6 +113,7 @@
\usepackage{mqformula}
\usepackage{mqperiodictable}
\input{util/environments.tex} % requires util/translation.tex to be loaded first
\title{Formelsammlung}
\author{Matthias Quintern}
@ -123,7 +130,7 @@
\input{util/translations.tex}
% \InputOnly{cm}
% \InputOnly{test}
\InputOnly{test}
\Input{math/math}
\Input{math/linalg}
@ -172,26 +179,8 @@
\Input{ch/el}
\Input{ch/misc}
\newpage
\Part{appendix}
\desc{Appendix}{}{}
\desc[german]{Anhang}{}{}
\begin{formula}{world}
\desc{World formula}{}{}
\desc[german]{Weltformel}{}{}
\eq{E = mc^2 +\text{AI}}
\end{formula}
\Input{quantities}
\Input{constants}
\Input{appendix}
% \listofquantities
\listoffigures
\listoftables
\Section{elements}
\desc{List of elements}{}{}
\desc[german]{Liste der Elemente}{}{}
\printAllElements
\newpage
\Input{test}
% \bibliographystyle{plain}

View File

@ -102,7 +102,7 @@
\eq{
\mat{\theta} = (\mat{X}^\T \mat{X})^{-1} \mat{X}^\T \vec{y}
}
\end{formula}
\end{formula}
\begin{formula}{woodbury_matrix_identity}
\desc{Woodbury matrix identity}{Inverse of a rank-$k$ correction}{$\matA\,n\times n$, $\matU\,n\times k$, $\matC\,k\times k$, $\matV \, k\times n$}

View File

@ -41,18 +41,21 @@
\end{formula}
\begin{formula}{pdf}
\abbrLabel{PDF}
\desc{Probability density function}{Random variable has density $f$. The integral gives the probability of $X$ taking a value $x\in[a,b]$.}{$f$ normalized: $\int_{-\infty}^\infty f(x) \d x= 1$}
\desc[german]{Wahrscheinlichkeitsdichtefunktion}{Zufallsvariable hat Dichte $f$. Das Integral gibt Wahrscheinlichkeit an, dass $X$ einen Wert $x\in[a,b]$ annimmt}{$f$ normalisiert $\int_{-\infty}^\infty f(x) \d x= 1$}
\eq{P([a,b]) := \int_a^b f(x) \d x}
\end{formula}
\begin{formula}{cdf}
\abbrLabel{CDF}
\desc{Cumulative distribution function}{}{$f$ probability density function}
\desc[german]{Kumulative Verteilungsfunktion}{}{$f$ Wahrscheinlichkeitsdichtefunktion}
\eq{F(x) = \int_{-\infty}^x f(t) \d t}
\end{formula}
\begin{formula}{pmf}
\abbrLabel{PMF}
\desc{Probability mass function}{Probability $p$ that \textbf{discrete} random variable $X$ has exact value $x$}{$P$ probability measure}
\desc[german]{Wahrscheinlichkeitsfunktion / Zählfunktion}{Wahrscheinlichkeit $p$ dass eine \textbf{diskrete} Zufallsvariable $X$ einen exakten Wert $x$ annimmt}{}
\eq{p_X(x) = P(X = x)}

View File

@ -1,13 +1,13 @@
\ProvidesPackage{mqformula}
\RequirePackage{framed} % for leftbar
\RequirePackage{mqfqname}
\RequirePackage{mqsections}
\RequirePackage{mqconstant}
\RequirePackage{mqquantity}
\RequirePackage{framed} % for leftbar
\newlength\mqformula@formulaBoxWidth
\setlength\mqformula@formulaBoxWidth{\the\dimexpr\textwidth * 65/100\relax}
\setlength\mqformula@formulaBoxWidth{\the\dimexpr\textwidth * 68/100\relax}
\newlength\mqformula@formulaBoxLeftMargin
\setlength\mqformula@formulaBoxLeftMargin{1cm}
\newlength\mqformula@ruleWidth
@ -23,7 +23,16 @@
\def\descwidth{\the\dimexpr\linewidth-\mqformula@formulaBoxWidth - \mqformula@formulaBoxLeftMargin\relax}
% \def\descwidth{0.2\textwidth}
\def\Newcommand#1{\let#1\undefined\newcommand#1}
% STYLING
% apply some transformation on the formula name/description/definitions, eg bold, color...
\newcommand\mqformula@nameTransform[1]{#1}
% \newcommand\mqformula@nameTransform[1]{\textbf{#1}}
% \newcommand\mqformula@nameTransform[1]{{\color{fg-blue}#1}}
\newcommand\mqformula@groupNameTransform[1]{\textbf{#1}}
% \newcommand\mqformula@groupNameTransform[1]{{\color{fg-blue}\textbf{#1}}}
\newcommand\mqformula@descTransform[1]{{\color{fg2}#1}}
\newcommand\mqformula@defsTransform[1]{{\color{fg2}#1}}
%
% FORMULA ENVIRONMENT
@ -35,13 +44,15 @@
% 2: fqname of name
% 3: fqname of a translation that holds the explanation
\newcommand{\NameWithDescription}[3][\descwidth]{%
\makeatletter%
\begin{minipage}{#1}
% {\color{red}\hrule}
\raggedright\GT{#2}%
\raggedright\mqformula@nameTransform{\GT{#2}}%
\IfTranslationExists{#3}{%
\\ {\color{fg1} \GT{#3}}%
\\ \mqformula@defsTransform{\GT{#3}}%
}{}
\end{minipage}%
\makeatother%
}
@ -54,39 +65,48 @@
\begin{lrbox}{\contentBoxBox}%
\begin{minipage}{#1}
}{
\makeatletter%
\IfTranslationExists{\ContentFqName}{%
\smartnewline%
\noindent%
\begingroup%
\color{fg1}%
\raggedright%
\GT{\ContentFqName}%
\endgroup%
}{}
\smartnewline\noindent\raggedright%
\mqformula@descTransform{\GT{\ContentFqName}}%
}{}%
\makeatother%
\end{minipage}
\end{lrbox}%
\fbox{\usebox{\contentBoxBox}}%
}
% Class defining commands shared by all formula environments
% defines commands that may be used in formulas and formulagroups
% None of these commands may output anything
% 1: key
\newenvironment{formulainternal}[1]{
\mqfqname@enter{#1}
\directlua{n_formulaEntries = 0}
\newenvironment{mqformulaInvisibleCommands}[1]{
% makes this formula referencable with \abbrRef{<name>}
% [1]: label to use
% [1]: label to use, defaults to formula key
% 2: Abbreviation to use for references
\Newcommand{\abbrLabel}[2][#1]{
\forceNewCommand{\abbrLabel}[2][#1]{
\abbrLink[\fqname]{##1}{##2}
}
% makes this formula referencable with \absRef{<name>}
% [1]: <name> to use, defaults to formula key
\Newcommand{\absLabel}[1][#1]{
\forceNewCommand{\absLabel}[1][#1]{
\absLink[\fqname]{\fqname}{##1}
}
% [1]: key, defaults to formula key
% 2: symbol
% 3: units
% 4: comment key to translation
\forceNewCommand{\hiddenQuantity}[4][#1]{%
\quantity@new[\fqname]{##1}{##2}{##3}{##4}
}
}{}
% Class defining commands shared by all formula environments
% 1: key
\newenvironment{mqformulaCommands}[1]{
\begin{mqformulaInvisibleCommands}{#1}
\directlua{n_formulaEntries = 0}
\newcommand{\newFormulaEntry}{
\directlua{
if n_formulaEntries > 0 then
@ -136,9 +156,6 @@
\newFormulaEntry
\quantity@print{##1}
}
\newcommand{\hiddenQuantity}[4][#1]{%
\quantity@new[\fqname]{##1}{##2}{##3}{##4}
}
% must be used only in third argument of "constant" command
% 1: value
@ -176,121 +193,95 @@
##1%
}
}{
\mqfqname@leave
\end{mqformulaInvisibleCommands}
}
\newenvironment{formula}[1]{
\begin{formulainternal}{#1}
\begingroup
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
% {\color{red}\hrule}
\NameWithDescription[\descwidth]{\fqname}{\fqname:desc}
\hfill
\begin{ContentBoxWithExplanation}{\fqname:defs}
\begin{sectionEntry}{#1}
\begin{mqformulaCommands}{#1}
\par\noindent\ignorespaces
% {\color{red}\hrule}
\NameWithDescription[\descwidth]{\fqname}{\fqname:desc}
\hfill
\begin{ContentBoxWithExplanation}{\fqname:defs}
}{
\end{ContentBoxWithExplanation}
\endgroup
\separateEntries
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
\ignorespacesafterend
\end{formulainternal}
\end{ContentBoxWithExplanation}
\end{mqformulaCommands}
\end{sectionEntry}
}
% BIG FORMULA
\newenvironment{bigformula}[1]{
\begin{formulainternal}{#1}
\par\noindent
\begin{minipage}{\textwidth} % using a minipage to now allow line breaks within the bigformula
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\raggedright\GT{\fqname}\ignorespaces%
\IfTranslationExists{\fqname:desc}{\ignorespaces%
: {\color{fg1} \GT{\fqname:desc}}
}{}
\hfill
\par
\begin{sectionEntry}{#1}
\begin{mqformulaCommands}{#1}
\makeatletter%
\par\noindent
\begin{minipage}{\textwidth} % using a minipage to now allow line breaks within the bigformula
\par\noindent\ignorespaces
% name
\raggedright\mqformula@nameTransform{\GT{\fqname}}\ignorespaces%
% description
\IfTranslationExists{\fqname:desc}{\ignorespaces%
: \mqformula@descTransform{\GT{\fqname:desc}}
}{}
\hfill
\par
}{
\IfTranslationExists{\fqname:defs}{%
\smartnewline
\noindent
\begingroup
\color{fg1}
\GT{\fqname:defs}
% \edef\temp{\GT{#1_defs}}
% \expandafter\StrSubstitute\expandafter{\temp}{:}{\\}
\endgroup
}{}
\end{minipage}
\separateEntries
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
\ignorespacesafterend
\end{formulainternal}
\IfTranslationExists{\fqname:defs}{%
\smartnewline
\noindent
\mqformula@defsTransform{\GT{\fqname:defs}}
}{}
\end{minipage}
\makeatother%
\end{mqformulaCommands}
\end{sectionEntry}
}
% GROUP
\newenvironment{formulagroup}[1]{
\mqfqname@enter{#1}
\begin{mqformulaInvisibleCommands}{#1}
\begin{sectionEntry}{#1}
% set nEntry to zero to prevent additional separations within the group
\def\oldNEntry{\value{nEntry}}
\setcounter{nEntry}{0}
% makes this formula referencable with \abbrRef{<name>}
% [1]: label to use
% 2: Abbreviation to use for references
\Newcommand{\abbrLabel}[2][#1]{
\abbrLink[\fqname]{##1}{##2}
}
% makes this formula referencable with \absRef{<name>}
% [1]: <name> to use, defaults to formula key
\Newcommand{\absLabel}[1][#1]{
\absLink[\fqname]{\fqname}{##1}
}
% adapted from framed - leftbar
\def\FrameCommand{{\color{bg4}\vrule width \mqformula@ruleWidth} \hspace{\mqformula@ruleHMargin}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}%
% adapted from framed - leftbar
\def\FrameCommand{{\color{bg4}\vrule width \mqformula@ruleWidth} \hspace{\mqformula@ruleHMargin}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}%
\par\noindent
\begin{minipage}{\textwidth-\mqformula@groupBarWidth}
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
\raggedright\textbf{\GT{\fqname}}\ignorespaces%
\IfTranslationExists{\fqname:desc}{%
: {\color{fg1} \GT{\fqname:desc}}
}{}%
\hfill
\par
\makeatletter%
\par\noindent
\begin{minipage}{\textwidth-\mqformula@groupBarWidth}
\mqfqname@label
\par\noindent\ignorespaces
% \textcolor{gray}{\hrule}
% \vspace{0.5\baselineskip}
% name
\raggedright\mqformula@groupNameTransform{\GT{\fqname}}\ignorespaces%
\IfTranslationExists{\fqname:desc}{%
: \mqformula@defsTransform{\GT{\fqname:desc}}
}{}%
\hfill
\par
}{
\IfTranslationExists{\fqname:defs}{%
\smartnewline
\noindent
\begingroup
\color{fg1}
\GT{\fqname:defs}
% \edef\temp{\GT{#1_defs}}
% \expandafter\StrSubstitute\expandafter{\temp}{:}{\\}
\endgroup
}{}
\end{minipage}
\endMakeFramed
\separateEntries
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
\ignorespacesafterend
\mqfqname@leave
\vspace{0.5\baselineskip}
\IfTranslationExists{\fqname:defs}{%
\smartnewline\noindent\raggedright%
\mqformula@defsTransform{\GT{\fqname:defs}}%
}{}
\end{minipage}
\makeatother%
\endMakeFramed
\setcounter{nEntry}{\oldNEntry}
\end{sectionEntry}
\end{mqformulaInvisibleCommands}
}
\newenvironment{hiddenformula}[1]{
\begin{formulainternal}{#1}
\begin{mqformulaCommands}{#1}
\mqfqname@enter{#1}
\renewcommand{\eq}[1]{}
\renewcommand{\eqFLAlign}[2]{}
\renewcommand{\fig}[2][]{}
@ -313,6 +304,7 @@
\endgroup
}
}{
\end{formulainternal}
\mqfqname@leave
\end{mqformulaCommands}
}

View File

@ -3,6 +3,9 @@
\RequirePackage{mqlua}
\RequirePackage{etoolbox}
% make newcommand work on already defined commands
\def\forceNewCommand#1{\let#1\undefined\newcommand#1}
\begin{luacode}
sections = sections or {}
@ -56,7 +59,7 @@
local relN = 0
local relTarget = ""
warning('translateRelativeFqname', '(target=' .. target .. ') ');
-- warning('translateRelativeFqname', '(target=' .. target .. ') ');
for i = 1, #target do
local c = target:sub(i,i)
if c == ":" then
@ -72,7 +75,7 @@
local N = fqnameGetDepth()
local newtarget = fqnameGetN(N - relN + 1) .. ":" .. relTarget
warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget);
-- warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget);
return newtarget
end
\end{luacode*}
@ -94,56 +97,4 @@
}
% Define translations for the current fqname
% [1]: language
% 2: name
% 3: description -> :desc
% 4: definitions/links -> :defs
\newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{#2}{}{\dt{#1}{#2}}
\ifblank{#3}{}{\dt[desc]{#1}{#3}}
\ifblank{#4}{}{\dt[defs]{#1}{#4}}
}
% SECTIONING
% start <section>, get heading from translation, set label
% 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
% 1: depth
% 2: key
% 3: Latex section command
\newcommand\mqfqname@section[3]{
\mqfqname@leaveOnlyFirstN{#1}
\mqfqname@enter{#2}
% 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}}
#3{\fqnameText}
\mqfqname@label
\IfTranslationExists{\fqname:desc}{
{\color{fg1} \GT{\fqname:desc}}
}{}
}
\newcommand{\Part}[1]{
\newpage
\mqfqname@section{0}{#1}{\part}
}
\newcommand{\Section}[1]{
\mqfqname@section{1}{#1}{\section}
}
\newcommand{\Subsection}[1]{
\mqfqname@section{2}{#1}{\subsection}
}
\newcommand{\Subsubsection}[1]{
\mqfqname@section{3}{#1}{\subsubsection}
}
\newcommand{\Paragraph}[1]{
\mqfqname@section{4}{#1}{\paragraph}
}
\newcommand\printFqName{\expandafter\detokenize\expandafter{\fqname}}

View File

@ -113,10 +113,11 @@
% Equations/Formulas
% Deprecated use fRef, absRef
% \newrobustcmd{\fqEqRef}[1]{%
\newrobustcmd{\fAbsRef}[2][]{%
\directlua{hyperref(\luastring{#2}, \luastring{#1})}%
}
% \newrobustcmd{\fAbsRef}[2][]{%
% \directlua{hyperref(\luastring{#2}, \luastring{#1})}%
% }
% [1]: link text
% 2: link target (fqname)
@ -126,30 +127,29 @@
% etc.
\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}}
% Deprecated: use :: with fRef
% % [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}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"fqname"}}%
% \hyperref[qty:#1]{\GT{\tempname}}%
\directlua{hyperref(quantityGetFqname(\luastring{#2}), \luastring{#1})}%
}
% <symbol> <name>
@ -159,8 +159,6 @@
% Constants
% <name>
\newrobustcmd{\constRef}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}%
% \hyperref[const:#1]{\GT{\tempname}}%
\directlua{hyperref(constantGetFqname(\luastring{#2}), \luastring{#1})}%
}
% <symbol> <name>
@ -209,6 +207,10 @@ function absLabelGetTranslationKey(key)
end
end
function absRef(key, text)
hyperref(absLabelGetTarget(key), text)
end
function abbrLabelAdd(key, target, label)
abbrLabels[key] = {
@ -232,6 +234,10 @@ function abbrLabelGetAbbr(key)
return ""
end
end
function abbrRef(key)
hyperref(abbrLabelGetTarget(key), abbrLabelGetAbbr(key))
end
\end{luacode}
% [1]: translation key, if different from target
@ -257,24 +263,9 @@ end
% [1]: text
% 2: key
\newcommand{\absRef}[2][]{%
% \directlua{
% local text = (\luastring{#1} == "") and absLabelGetTranslationKey(\luastring{#2}) or \luastring{#1}
% if text \string~= "" then
% text = tlGetFallbackCurrent(text)
% end
% hyperref(absLabelGetTarget(\luastring{#2}, text))
% }%
% TODO: find out if this works too, text shoud be handled by the hyperref function
\directlua{
hyperref(absLabelGetTarget(\luastring{#2}), \luastring{#1})
}
\directlua{absRef(\luastring{#2}, \luastring{#1})}%
}
% 1: key
\newrobustcmd{\abbrRef}[1]{%
\directlua{hyperref(abbrLabelGetTarget(\luastring{#1}), abbrLabelGetAbbr(\luastring{#1}))}
% if abbrLabels["#1"] == nil then
% tex.sprint(string.sanitize(\luastring{#1}) .. "???")
% else
% tex.sprint("\\hyperref[" .. abbrLabels["#1"]["fqname"] .. "]{" .. abbrLabels["#1"]["abbr"] .. "}")
% end
% }
\directlua{abbrRef(\luastring{#1})}%
}

84
src/pkg/mqsections.sty Normal file
View File

@ -0,0 +1,84 @@
\ProvidesPackage{mqsections}
\RequirePackage{mqfqname}
\RequirePackage{mqtranslation}
% SECTIONING
% start <section>, get heading from translation, set label
% 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
% 1: depth
% 2: key
% 3: Latex section command
\newcommand\mqfqname@section[3]{
\par
\mqfqname@leaveOnlyFirstN{#1}
\mqfqname@enter{#2}
% 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}}
#3{\fqnameText}
\mqfqname@label
\IfTranslationExists{\fqname:desc}{
{\color{fg1} \GT{\fqname:desc}}
}{}
\setcounter{nEntry}{0}
}
\newcommand{\Part}[1]{
\newpage
\mqfqname@section{0}{#1}{\part}
}
\newcommand{\Section}[1]{
\mqfqname@section{1}{#1}{\section}
}
\newcommand{\Subsection}[1]{
\mqfqname@section{2}{#1}{\subsection}
}
\newcommand{\Subsubsection}[1]{
\mqfqname@section{3}{#1}{\subsubsection}
}
\newcommand{\Paragraph}[1]{
\mqfqname@section{4}{#1}{\paragraph}
}
\newcommand\printFqName{\expandafter\detokenize\expandafter{\fqname}}
\newcounter{nEntry}
\setcounter{nEntry}{0}
% Separate elements with a horizontal rule
% Rule only printed of its not the first entry within the section
\newcommand\startEntry{
\par
\ifnum\value{nEntry}>0
\vspace{0.5\baselineskip}
\textcolor{fg3}{\hrule}
\vspace{0.5\baselineskip}
\fi
\addtocounter{nEntry}{1}
}
\newcommand\stopEntry{
% \ifnum\value{nEntry}>0
% \vspace{0.5\baselineskip}
% \textcolor{fg3}{\hrule}
% \vspace{0.5\baselineskip}
% \fi
% \addtocounter{nEntry}{1}
\ignorespacesafterend\par
}
\newenvironment{sectionEntry}[1]{
\startEntry
\mqfqname@enter{#1}
\begingroup
\mqfqname@label
}{
\endgroup
\mqfqname@leave
\stopEntry
}

View File

@ -113,7 +113,7 @@
% For ease of use in the ttext environment and the optional argument of the \Part, \Section, ... commands,
% all "define translation" commands use \fqname as default key
% Get a translation
% GETTING TRANSLATIONS
% expandafter required because the translation commands dont expand anything
% shortcuts for translations
% 1: key
@ -125,6 +125,8 @@
\newcommand{\tgt}[1]{\text{\gt{#1}}}
\newcommand{\tGT}[1]{\text{\GT{#1}}}
% PROVIDING TRANSLATIONS
% Define a new translation
% [1]: key, 2: lang, 3: translation
\newcommand{\dt}[3][\fqname]{%
@ -155,6 +157,7 @@
\newcommand{\Ger}[2][\fqname]{\DT[#1]{german}{#2}}
\newcommand{\Eng}[2][\fqname]{\DT[#1]{english}{#2}}
% UTLITY
\newcommand{\IfTranslationExists}[3]{%
\directlua{
if tlExistsFallback(language, \luastring{#1}) then
@ -177,3 +180,15 @@
\GT{\fqname}%
\mqfqname@leave%
}
% Define translations for the current fqname
% [1]: language
% 2: name
% 3: description -> :desc
% 4: definitions/links -> :defs
\newcommand{\desc}[4][english]{
% language, name, description, definitions
\ifblank{#2}{}{\dt{#1}{#2}}
\ifblank{#3}{}{\dt[desc]{#1}{#3}}
\ifblank{#4}{}{\dt[defs]{#1}{#4}}
}

View File

@ -285,7 +285,7 @@
\end{formula}
\Subsubsection{ehrenfest_theorem}
\desc{Ehrenfest theorem}{\GT{see_also} \fRef{qm:se:time:ehrenfest_theorem:correspondence_principle}}{}
\desc{Ehrenfest theorem}{\GT{see_also} \fRef{qm:basics:correspondence_principle}}{}
\desc[german]{Ehrenfest-Theorem}{}{}
\absLink{}{ehrenfest_theorem}

View File

@ -186,6 +186,19 @@
\quantity{L}{\henry=\kg\m^2\per\s^2\ampere^2=\weber\per\ampere=\volt\s\per\ampere=\ohm\s}{s}
\end{formula}
\begin{formula}{voltage}
\desc{Voltage}{Potential difference}{$\phi$ \qtyRef{electric_scalar_potential}}
\desc[german]{Spannung}{}{}
\eq{U = \phi_2 - \phi_1}
\quantity{U}{\volt=\kg\m^2\per\s^3\ampere}{s}
\end{formula}
\begin{formula}{capacitance}
\desc{Capacitance}{Amount of charge stored per voltage}{}
\desc[german]{Kapazität}{Gespeicherte Ladungsmenge pro Spannung}{}
\quantity{C}{\farad=\coulomb\per\volt}{s}
\end{formula}
\Subsection{other}
\desc{Others}{}{}
\desc[german]{Sonstige}{}{}

View File

@ -536,11 +536,11 @@
\eq{\braket{v^2} = \int_0^\infty \d v\,v^2 w(v) = \frac{3\kB T}{m}}
\end{formula}
\Subsubsection{molecule_gas}
\Subsection{molecule_gas}
\desc{Molecule gas}{}{}
\desc[german]{Molekülgas}{}{}
\begin{formula}{desc}
\begin{formula}{molecule_gas}
\desc{Molecule gas}{2 particles of mass $M$ connected by a ``spring'' with distance $L$}{}
\desc[german]{Molekülgas}{2 Teilchen der Masse $M$ sind verbunden durch eine ``Feder'' mit Länge $L$}{}
% \begin{figure}[h]

View File

@ -1,4 +1,5 @@
\part{Testing}
\Part{Testing}
\desc{Testing}{Very important}{}
\makeatletter
Sizes:
@ -24,92 +25,108 @@ Sizes:
% Translations Aux loaded? \translationsAuxLoaded\\
Input only: \inputOnlyFile
\paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation}
\addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}}
\noindent
GT: ttest = \GT{ttest}\\
% GetTranslation: ttest = \GetTranslation{ttest}\\
% Is english? = \IfTranslation{english}{ttest}{yes}{no} \\
% Is german? = \IfTranslation{german}{ttest}{yes}{no} \\
Is defined = \IfTranslationExists{ttest}{yes}{no} \\
\Section{translation}
\desc{Translations}{}{}
\desc[german]{Übersetzungen}{}{}
\paragraph{Testing translation keys containing macros}
\def\ttest{NAME}
% \addtranslation{english}{\ttest:name}{With variable}
% \addtranslation{german}{\ttest:name}{Mit Variable}
% \addtranslation{english}{NAME:name}{Without variable}
% \addtranslation{german}{NAME:name}{Without Variable}
\DT[\ttest:name]{english}{DT With variable}
\DT[\ttest:name]{german}{DT Mit Variable}
\noindent
GT: {\textbackslash}ttest:name = \GT{\ttest:name}\\
% GetTranslation: {\textbackslash}ttest:name = \GetTranslation{\ttest:name}\\
% Is english? = \IfTranslation{english}{\ttest:name}{yes}{no} \\
% Is german? = \IfTranslation{german}{\ttest:name}{yes}{no} \\
% Is defined? = \IfTranslationExists{\ttest:name}{yes}{no} \\
% Is defined? = \expandafter\IfTranslationExists\expandafter{\ttest:name}{yes}{no}
\paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation}
\addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}}
\noindent
GT: ttest = \GT{ttest}\\
% GetTranslation: ttest = \GetTranslation{ttest}\\
% Is english? = \IfTranslation{english}{ttest}{yes}{no} \\
% Is german? = \IfTranslation{german}{ttest}{yes}{no} \\
Is defined = \IfTranslationExists{ttest}{yes}{no} \\
\paragraph{Testing relative translations}
\begingroup
\edef\prevFqname{\fqname}
\edef\fqname{\prevFqname:test}
\eng{English, relative}
\ger{Deutsch, relativ}
\endgroup
\dt[testkey]{english}{Testkey}
{\textbackslash}gt\{test\}: \gt{test}\\
{\textbackslash}gt\{test\}: \gt{testkey}
\paragraph{Testing translation keys containing macros}
\def\ttest{NAME}
% \addtranslation{english}{\ttest:name}{With variable}
% \addtranslation{german}{\ttest:name}{Mit Variable}
% \addtranslation{english}{NAME:name}{Without variable}
% \addtranslation{german}{NAME:name}{Without Variable}
\DT[\ttest:name]{english}{DT With variable}
\DT[\ttest:name]{german}{DT Mit Variable}
\noindent
GT: {\textbackslash}ttest:name = \GT{\ttest:name}\\
% GetTranslation: {\textbackslash}ttest:name = \GetTranslation{\ttest:name}\\
% Is english? = \IfTranslation{english}{\ttest:name}{yes}{no} \\
% Is german? = \IfTranslation{german}{\ttest:name}{yes}{no} \\
% Is defined? = \IfTranslationExists{\ttest:name}{yes}{no} \\
% Is defined? = \expandafter\IfTranslationExists\expandafter{\ttest:name}{yes}{no}
% \DT[qty:test]{english}{HAHA}
\paragraph{Testing relative translations}
\begingroup
\edef\prevFqname{\fqname}
\edef\fqname{\prevFqname:test}
\eng{English, relative}
\ger{Deutsch, relativ}
\endgroup
\dt[testkey]{english}{Testkey}
{\textbackslash}gt\{test\}: \gt{test}\\
{\textbackslash}gt\{test\}: \gt{testkey}
\paragraph{Testing hyperrefs}
\noindent{This text is labeled with "test" \label{test}}\\
\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}
\\ Link to element with name: \ElRef{H}
\begin{equation}
\label{eq:test}
E = mc^2
\end{equation}
% \DT[qty:test]{english}{HAHA}
\paragraph{Testing translation keys with token symbols like undescores}
\noindent
\GT{absolute_undefined_translation_with_underscors}\\
\gt{relative_undefined_translation_with_underscors}\\
\GT{absolute_undefined_translation_with_&ampersand}
\paragraph{Testing formula2}
\begin{formula}{test}
\desc{Test}{Test Description}{Defs}
\desc[german]{Test (DE)}{Beschreibung}{Defs (DE)}
\eq{
\text{equationwith}_{\alpha} \delta \E \left[yo\right]
}
\quantity{\tau}{\m\per\s}{iv}
\end{formula}
\begin{formula}{test2}
\desc{Test2}{Test Description}{Defs}
\desc[german]{Test2 (DE)}{Beschreibung}{Defs (DE)}
\ttxt{
\eng{This text is english}
\ger{Dieser Text ist deutsch}
}
\ttxt[moretext]{
\eng{This text is english, again}
\ger{Dieser Text ist wieder deutsch}
}
\paragraph{Testing hyperrefs}
\noindent{This text is labeled with "test" \label{test}}\\
\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}
\\ Link to element with name: \ElRef{H}
\begin{equation}
M\omega\rho\epsilon
\label{eq:test}
E = mc^2
\end{equation}
\end{formula}
\begin{formula}{test3}
\desc{Test2}{Test Description}{Defs}
\desc[german]{Test2 (DE)}{Beschreibung}{Defs (DE)}
Formula with just plain text.
\end{formula}
\paragraph{Testing translation keys with token symbols like undescores}
\noindent
\GT{absolute_undefined_translation_with_underscors}\\
\gt{relative_undefined_translation_with_underscors}\\
\GT{absolute_undefined_translation_with_&ampersand}
\Section{formula}
\desc{Formula and Maths}{}{}
\desc[german]{Formula und Mathe}{}{}
\begin{formula}{test}
\desc{Test}{Test Description}{Defs}
\desc[german]{Test (DE)}{Beschreibung}{Defs (DE)}
\eq{
\text{equationwith}_{\alpha} \delta \E \left[yo\right]
}
\quantity{\tau}{\m\per\s}{iv}
% \quantity{tau}{mpers}{iv}
\constant{\mu}{exp}{
\val{1023}{\m\per\s}
}
\newFormulaEntry
\begin{gather}
\vec{XX} = \vecA_\vecB \otimes C^\vecD \\
\mat{XX} = \matA_\matB \otimes C^\matD \\
\ten{XX} = \tenA_\tenB \otimes C^\tenD
\end{gather}
\end{formula}
\begin{formula}{test2}
\desc{Test2}{Test Description}{Defs}
\desc[german]{Test2 (DE)}{Beschreibung}{Defs (DE)}
\ttxt{
\eng{This text is english}
\ger{Dieser Text ist deutsch}
}
\ttxt[moretext]{
\eng{This text is english, again}
\ger{Dieser Text ist wieder deutsch}
}
\begin{equation}
M\omega\rho\epsilon
\end{equation}
\end{formula}
\begin{formula}{test3}
\desc{Test2}{Test Description}{Defs}
\desc[german]{Test2 (DE)}{Beschreibung}{Defs (DE)}
Formula with just plain text.
\end{formula}
@ -118,22 +135,14 @@ Link to defined quantity: \qtyRef{mass}
\desc{Layout Test}{}{}
\desc[german]{}{}{}
\begin{formula}{tt1}
\desc{Formula}{Desc}{Defs}
\eq{E=mc^2}
\end{formula}
\begin{bigformula}{tt2}
\desc{Big formula}{Desc}{Defs}
\eq{E=mc^3}
\end{bigformula}
\begin{formulagroup}{tt3}
\desc{Formula group}{Desc}{Defs}
\begin{formula}{tt1}
\desc{Formula}{Desc}{Defs}
\eq{E=mc^2}
\ttxt{\eng{
Translated text via ttxt.
}\ger{
Übersetzter text mit ttxt.
}}
\end{formula}
\begin{bigformula}{tt2}
@ -141,4 +150,17 @@ Link to defined quantity: \qtyRef{mass}
\eq{E=mc^3}
\end{bigformula}
\end{formulagroup}
\begin{formulagroup}{tt3}
\desc{Formula group}{Desc}{Defs}
\begin{formula}{tt1}
\desc{Formula}{Desc}{Defs}
\eq{E=mc^2}
\end{formula}
\begin{bigformula}{tt2}
\desc{Big formula}{Desc}{Defs}
\eq{E=mc^3}
\end{bigformula}
\end{formulagroup}

View File

@ -1,12 +1,3 @@
\newcommand\separateEntries{
\vspace{0.5\baselineskip}
\textcolor{fg3}{\hrule}
\vspace{0.5\baselineskip}
}
% Custon environment with table of contents, requires etoolbox?
% Define a custom list
\newcommand{\listofmyenv}{%
@ -32,6 +23,18 @@
\def\distrightwidth{0.45}
\def\distleftwidth{0.45}
\begin{luacode}
distRefs = {
mean = "math:pt:mean",
variance = "math:pt:variance",
median = "math:pt:median",
}
distAbbrRefs = {
pdf = "pdf",
pmf = "pmf",
cdf = "cdf",
}
\end{luacode}
% Table for distributions
% create entries for parameters using \disteq
\newenvironment{distribution}{
@ -39,21 +42,15 @@
% 2: math
\newcommand{\disteq}[2]{
% add links to some names
\directlua{
local cases = {
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[\luastring{##1}] \string~= nil then
tex.sprint("\\fRef{"..cases[\luastring{##1}].."}")
else
tex.sprint("\\GT{##1}")
end
}
\luaexec{
if distRefs[\luastring{##1}] ~= nil then
hyperref(distRefs[\luastring{##1}])
elseif distAbbrRefs[\luastring{##1}] ~= nil then
abbrRef(distAbbrRefs[\luastring{##1}])
else
tex.sprint(tlGetFallbackCurrent(translateRelativeFqname(\luastring{##1})))
end
}%
& ##2 \\ \hline
}
\hfill

View File

@ -3,6 +3,15 @@
\newcommand\gooditem{\item[{$\color{fg-green}\bullet$}]}
\newcommand\baditem{\item[{$\color{fg-red}\bullet$}]}
\AtBeginDocument{
\newcommand\blacksquare{\mdblksquare}
% \forceNewCommand\checkmark{\emoji{check-mark}}
\newcommand\symForbidden{\emoji{cross-mark}}
\newcommand\symAllowed{\emoji{check-mark}}
% \forceNewCommand\crossmark{$\times$}
}
% INPUT
% 1: starting pattern of files to input using the Input command. All other files are ignored
\newcommand\InputOnly[1]{\edef\inputOnlyFile{#1}}

View File

@ -1,3 +1,6 @@
% This file is also sourced by matplotlib,
% it must thus not contain dependencies except those
% specified in the preamble in scripts/formulary.py
% Functions with (optional) paranthesis
% 1: The function (like \exp, \sin etc.)
@ -18,6 +21,21 @@
}
}
% VECTOR, MATRIX and TENSOR
\AtBeginDocument{ % unicode-math defines them at begin document, need to overwrite vec there
% use vecAr to force an arrow
\NewCommandCopy{\vecAr}{\vec}
% extra {} assure they can b directly used after _
%% arrow/underline
\newcommand\mat[1]{{\ensuremath{\underline{#1}}}}
\renewcommand\vec[1]{{\ensuremath{\vecAr{#1}}}}
\newcommand\ten[1]{{\ensuremath{[#1]}}}
\newcommand\complex[1]{{\ensuremath{\tilde{#1}}}}
}
%% bold
% \newcommand\mat[1]{{\ensuremath{\bm{#1}}}}
% \renewcommand\vec[1]{{\ensuremath{\bm{#1}}}}
% COMMON SYMBOLS WITH SUPER/SUBSCRIPTS, VECTOR ARROWS ETC.
% \def\laplace{\Delta} % Laplace operator
@ -49,10 +67,10 @@
% \newcommand\O{\mathcal{O}} % order
\newcommand\PhiB{\Phi_\text{B}} % mag. flux
\newcommand\PhiE{\Phi_\text{E}} % electric flux
\newcommand\nreal{n^{\prime}} % refraction real part
\newcommand\ncomplex{n^{\prime\prime}} % refraction index complex part
\newcommand\epsreal{\epsilon^{\prime}} % permittivity real part
\newcommand\epscomplex{\epsilon^{\prime\prime}} % permittivity complex part
\newcommand\nReal{n^{\prime}} % refraction real part
\newcommand\nImag{n^{\prime\prime}} % refraction index complex part
\newcommand\epsReal{\epsilon^{\prime}} % permittivity real part
\newcommand\epsImag{\epsilon^{\prime\prime}} % permittivity complex part
\newcommand\I{i} % complex/imaginary unit
\newcommand\crit{\text{crit}} % crit (for subscripts)
\newcommand\muecp{\overline{\mu}} % electrochemical potential
@ -186,15 +204,3 @@
\newcommand\Log[1]{\CmdWithParenthesis{\log}{#1}}
\newcommand\Order[1]{\CmdWithParenthesis{\mathcal{O}}{#1}}
% VECTOR, MATRIX and TENSOR
% use vecAr to force an arrow
\NewCommandCopy{\vecAr}{\vec}
% extra {} assure they can b directly used after _
%% arrow/underline
\newcommand\mat[1]{{\ensuremath{\underline{#1}}}}
\renewcommand\vec[1]{{\ensuremath{\vecAr{#1}}}}
\newcommand\ten[1]{{\ensuremath{[#1]}}}
\newcommand\complex[1]{{\ensuremath{\tilde{#1}}}}
%% bold
% \newcommand\mat[1]{{\ensuremath{\bm{#1}}}}
% \renewcommand\vec[1]{{\ensuremath{\bm{#1}}}}

View File

@ -31,10 +31,10 @@
\Eng[semiconductor]{Semiconductor}
\Ger[semiconductor]{Halbleiter}
\Eng{conduction band}{conduction band}
\Ger{conduction band}{Leitungsband}
\Eng{valence band}{valance band}
\Ger{valence band}{Valenzband}
\Eng[conduction band]{conduction band}
\Ger[conduction band]{Leitungsband}
\Eng[valence band]{valance band}
\Ger[valence band]{Valenzband}
\Eng[creation_annihilation_ops]{Creation / Annihilation operators}