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 omegas_THz = omegas / 1e12
anno_color = COLORSCHEME["fg2"] 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_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].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[-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[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] vals = [eps_real, eps_imag]
for i in range(2): for i in range(2):
ax = axs[i] 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 %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} \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}} {$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} \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] 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}} \intertext{\GT{with}}
\alpha_\txA = 1 - \alpha_\txC \alpha_\txA = 1 - \alpha_\txC
\end{gather} \end{gather}
\separateEntries
\fig{img/ch_butler_volmer.pdf} \fig{img/ch_butler_volmer.pdf}
\end{formula} \end{formula}

View File

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

View File

@ -292,3 +292,121 @@
} }
\end{formula} \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} \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. \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$. 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. \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$. 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{\GT{misc}}{}{}
% \desc[german]{\GT{misc}}{}{} % \desc[german]{\GT{misc}}{}{}
\begin{formula}{vdw_material} \begin{formula}{vdw_material}
\desc{Van-der-Waals material}{2D materials}{} \desc{Van-der-Waals material}{2D materials}{}
\desc[german]{Van-der-Waals Material}{2D Materialien}{} \desc[german]{Van-der-Waals Material}{2D Materialien}{}
@ -178,28 +177,18 @@
}} }}
\end{formula} \end{formula}
\begin{formula}{work_function} \begin{formula}{work_function}
\desc{Work function}{Lowest energy required to remove an electron into the vacuum}{} \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}{} \desc[german]{Austrittsarbeit}{eng. "Work function"; minimale Energie um ein Elektron aus dem Festkörper zu lösen}{}
\quantity{W}{\eV}{s} \quantity{\Phi}{\volt}{s}
\eq{W = \Evac - \EFermi} \eq{e\Phi = \Evac - \EFermi}
\end{formula} \end{formula}
\begin{formula}{electron_affinity} \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{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}{} \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} \quantity{\chi}{\volt}{s}
\eq{\chi = \left(\Evac - \Econd\right)} \eq{e\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}
}
\end{formula} \end{formula}
\begin{formula}{vacuum} \begin{formula}{vacuum}
@ -208,11 +197,16 @@
\ttxt{\eng{ \ttxt{\eng{
\begin{itemize} \begin{itemize}
\item \textbf{Rough vacuum}: \SI{1}{\atm} - \SI{10e-2}{\milli\bar} \\ viscous flow \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{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{mfp} $>$ chamber size, mostly residual \ce{H20} vapor \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{mfp} $\gg$ chamber size, mostly residual \ce{H2} \item \textbf{Ultra-high vacuum}: $<$ \SI{10e-9}{\milli\bar} \\ \abbrRef{mean_free_path} $\gg$ chamber size, mostly residual \ce{H2}
\end{itemize} \end{itemize}
}\ger{ }\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} \end{formula}

View File

@ -2,9 +2,9 @@
\desc{Optics}{}{} \desc{Optics}{}{}
\desc[german]{Optik}{}{} \desc[german]{Optik}{}{}
\Subsection{insulator} % \Subsection{insulator}
\desc{Dielectrics and Insulators}{}{} % \desc{Dielectrics and Insulators}{}{}
\desc[german]{Dielektrika und Isolatoren}{}{} % \desc[german]{Dielektrika und Isolatoren}{}{}
\begin{formula}{eom} \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}} \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} \end{formula}
\begin{formula}{lorentz} \begin{formula}{lorentz}
\desc{Drude-Lorentz model}{Dipoles treated as classical harmonic oscillators}{$N$ number of oscillators (atoms), $\omega_0$ resonance frequency } \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}{} \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 + \frac{Ne^2}{\epsilon_0 m_\txe} \left(\frac{1}{\omega^2-\omega^2-i\gamma\omega}\right)} \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{ \eq{
\complex{\epsilon}_\txr(0) &\to 1+\chi + \frac{Ne^2}{\epsilon_0 m_\txe \omega_0^2} \\ \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 \complex{\epsilon}_\txr(\infty) &= \epsilon_\infty = 1+\chi_\txe
} }
\fig{img/cm_optics_absorption_dielectric.pdf} \fig{img/cm_optics_absorption_dielectric.pdf}
\end{formula} \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{\qtyRef{absorption_coefficient}}{For a direct semiconductor}{\QtyRef{angular_frequency}, \QtyRef{refraction_index_real}, \QtyRef{permittivity_complex}}
\desc[german]{}{Für direkte Halbleiter}{} \desc[german]{}{Für direkte Halbleiter}{}
\eq{ \eq{
\alpha &= \frac{\omega}{\nreal c} \epsreal \\ \alpha &= \frac{\omega}{\nReal c} \epsReal \\
\left(\hbar\omega\alpha\right)^2 \propto \hbar\omega-\Egap \left(\hbar\omega\alpha\right)^2 \propto \hbar\omega-\Egap
} }
\end{formula} \end{formula}
@ -130,31 +130,68 @@
} }
\end{formula} \end{formula}
\begin{formula}{exciton}
\begin{formulagroup}{quantum_well} \desc{\fRef[Exciton]{cm:sc:exciton} absorption}{}{\QtyRef{band_gap}, $E_\text{binding}$ \fRef{cm:sc:exciton:binding_energy}}
\desc{Interband absorption in quantum wells}{}{} \desc[german]{\fRef[Exciton]{cm:sc:exciton} Absorption}{}{}
\desc[german]{Interbandabsorption in Quantum Wells}{}{} \ttxt{\eng{
\TODO{TODO} Due to binding energy, exciton absorption can happen below the \absRef[band gap energy]{band_gap} \Rightarrow Sharp absorption peak below $\Egap$.
\end{formulagroup} At high (room) temperatures, excitons are ionized by collisions with phonons.
}\ger{
\begin{formulagroup}{exciton} Aufgrund der Bindungsenergie kann die Exzitonenabsorption unterhalb der \absRef[Bandlückenenergie]{band_gap} auftreten \Rightarrow scharfer Absorptionspeak unterhalb von $\Egap$.
\desc{\fRef{cm:sc:exciton} absorption}{}{\QtyRef{band_gap}, $E_\text{binding}$ \fRef{cm:sc:exciton:binding_energy}} Bei hohen (Raum) Temperaturen werden Exzitons durch Kollisionen mit Phononen ionisiert.
\desc[german]{\fRef{cm:sc:exciton} Absorption}{}{} }}
\begin{formula}{absorption} \eq{\hbar\omega = \Egap - E_\text{binding}}
\desc{Absorption}{}{} \end{formula}
\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}
\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} \TODO{dipole approximation}

View File

@ -28,13 +28,13 @@
\desc[german]{Definition}{}{} \desc[german]{Definition}{}{}
\hiddenQuantity[band_gap]{\Egap}{\electronvolt}{s} \hiddenQuantity[band_gap]{\Egap}{\electronvolt}{s}
\ttxt{\eng{ \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} \begin{itemize}
\item \textbf{direct}: HO and LU at same $\veck$ \item \textbf{direct}: HO and LU at same $\veck$
\item \textbf{indirect} HO and LU at different $\veck$ \item \textbf{indirect} HO and LU at different $\veck$
\end{itemize} \end{itemize}
}\ger{ }\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} \begin{itemize}
\item \textbf{direkt}: HO und LU bei gleichem $\veck$ \item \textbf{direkt}: HO und LU bei gleichem $\veck$
\item \textbf{indirekt}: HO und LU bei unterschiedlichem $\veck$ \item \textbf{indirekt}: HO und LU bei unterschiedlichem $\veck$
@ -49,10 +49,9 @@
\ttxt{\eng{ \ttxt{\eng{
$T\uparrow\quad\Rightarrow \Egap\downarrow$ $T\uparrow\quad\Rightarrow \Egap\downarrow$
\begin{itemize} \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 \item Low temperature: less phonons avaiable for electron-phonon scattering
\end{itemize} \end{itemize}
\TODO{why?}
}\ger{ }\ger{
$T\uparrow\quad\Rightarrow \Egap\downarrow$ $T\uparrow\quad\Rightarrow \Egap\downarrow$
\begin{itemize} \begin{itemize}
@ -117,7 +116,7 @@
\end{formulagroup} \end{formulagroup}
\begin{formula}{band_edge_dos} \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}{}{} \desc[german]{Bandkanten-Zustandsdichte}{}{}
\eq{ \eq{
N_\txC &= 2\left(\frac{\meff_\txe\kB T}{2\pi\hbar^2}\right)^{3/2} \\ N_\txC &= 2\left(\frac{\meff_\txe\kB T}{2\pi\hbar^2}\right)^{3/2} \\
@ -174,17 +173,17 @@
\end{formula} \end{formula}
\begin{formula}{charge_neutrality} \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{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}} \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} \eq{0 = N_\txD^+ + p - N_\txA^- -n}
\end{formula} \end{formula}
\begin{formula}{ionization_ratio} \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{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[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{ \eq{
\frac{N_\txd^+}{N_\txd} &= 1- \frac{1}{1+\frac{1}{g}\Exp{\frac{E_\txD-\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}}} \frac{N_\txA^-}{N_\txA} &= \frac{1}{1+g\Exp{\frac{E_\txA-\Efermi}{\kB T}}}
} }
\end{formula} \end{formula}
@ -218,123 +217,46 @@
}} }}
\end{formula} \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} \Subsection{Recombination}
\desc{Interstitial}{}{} \desc{Recombination}{}{}
\desc[german]{}{}{} \desc[german]{Rekombination}{}{}
\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} \begin{formula}{shockley-read}
\desc{Schottky defect}{}{} \desc{Shockley-Read-Hall recombination}{}{}
\desc[german]{Schottky-Defekt}{}{} \desc[german]{Shockley-Read-Hall Rekombination}{}{}
\ttxt{\eng{ \ttxt{\eng{
Atom type A \fRef{:::vacancy} + atom type B \fRef{:::vacancy}. Recombination via defect states in the band gap:
Only in (partially) ionic materials. Electron capture, electron emission, hole capture, hole emission
}\ger{ }\ger{
\fRef{:::vacancy} von Atomsorte A und \fRef{:::vacancy} von Atomsorte B. Rekombination über Defektzustände in der Bandlücke:
Tritt nur in ionischen Materialiern auf. Elektroneneinfang, Elektronenemission, Locherfassung, Locheremission
}} }}
\end{formula} \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}{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} \Subsection{devices}
\desc{Devices and junctions}{}{} \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_separate.tex}}
\resizebox{0.49\textwidth}{!}{\input{img_static/cm/sc_junction_metal_n_sc.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{ \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 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{ }\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} \end{bigformula}
\begin{formula}{full_depletion_approx} \begin{formula}{full_depletion_approx}
@ -412,16 +333,16 @@
\end{bigformula} \end{bigformula}
\begin{formula}{no_bias} \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{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_{n/p}$ \qtyRef[Elektronendichte]{charge_carrier_density} in der $n$/$p$ Seite} \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_n}{n_p}}} \eq{U_\text{bias}= \left(\frac{\kB T}{e}\right) \Ln{\frac{n_{0,n}}{n_{0,p}}}}
\end{formula} \end{formula}
\end{formulagroup} \end{formulagroup}
\TODO{Forward bias: negativ an n, positiv an p} \TODO{Forward bias: negativ an n, positiv an p}
\begin{formulagroup}{2deg} \begin{formulagroup}{2deg}
\desc{Heterointerface}{2DEG, \fRef{cm:sc:doping:modulation}}{} \desc{Heterointerface}{2DEG, \fRef{cm:sc:dope:modulation}}{}
% \desc[german]{}{}{} % \desc[german]{}{}{}
\begin{formula}{schematic} \begin{formula}{schematic}
\desc{Schematic and band diagram}{}{} \desc{Schematic and band diagram}{}{}
@ -486,11 +407,92 @@
} }
\end{formula} \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} \Subsubsection{other}
\desc{Other}{}{} \desc{Other}{}{}
\desc[german]{Andere}{}{} \desc[german]{Andere}{}{}
\begin{formula}{single_electron_box} \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}{}{} \desc[german]{Ein-Elektronen-Box}{}{}
\fcenter{ \fcenter{
\begin{tikzpicture} \begin{tikzpicture}
@ -534,14 +536,14 @@
\eng[free_X]{for free Excitons} \eng[free_X]{for free Excitons}
\ger[free_X]{für freie Exzitons} \ger[free_X]{für freie Exzitons}
\begin{formula}{rydbrg} \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]{}{}{} \desc[german]{}{}{}
\eq{ \eq{
E(n) = - \left(\frac{\mu}{m_0\epsilon_r^2}\right) R_\txH \frac{1}{n^2} E(n) = - \left(\frac{\mu}{m_0\epsilon_r^2}\right) R_\txH \frac{1}{n^2}
} }
\end{formula} \end{formula}
\begin{formula}{bohr_radius} \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}{}{} \desc[german]{Exziton-Bohr Radius}{}{}
\eq{ \eq{
r_n = \left(\frac{m_\txe\epsilon_r a_\txB}{\mu}\right) n^2 r_n = \left(\frac{m_\txe\epsilon_r a_\txB}{\mu}\right) n^2
@ -549,7 +551,7 @@
\end{formula} \end{formula}
\begin{formula}{binding_energy} \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}{}{} \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}} \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} \end{formula}
@ -560,10 +562,4 @@
\eq{\abs{\E_\text{ion}} \approx \frac{2R^*}{e a_\txX}} \eq{\abs{\E_\text{ion}} \approx \frac{2R^*}{e a_\txX}}
\end{formula} \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} \TODO{stark effect/shift, adv sc. slide 502}

View File

@ -232,11 +232,11 @@
\begin{formula}{range-separated-hybrid} \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{Range separated hyrid functionals (RSH)}{Here HSE as example}{$\alpha$ mixing paramter, $E_\txX$ exchange energy, $E_\txC$ correlation energy}
% \desc[german]{}{}{} % \desc[german]{}{}{}
\newFormulaEntry
\begin{gather} \begin{gather}
\frac{1}{r} = \frac{\erf(\omega r)}{r} + \frac{\erfc{\omega r}}{r} \\ \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} 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} \end{gather}
\separateEntries
\ttxt{\eng{ \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). 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. \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{Dipole moment}{}{}
\desc[german]{Dipolmoment}{}{} \desc[german]{Dipolmoment}{}{}
\begin{formula}{definition} \begin{formula}{dipole_moment}
\desc{Defintion}{}{$q$ \qtyRef{charge}, $l$ distance between charges} \desc{Dipole moment}{}{$q$ \qtyRef{charge}, $l$ distance between charges}
\desc[german]{Defintion}{}{} \desc[german]{Dipolmoment}{}{}
\quantity[dipole_moment]{\vecp}{\coulomb\meter}{v} \quantity[dipole_moment]{\vecp}{\coulomb\meter}{v}
\eq{\vecp &= ql\vece_l} \eq{\vecp &= ql\vece_l}
\end{formula} \end{formula}
@ -42,13 +42,13 @@
\desc{misc}{}{} \desc{misc}{}{}
\desc[german]{misc}{}{} \desc[german]{misc}{}{}
\begin{formula}{impedance_r} \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}{}{} \desc[german]{Impedanz eines Ohmschen Widerstands}{}{}
\eq{Z_{R} = R} \eq{Z_{R} = R}
\end{formula} \end{formula}
\begin{formula}{impedance_c} \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}{}{} \desc[german]{Impedanz eines Kondensators}{}{}
\eq{Z_{C} = \frac{1}{\I\omega C}} \eq{Z_{C} = \frac{1}{\I\omega C}}
\end{formula} \end{formula}
@ -77,7 +77,7 @@
\desc{Capacitor}{} \desc{Capacitor}{}
\desc[german]{Kondensator} \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{Parallel plate capacitor}{}{\ConstRef{vacuum_permittivity}, \QtyRef{relative_permittivity}, \QtyRef{area}, $d$ \qtyRef{length}}
\desc[german]{Plattenkondensator}{}{} \desc[german]{Plattenkondensator}{}{}
\eq{C = \epsilon_0 \epsilon_\txr \frac{A}{d}} \eq{C = \epsilon_0 \epsilon_\txr \frac{A}{d}}

View File

@ -6,32 +6,32 @@
\begin{formulagroup}{refraction_index} \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}{} \desc[german]{Brechungsindex}{Macroscopisch}{}
\begin{formula}{definition} \begin{formula}{definition}
\desc{Definition}{}{} \desc{Refraction index}{}{}
\desc[german]{Definition}{}{} \desc[german]{Brechungsindex}{}{}
\quantity{\complex{n}}{}{s} \quantity{\complex{n}}{}{s}
\eq{ \eq{
\complex{n} = \nreal + i\ncomplex \complex{n} = \nReal + i\nImag
} }
\end{formula} \end{formula}
\begin{formula}{real} \begin{formula}{real}
\desc{Real part}{}{} \desc{Real part of the refraction index}{}{}
\desc[german]{Reller Teil}{}{} \desc[german]{Reller Teil des Brechungsindex}{}{}
\quantity[refraction_index_real]{\nreal}{}{s} \quantity[refraction_index_real]{\nReal}{}{s}
\eq{ \eq{
n = \sqrt{\epsilon_\txr \mu_\txr} \nReal = \sqrt{\epsilon_\txr \mu_\txr}
} }
\eq{ \eq{
n = \frac{c_0}{c_\txM} \nReal = \frac{c_0}{c_\txM}
} }
\end{formula} \end{formula}
\begin{formula}{complex} \begin{formula}{complex}
\desc{Extinction coefficient}{Complex part of the refraction index. Describes absorption in a medium}{\GT{sometimes} $\kappa$} \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}{} \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{formula}
\end{formulagroup} \end{formulagroup}
@ -44,9 +44,9 @@
\end{formula} \end{formula}
\begin{formula}{snell} \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)} \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} \end{formula}
\begin{formula}{group_velocity} \begin{formula}{group_velocity}
@ -70,7 +70,7 @@
\desc[german]{Absoprtionskoeffizient}{Intensitätsverringerung beim Druchgang eines Mediums, nicht zwingend durch Energieabgabe an Medium}{} \desc[german]{Absoprtionskoeffizient}{Intensitätsverringerung beim Druchgang eines Mediums, nicht zwingend durch Energieabgabe an Medium}{}
\quantity{\alpha}{\per\cm}{s} \quantity{\alpha}{\per\cm}{s}
\eq{ \eq{
\alpha &= 2\ncomplex \frac{\omega}{c} \alpha &= 2\nImag \frac{\omega}{c}
} }
\TODO{Is this equation really true in general?} \TODO{Is this equation really true in general?}
\end{formula} \end{formula}
@ -102,23 +102,23 @@
\begin{formulagroup}{permittivity_complex} \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{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}{} \desc[german]{Komplexe relative \qtyRef{permittivity}}{Komplexe dielektrische Funktion\\Mikroskopisch, Verhalten eines Atoms gegen eine EM-Welle}{}
\begin{formula}{definition} \begin{formula}{permittivity_complex}
\desc{Definition}{}{} \desc{Complex relative permittivity}{}{}
\desc[german]{Definition}{}{} \desc[german]{Komplexe relative Permittivität}{}{}
\eq{\epsilon_\txr &= \epsreal + i\epscomplex} \eq{\epsilon_\txr &= \epsReal + i\epsImag}
\end{formula} \end{formula}
\begin{formula}{real} \begin{formula}{real}
\desc{Real part}{}{} \desc{Real part}{}{}
\desc[german]{Realteil}{}{} \desc[german]{Realteil}{}{}
\eq{\epsreal &= {\nreal}^2 - {\ncomplex}^2} \eq{\epsReal &= {\nReal}^2 - {\nImag}^2}
\hiddenQuantity[permittivity_real]{\epsreal}{}{} \hiddenQuantity[permittivity_real]{\epsReal}{}{}
\end{formula} \end{formula}
\begin{formula}{complex} \begin{formula}{complex}
\desc{Complex part}{}{} \desc{Complex part}{}{}
\desc[german]{Komplexer Teil}{}{} \desc[german]{Komplexer Teil}{}{}
\eq{\epscomplex &= 2\nreal \ncomplex} \eq{\epsImag &= 2\nReal \nImag}
\hiddenQuantity[permittivity_complex]{\epscomplex}{}{} \hiddenQuantity[permittivity_complex]{\epsImag}{}{}
\end{formula} \end{formula}
\end{formulagroup} \end{formulagroup}

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

View File

@ -48,8 +48,13 @@
% \tikzexternalize[prefix=tikz_figures] % \tikzexternalize[prefix=tikz_figures]
% \tikzexternalize % \tikzexternalize
\usepackage{circuitikz} % electrical circuits with tikz \usepackage{circuitikz} % electrical circuits with tikz
\input{circuit.tex} % custom circuits TODO: move to util
% SCIENCE PACKAGES % SCIENCE PACKAGES
\usepackage{mathtools} \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 % set display math skips
\AtBeginDocument{ \AtBeginDocument{
\abovedisplayskip=0pt \abovedisplayskip=0pt
@ -57,14 +62,14 @@
\belowdisplayskip=0pt \belowdisplayskip=0pt
\belowdisplayshortskip=0pt \belowdisplayshortskip=0pt
} }
\usepackage{MnSymbol} % for >>> \ggg sign % \usepackage{MnSymbol} % for >>> \ggg sign
\usepackage[version=4,arrows=pgf-filled]{mhchem} \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{chemmacros} % for orbitals images
% \usepackage{esdiff} % derivatives % \usepackage{esdiff} % derivatives
% esdiff breaks when taking \dot{q} has argument % esdiff breaks when taking \dot{q} has argument
\usepackage{derivative} % \odv, \pdv \usepackage{derivative} % \odv, \pdv
\usepackage{bbold} % \mathbb font % \usepackage{bbold} % \mathbb font -> unicode-math
\usepackage{braket} % <bra|ket> \usepackage{braket} % <bra|ket>
\usepackage{siunitx} % \si \SI units \usepackage{siunitx} % \si \SI units
\sisetup{output-decimal-marker = {,}} \sisetup{output-decimal-marker = {,}}
@ -72,10 +77,11 @@
\sisetup{per-mode = power} \sisetup{per-mode = power}
\sisetup{exponent-product=\ensuremath{\cdot}} \sisetup{exponent-product=\ensuremath{\cdot}}
\usepackage{emoji}
% DEBUG % DEBUG
% \usepackage{lua-visual-debug} % \usepackage{lua-visual-debug}
% DUMB STUFF % DUMB STUFF
% \usepackage{emoji}
% \newcommand\temoji[1]{\text{\emoji{#1}}} % \newcommand\temoji[1]{\text{\emoji{#1}}}
% \def\sigma{\temoji{shark}} % \def\sigma{\temoji{shark}}
% \def\lambda{\temoji{sheep}} % \def\lambda{\temoji{sheep}}
@ -86,16 +92,16 @@
% \def\nu{\temoji{unicorn}} % \def\nu{\temoji{unicorn}}
% \def\mu{\temoji{mouse}} % \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} \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{mqlua}
\usepackage{mqfqname} \usepackage{mqfqname}
\usepackage{mqsections}
\usepackage{mqref} \usepackage{mqref}
\input{util/macros.tex} % requires mqfqname
\input{util/math-macros.tex}
% TRANSLATION % TRANSLATION
% \usepackage{translations} % \usepackage{translations}
\usepackage{mqtranslation} \usepackage{mqtranslation}
@ -107,6 +113,7 @@
\usepackage{mqformula} \usepackage{mqformula}
\usepackage{mqperiodictable} \usepackage{mqperiodictable}
\input{util/environments.tex} % requires util/translation.tex to be loaded first
\title{Formelsammlung} \title{Formelsammlung}
\author{Matthias Quintern} \author{Matthias Quintern}
@ -123,7 +130,7 @@
\input{util/translations.tex} \input{util/translations.tex}
% \InputOnly{cm} % \InputOnly{cm}
% \InputOnly{test} \InputOnly{test}
\Input{math/math} \Input{math/math}
\Input{math/linalg} \Input{math/linalg}
@ -172,26 +179,8 @@
\Input{ch/el} \Input{ch/el}
\Input{ch/misc} \Input{ch/misc}
\newpage \Input{appendix}
\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
\Input{test} \Input{test}
% \bibliographystyle{plain} % \bibliographystyle{plain}

View File

@ -102,7 +102,7 @@
\eq{ \eq{
\mat{\theta} = (\mat{X}^\T \mat{X})^{-1} \mat{X}^\T \vec{y} \mat{\theta} = (\mat{X}^\T \mat{X})^{-1} \mat{X}^\T \vec{y}
} }
\end{formula} \end{formula}
\begin{formula}{woodbury_matrix_identity} \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$} \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} \end{formula}
\begin{formula}{pdf} \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{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$} \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} \eq{P([a,b]) := \int_a^b f(x) \d x}
\end{formula} \end{formula}
\begin{formula}{cdf} \begin{formula}{cdf}
\abbrLabel{CDF}
\desc{Cumulative distribution function}{}{$f$ probability density function} \desc{Cumulative distribution function}{}{$f$ probability density function}
\desc[german]{Kumulative Verteilungsfunktion}{}{$f$ Wahrscheinlichkeitsdichtefunktion} \desc[german]{Kumulative Verteilungsfunktion}{}{$f$ Wahrscheinlichkeitsdichtefunktion}
\eq{F(x) = \int_{-\infty}^x f(t) \d t} \eq{F(x) = \int_{-\infty}^x f(t) \d t}
\end{formula} \end{formula}
\begin{formula}{pmf} \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{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}{} \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)} \eq{p_X(x) = P(X = x)}

View File

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

View File

@ -3,6 +3,9 @@
\RequirePackage{mqlua} \RequirePackage{mqlua}
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
% make newcommand work on already defined commands
\def\forceNewCommand#1{\let#1\undefined\newcommand#1}
\begin{luacode} \begin{luacode}
sections = sections or {} sections = sections or {}
@ -56,7 +59,7 @@
local relN = 0 local relN = 0
local relTarget = "" local relTarget = ""
warning('translateRelativeFqname', '(target=' .. target .. ') '); -- warning('translateRelativeFqname', '(target=' .. target .. ') ');
for i = 1, #target do for i = 1, #target do
local c = target:sub(i,i) local c = target:sub(i,i)
if c == ":" then if c == ":" then
@ -72,7 +75,7 @@
local N = fqnameGetDepth() local N = fqnameGetDepth()
local newtarget = fqnameGetN(N - relN + 1) .. ":" .. relTarget local newtarget = fqnameGetN(N - relN + 1) .. ":" .. relTarget
warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget); -- warning('translateRelativeFqname', '(relN=' .. relN .. ') ' .. newtarget);
return newtarget return newtarget
end end
\end{luacode*} \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 % Equations/Formulas
% Deprecated use fRef, absRef
% \newrobustcmd{\fqEqRef}[1]{% % \newrobustcmd{\fqEqRef}[1]{%
\newrobustcmd{\fAbsRef}[2][]{% % \newrobustcmd{\fAbsRef}[2][]{%
\directlua{hyperref(\luastring{#2}, \luastring{#1})}% % \directlua{hyperref(\luastring{#2}, \luastring{#1})}%
} % }
% [1]: link text % [1]: link text
% 2: link target (fqname) % 2: link target (fqname)
@ -126,30 +127,29 @@
% etc. % etc.
\newcommand{\fRef}[2][]{\directlua{hyperref(translateRelativeFqname(\luastring{#2}), \luastring{#1})}} \newcommand{\fRef}[2][]{\directlua{hyperref(translateRelativeFqname(\luastring{#2}), \luastring{#1})}}
% [1]: link text % Deprecated: use :: with fRef
% 2: number of steps to take up % % [1]: link text
% 3: link target relative to the previous fqname section % % 2: number of steps to take up
\newcommand{\mqfqname@fRelRef}[3][1]{ % % 3: link target relative to the previous fqname section
\directlua{ % \newcommand{\mqfqname@fRelRef}[3][1]{
local N = fqnameGetDepth() % \directlua{
luatexbase.module_warning('fRelRef', '(N=' .. N .. ') #2'); % local N = fqnameGetDepth()
if N > #2 then % luatexbase.module_warning('fRelRef', '(N=' .. N .. ') #2');
local upfqname = fqnameGetN(N-#2) % if N > #2 then
hyperref(upfqname .. \luastring{:#3}, \luastring{#1}) % local upfqname = fqnameGetN(N-#2)
else % hyperref(upfqname .. \luastring{:#3}, \luastring{#1})
luatexbase.module_warning('fUpRef', 'fqname depth (N=' .. N .. ') too low for fUpRef if #1'); % else
end % 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{\fThisRef}[2][]{\mqfqname@fRelRef[#1]{0}{#2}}
\newcommand{\fUppRef}[2][]{\mqfqname@fRelRef[#1]{2}{#2}} % \newcommand{\fUpRef}[2][]{\mqfqname@fRelRef[#1]{1}{#2}}
% \newcommand{\fUppRef}[2][]{\mqfqname@fRelRef[#1]{2}{#2}}
% Quantities % Quantities
% <symbol> % <symbol>
\newrobustcmd{\qtyRef}[2][]{% \newrobustcmd{\qtyRef}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{quantities}{"#1"}{"fqname"}}%
% \hyperref[qty:#1]{\GT{\tempname}}%
\directlua{hyperref(quantityGetFqname(\luastring{#2}), \luastring{#1})}% \directlua{hyperref(quantityGetFqname(\luastring{#2}), \luastring{#1})}%
} }
% <symbol> <name> % <symbol> <name>
@ -159,8 +159,6 @@
% Constants % Constants
% <name> % <name>
\newrobustcmd{\constRef}[2][]{% \newrobustcmd{\constRef}[2][]{%
% \edef\tempname{\luaDoubleFieldValue{constants}{"#1"}{"linkto"}}%
% \hyperref[const:#1]{\GT{\tempname}}%
\directlua{hyperref(constantGetFqname(\luastring{#2}), \luastring{#1})}% \directlua{hyperref(constantGetFqname(\luastring{#2}), \luastring{#1})}%
} }
% <symbol> <name> % <symbol> <name>
@ -209,6 +207,10 @@ function absLabelGetTranslationKey(key)
end end
end end
function absRef(key, text)
hyperref(absLabelGetTarget(key), text)
end
function abbrLabelAdd(key, target, label) function abbrLabelAdd(key, target, label)
abbrLabels[key] = { abbrLabels[key] = {
@ -232,6 +234,10 @@ function abbrLabelGetAbbr(key)
return "" return ""
end end
end end
function abbrRef(key)
hyperref(abbrLabelGetTarget(key), abbrLabelGetAbbr(key))
end
\end{luacode} \end{luacode}
% [1]: translation key, if different from target % [1]: translation key, if different from target
@ -257,24 +263,9 @@ end
% [1]: text % [1]: text
% 2: key % 2: key
\newcommand{\absRef}[2][]{% \newcommand{\absRef}[2][]{%
% \directlua{ \directlua{absRef(\luastring{#2}, \luastring{#1})}%
% 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})
}
} }
% 1: key
\newrobustcmd{\abbrRef}[1]{% \newrobustcmd{\abbrRef}[1]{%
\directlua{hyperref(abbrLabelGetTarget(\luastring{#1}), abbrLabelGetAbbr(\luastring{#1}))} \directlua{abbrRef(\luastring{#1})}%
% if abbrLabels["#1"] == nil then
% tex.sprint(string.sanitize(\luastring{#1}) .. "???")
% else
% tex.sprint("\\hyperref[" .. abbrLabels["#1"]["fqname"] .. "]{" .. abbrLabels["#1"]["abbr"] .. "}")
% end
% }
} }

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, % 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 % all "define translation" commands use \fqname as default key
% Get a translation % GETTING TRANSLATIONS
% expandafter required because the translation commands dont expand anything % expandafter required because the translation commands dont expand anything
% shortcuts for translations % shortcuts for translations
% 1: key % 1: key
@ -125,6 +125,8 @@
\newcommand{\tgt}[1]{\text{\gt{#1}}} \newcommand{\tgt}[1]{\text{\gt{#1}}}
\newcommand{\tGT}[1]{\text{\GT{#1}}} \newcommand{\tGT}[1]{\text{\GT{#1}}}
% PROVIDING TRANSLATIONS
% Define a new translation % Define a new translation
% [1]: key, 2: lang, 3: translation % [1]: key, 2: lang, 3: translation
\newcommand{\dt}[3][\fqname]{% \newcommand{\dt}[3][\fqname]{%
@ -155,6 +157,7 @@
\newcommand{\Ger}[2][\fqname]{\DT[#1]{german}{#2}} \newcommand{\Ger}[2][\fqname]{\DT[#1]{german}{#2}}
\newcommand{\Eng}[2][\fqname]{\DT[#1]{english}{#2}} \newcommand{\Eng}[2][\fqname]{\DT[#1]{english}{#2}}
% UTLITY
\newcommand{\IfTranslationExists}[3]{% \newcommand{\IfTranslationExists}[3]{%
\directlua{ \directlua{
if tlExistsFallback(language, \luastring{#1}) then if tlExistsFallback(language, \luastring{#1}) then
@ -177,3 +180,15 @@
\GT{\fqname}% \GT{\fqname}%
\mqfqname@leave% \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} \end{formula}
\Subsubsection{ehrenfest_theorem} \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}{}{} \desc[german]{Ehrenfest-Theorem}{}{}
\absLink{}{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} \quantity{L}{\henry=\kg\m^2\per\s^2\ampere^2=\weber\per\ampere=\volt\s\per\ampere=\ohm\s}{s}
\end{formula} \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} \Subsection{other}
\desc{Others}{}{} \desc{Others}{}{}
\desc[german]{Sonstige}{}{} \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}} \eq{\braket{v^2} = \int_0^\infty \d v\,v^2 w(v) = \frac{3\kB T}{m}}
\end{formula} \end{formula}
\Subsubsection{molecule_gas} \Subsection{molecule_gas}
\desc{Molecule gas}{}{} \desc{Molecule gas}{}{}
\desc[german]{Molekülgas}{}{} \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{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$}{} \desc[german]{Molekülgas}{2 Teilchen der Masse $M$ sind verbunden durch eine ``Feder'' mit Länge $L$}{}
% \begin{figure}[h] % \begin{figure}[h]

View File

@ -1,4 +1,5 @@
\part{Testing} \Part{Testing}
\desc{Testing}{Very important}{}
\makeatletter \makeatletter
Sizes: Sizes:
@ -24,92 +25,108 @@ Sizes:
% Translations Aux loaded? \translationsAuxLoaded\\ % Translations Aux loaded? \translationsAuxLoaded\\
Input only: \inputOnlyFile Input only: \inputOnlyFile
\paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation} \Section{translation}
\addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}} \desc{Translations}{}{}
\noindent \desc[german]{Übersetzungen}{}{}
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 translation keys containing macros} \paragraph{Testing GT, GetTranslation, IfTranslationExists, IfTranslation}
\def\ttest{NAME} \addtranslation{english}{ttest}{This is the english translation of \texttt{ttest}}
% \addtranslation{english}{\ttest:name}{With variable} \noindent
% \addtranslation{german}{\ttest:name}{Mit Variable} GT: ttest = \GT{ttest}\\
% \addtranslation{english}{NAME:name}{Without variable} % GetTranslation: ttest = \GetTranslation{ttest}\\
% \addtranslation{german}{NAME:name}{Without Variable} % Is english? = \IfTranslation{english}{ttest}{yes}{no} \\
\DT[\ttest:name]{english}{DT With variable} % Is german? = \IfTranslation{german}{ttest}{yes}{no} \\
\DT[\ttest:name]{german}{DT Mit Variable} Is defined = \IfTranslationExists{ttest}{yes}{no} \\
\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 relative translations} \paragraph{Testing translation keys containing macros}
\begingroup \def\ttest{NAME}
\edef\prevFqname{\fqname} % \addtranslation{english}{\ttest:name}{With variable}
\edef\fqname{\prevFqname:test} % \addtranslation{german}{\ttest:name}{Mit Variable}
\eng{English, relative} % \addtranslation{english}{NAME:name}{Without variable}
\ger{Deutsch, relativ} % \addtranslation{german}{NAME:name}{Without Variable}
\endgroup \DT[\ttest:name]{english}{DT With variable}
\dt[testkey]{english}{Testkey} \DT[\ttest:name]{german}{DT Mit Variable}
{\textbackslash}gt\{test\}: \gt{test}\\ \noindent
{\textbackslash}gt\{test\}: \gt{testkey} 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} % \DT[qty:test]{english}{HAHA}
\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}
\paragraph{Testing translation keys with token symbols like undescores} \paragraph{Testing hyperrefs}
\noindent \noindent{This text is labeled with "test" \label{test}}\\
\GT{absolute_undefined_translation_with_underscors}\\ \fRef[This should refer to the line above]{test}\\
\gt{relative_undefined_translation_with_underscors}\\ Link to quantity which is defined after the reference: \qtyRef{test}\\
\GT{absolute_undefined_translation_with_&ampersand} \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}
\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}
}
\begin{equation} \begin{equation}
M\omega\rho\epsilon \label{eq:test}
E = mc^2
\end{equation} \end{equation}
\end{formula}
\begin{formula}{test3} \paragraph{Testing translation keys with token symbols like undescores}
\desc{Test2}{Test Description}{Defs} \noindent
\desc[german]{Test2 (DE)}{Beschreibung}{Defs (DE)} \GT{absolute_undefined_translation_with_underscors}\\
Formula with just plain text. \gt{relative_undefined_translation_with_underscors}\\
\end{formula} \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{Layout Test}{}{}
\desc[german]{}{}{} \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} \begin{formula}{tt1}
\desc{Formula}{Desc}{Defs} \desc{Formula}{Desc}{Defs}
\eq{E=mc^2} \eq{E=mc^2}
\ttxt{\eng{
Translated text via ttxt.
}\ger{
Übersetzter text mit ttxt.
}}
\end{formula} \end{formula}
\begin{bigformula}{tt2} \begin{bigformula}{tt2}
@ -141,4 +150,17 @@ Link to defined quantity: \qtyRef{mass}
\eq{E=mc^3} \eq{E=mc^3}
\end{bigformula} \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? % Custon environment with table of contents, requires etoolbox?
% Define a custom list % Define a custom list
\newcommand{\listofmyenv}{% \newcommand{\listofmyenv}{%
@ -32,6 +23,18 @@
\def\distrightwidth{0.45} \def\distrightwidth{0.45}
\def\distleftwidth{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 % Table for distributions
% create entries for parameters using \disteq % create entries for parameters using \disteq
\newenvironment{distribution}{ \newenvironment{distribution}{
@ -39,21 +42,15 @@
% 2: math % 2: math
\newcommand{\disteq}[2]{ \newcommand{\disteq}[2]{
% add links to some names % add links to some names
\directlua{ \luaexec{
local cases = { if distRefs[\luastring{##1}] ~= nil then
pdf = "math:pt:pdf", hyperref(distRefs[\luastring{##1}])
pmf = "math:pt:pmf", elseif distAbbrRefs[\luastring{##1}] ~= nil then
cdf = "math:pt:cdf", abbrRef(distAbbrRefs[\luastring{##1}])
mean = "math:pt:mean", else
variance = "math:pt:variance", tex.sprint(tlGetFallbackCurrent(translateRelativeFqname(\luastring{##1})))
median = "math:pt:median", end
} }%
if cases[\luastring{##1}] \string~= nil then
tex.sprint("\\fRef{"..cases[\luastring{##1}].."}")
else
tex.sprint("\\GT{##1}")
end
}
& ##2 \\ \hline & ##2 \\ \hline
} }
\hfill \hfill

View File

@ -3,6 +3,15 @@
\newcommand\gooditem{\item[{$\color{fg-green}\bullet$}]} \newcommand\gooditem{\item[{$\color{fg-green}\bullet$}]}
\newcommand\baditem{\item[{$\color{fg-red}\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 % INPUT
% 1: starting pattern of files to input using the Input command. All other files are ignored % 1: starting pattern of files to input using the Input command. All other files are ignored
\newcommand\InputOnly[1]{\edef\inputOnlyFile{#1}} \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 % Functions with (optional) paranthesis
% 1: The function (like \exp, \sin etc.) % 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. % COMMON SYMBOLS WITH SUPER/SUBSCRIPTS, VECTOR ARROWS ETC.
% \def\laplace{\Delta} % Laplace operator % \def\laplace{\Delta} % Laplace operator
@ -49,10 +67,10 @@
% \newcommand\O{\mathcal{O}} % order % \newcommand\O{\mathcal{O}} % order
\newcommand\PhiB{\Phi_\text{B}} % mag. flux \newcommand\PhiB{\Phi_\text{B}} % mag. flux
\newcommand\PhiE{\Phi_\text{E}} % electric flux \newcommand\PhiE{\Phi_\text{E}} % electric flux
\newcommand\nreal{n^{\prime}} % refraction real part \newcommand\nReal{n^{\prime}} % refraction real part
\newcommand\ncomplex{n^{\prime\prime}} % refraction index complex part \newcommand\nImag{n^{\prime\prime}} % refraction index complex part
\newcommand\epsreal{\epsilon^{\prime}} % permittivity real part \newcommand\epsReal{\epsilon^{\prime}} % permittivity real part
\newcommand\epscomplex{\epsilon^{\prime\prime}} % permittivity complex part \newcommand\epsImag{\epsilon^{\prime\prime}} % permittivity complex part
\newcommand\I{i} % complex/imaginary unit \newcommand\I{i} % complex/imaginary unit
\newcommand\crit{\text{crit}} % crit (for subscripts) \newcommand\crit{\text{crit}} % crit (for subscripts)
\newcommand\muecp{\overline{\mu}} % electrochemical potential \newcommand\muecp{\overline{\mu}} % electrochemical potential
@ -186,15 +204,3 @@
\newcommand\Log[1]{\CmdWithParenthesis{\log}{#1}} \newcommand\Log[1]{\CmdWithParenthesis{\log}{#1}}
\newcommand\Order[1]{\CmdWithParenthesis{\mathcal{O}}{#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} \Eng[semiconductor]{Semiconductor}
\Ger[semiconductor]{Halbleiter} \Ger[semiconductor]{Halbleiter}
\Eng{conduction band}{conduction band} \Eng[conduction band]{conduction band}
\Ger{conduction band}{Leitungsband} \Ger[conduction band]{Leitungsband}
\Eng{valence band}{valance band} \Eng[valence band]{valance band}
\Ger{valence band}{Valenzband} \Ger[valence band]{Valenzband}
\Eng[creation_annihilation_ops]{Creation / Annihilation operators} \Eng[creation_annihilation_ops]{Creation / Annihilation operators}