From b73b611b12f5de2c342b04a22cac7f21f3786bad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Sun, 6 Jun 2021 21:08:29 +0200 Subject: add lambert w section --- buch/chapters/020-exponential/Makefile.inc | 10 + buch/chapters/020-exponential/chapter.tex | 20 ++ buch/chapters/020-exponential/images/Makefile | 15 + buch/chapters/020-exponential/images/w.pdf | Bin 0 -> 20605 bytes buch/chapters/020-exponential/images/w.tex | 61 ++++ buch/chapters/020-exponential/images/xexpx.pdf | Bin 0 -> 20907 bytes buch/chapters/020-exponential/images/xexpx.tex | 47 +++ buch/chapters/020-exponential/lambertw.tex | 335 +++++++++++++++++++++ .../chapters/020-exponential/uebungsaufgaben/0.tex | 61 ++++ buch/chapters/Makefile.inc | 1 + buch/chapters/part1.tex | 2 +- buch/common/Makefile-template.inc | 12 + buch/common/chapter-template.tex | 20 ++ buch/splitpapers | 45 +++ 14 files changed, 628 insertions(+), 1 deletion(-) create mode 100644 buch/chapters/020-exponential/Makefile.inc create mode 100644 buch/chapters/020-exponential/chapter.tex create mode 100644 buch/chapters/020-exponential/images/Makefile create mode 100644 buch/chapters/020-exponential/images/w.pdf create mode 100644 buch/chapters/020-exponential/images/w.tex create mode 100644 buch/chapters/020-exponential/images/xexpx.pdf create mode 100644 buch/chapters/020-exponential/images/xexpx.tex create mode 100644 buch/chapters/020-exponential/lambertw.tex create mode 100644 buch/chapters/020-exponential/uebungsaufgaben/0.tex create mode 100644 buch/common/Makefile-template.inc create mode 100644 buch/common/chapter-template.tex create mode 100755 buch/splitpapers diff --git a/buch/chapters/020-exponential/Makefile.inc b/buch/chapters/020-exponential/Makefile.inc new file mode 100644 index 0000000..56a6b9a --- /dev/null +++ b/buch/chapters/020-exponential/Makefile.inc @@ -0,0 +1,10 @@ +# +# Makefile.inc -- Makefile dependencies for chapter 9 +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +CHAPTERFILES = $(CHAPTERFILES) \ + chapters/020-exponential/lambertw.tex \ + chapters/020-exponential/uebungsaufgaben/0.tex \ + chapters/020-exponential/chapter.tex diff --git a/buch/chapters/020-exponential/chapter.tex b/buch/chapters/020-exponential/chapter.tex new file mode 100644 index 0000000..4e733d5 --- /dev/null +++ b/buch/chapters/020-exponential/chapter.tex @@ -0,0 +1,20 @@ +% +% chapter.tex -- Beschreibung des Inhaltes +% +% (c) 2021 Prof Dr Andreas Müller, Hochschule Rapperswil +% +% !TeX spellcheck = de_CH +\chapter{Exponentialfunktion und Exponentialgleichungen +\label{buch:chapter:exponential}} +\lhead{Exponentialfunktion und Exponentialgleichungen} +\rhead{} + +\input{chapters/020-exponential/lambertw.tex} + +\section*{Übungsaufgaben} +\rhead{Übungsaufgaben} +\aufgabetoplevel{chapters/020-exponential/uebungsaufgaben} +\begin{uebungsaufgaben} +\uebungsaufgabe{0} +\end{uebungsaufgaben} + diff --git a/buch/chapters/020-exponential/images/Makefile b/buch/chapters/020-exponential/images/Makefile new file mode 100644 index 0000000..63ebc4f --- /dev/null +++ b/buch/chapters/020-exponential/images/Makefile @@ -0,0 +1,15 @@ +# +# Makefile +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +all: xexpx.pdf w.pdf + +xexpx.pdf: xexpx.tex + pdflatex xexpx.tex + +w.pdf: w.tex + pdflatex w.tex + + diff --git a/buch/chapters/020-exponential/images/w.pdf b/buch/chapters/020-exponential/images/w.pdf new file mode 100644 index 0000000..fe176df Binary files /dev/null and b/buch/chapters/020-exponential/images/w.pdf differ diff --git a/buch/chapters/020-exponential/images/w.tex b/buch/chapters/020-exponential/images/w.tex new file mode 100644 index 0000000..e1c9dc9 --- /dev/null +++ b/buch/chapters/020-exponential/images/w.tex @@ -0,0 +1,61 @@ +% +% tikztemplate.tex -- template for standalon tikz images +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{2} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\pgfmathparse{-exp(-1)} +\xdef\l{\pgfmathresult} + +\draw[->] (-0.5,0) -- (3.5,0) coordinate[label={$x$}]; +\draw[->] (0,{-1-0.1/\skala}) -- (0,1.5) coordinate[label={$y$}]; +\node at (0,0) [below right] {$0$}; + +\begin{scope} +\clip (-0.4,-1) rectangle (3.4,1.5); +\draw[color=red,line width=2.0pt] plot[domain=-1:1.1] ({\x*exp(\x)},{\x}); +\end{scope} + +\node[color=red] at (1.5,1) {$y=W(x)=W_0(x)$}; + +\draw[line width=0.3pt] ({\l},0) -- ({\l},-1); +\draw ({\l},{-0.1/\skala}) -- ({\l},{0.1/\skala}); +\node at ({\l},0) [above left] {$-1/e$}; + +\draw (1,{-0.1/\skala}) -- (1,{0.1/\skala}); +\node at (1,0) [below] {$1$}; +\draw (2,{-0.1/\skala}) -- (2,{0.1/\skala}); +\node at (2,0) [below] {$2$}; +\draw (3,{-0.1/\skala}) -- (3,{0.1/\skala}); +\node at (3,0) [below] {$3$}; +\draw ({-0.1/\skala},1) -- ({0.1/\skala},1); +\node at (0,1) [left] {$1$}; + +\begin{scope}[xshift=-2cm,yshift=1.5cm] +\draw[->] (-0.8,0) -- (0.5,0) coordinate[label={$x$}]; +\draw[->] (0,-3) -- (0,0.4) coordinate[label={left:$y$}];; +\node at (0,0) [below right] {$0$}; +\draw[line width=0.3pt] ({\l},0) -- ({\l},-1); +\draw ({\l},{-0.1/\skala}) -- ({\l},{0.1/\skala}); +\draw[color=blue,line width=2.0pt] plot[domain=-3:-1] ({\x*exp(\x)},{\x}); +\draw ({-0.1/\skala},-1) -- ({0.1/\skala},-1); +\draw ({-0.1/\skala},-2) -- ({0.1/\skala},-2); +\node at (0,-1) [right] {$-1$}; +\node at (0,-2) [right] {$-2$}; +\node[color=blue] at (-0.3,-2) [left] {$y=W_{-1}(x)$}; +\node at ({\l},0) [above left] {$-1/e$}; +\end{scope} + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/020-exponential/images/xexpx.pdf b/buch/chapters/020-exponential/images/xexpx.pdf new file mode 100644 index 0000000..9321e1c Binary files /dev/null and b/buch/chapters/020-exponential/images/xexpx.pdf differ diff --git a/buch/chapters/020-exponential/images/xexpx.tex b/buch/chapters/020-exponential/images/xexpx.tex new file mode 100644 index 0000000..80cd10d --- /dev/null +++ b/buch/chapters/020-exponential/images/xexpx.tex @@ -0,0 +1,47 @@ +% +% xexpx.tex -- template for standalon tikz images +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\documentclass[tikz]{standalone} +\usepackage{amsmath} +\usepackage{times} +\usepackage{txfonts} +\usepackage{pgfplots} +\usepackage{csvsimple} +\usetikzlibrary{arrows,intersections,math} +\begin{document} +\def\skala{1.5} +\begin{tikzpicture}[>=latex,thick,scale=\skala] + +\draw[->] (-6.1,0) -- (2.0,0) coordinate[label={$x$}]; +\draw[->] (0,-1.1) -- (0,5.2) coordinate[label={right:$y$}]; + +\foreach \x in {-6,-5,-4,-3,-2,-1}{ + \draw (\x,{-0.1/\skala}) -- (\x,{0.1/\skala}); + \node at (\x,0) [above] {$\x$}; +} +\draw (1,{-0.1/\skala}) -- (1,{0.1/\skala}); +\node at (1,0) [below] {$1$}; +\foreach \y in {1,...,5}{ + \draw ({-0.1/\skala},\y) -- ({0.1/\skala},\y); + \node at (0,\y) [left] {$\y$}; +} + +\begin{scope} +\clip (-6,-0.5) rectangle (2,4.8); + +\draw[color=red,line width=1.4pt] + plot[domain=-1:2,samples=100] ({\x},{\x*exp(\x)}); +\draw[color=blue,line width=1.4pt] + plot[domain=-6:-1,samples=100] ({\x},{\x*exp(\x)}); + +\end{scope} + +\fill[color=violet] (-1,{-exp(-1)}) circle[radius=0.04]; +\node[color=violet] at (-1,{-exp(-1)}) [below] + {$\displaystyle f(-1) = -\frac{1}{e}$}; + +\end{tikzpicture} +\end{document} + diff --git a/buch/chapters/020-exponential/lambertw.tex b/buch/chapters/020-exponential/lambertw.tex new file mode 100644 index 0000000..a7a882c --- /dev/null +++ b/buch/chapters/020-exponential/lambertw.tex @@ -0,0 +1,335 @@ +% +% lambertw.tex +% +% (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +% +\section{Die Lambert $W$-Funktion +\label{buch:section:lambertw}} +\rhead{Lambert $W$-Funktione} +Exponentialgleichungen wie +\[ +e^{2x}+2e^x-15=0 +\] +können durch Substitution $y=e^x$ in eine algebraische Gleichung +umgeformt werden, die mit Wurzelfunktionen gelöst werden kann. +Eine solche Substitution ist nicht mehr möglich, wenn Produkte +der Unbekannten und der Exponentialfunktion, also $xe^x$ auftreten. +Die Lambert $W$-Funktion ermöglicht, die Lösungen solcher Gleichungen +darzustellen. + +% +% Die Funktion xe^x +% +\subsection{Die Definition der Lambert $W$-Funktion +\label{buch:subsection:funktion-xexpx}} +\begin{figure} +\centering +\includegraphics{chapters/020-exponential/images/xexpx.pdf} +\caption{Graph der Funktion $f\colon x\mapsto f(x)=xe^x$ +\label{buch:lambert:graph}} +\end{figure} +Ein Graph der Funktion +\[ +f\colon \mathbb{R}\to\mathbb{R} : x\mapsto xe^x +\] +ist in Abbildung~\ref{buch:lambert:graph} dargestellt. +Die einzige Nullstelle ist bei $x=0$. +Die Funktion $f$ hat die Ableitung +$f'(x)=e^x + xe^x$, +an der Stelle $x=0$ hat der Graph von $f(x)$ daher die Steigung $1$. + +Die Ableitung verschwindet für +\[ +0 = f'(x) = e^x(1+x) +\qquad\Rightarrow\qquad +x=-1, +\] +dort hat die Funktion $f$ den minimalen Wert $-1/e$. + +Wegen des Minimums an der Stelle $x=-1$ ist die Funktion $f(x)$ nicht +umkehrbar. +Auf dem Teilintervall $I_{-1}=(-\infty,-1]$ ist $f$ streng +monoton fallend, auf dem Teilintervall $I_0=[-1,\infty)$ ist sie +streng monoton wachsen. +Die Einschränkung von $f$ auf diese beiden Intervalle ist also +invertierbar. + +\begin{definition} +Die inverse Funktion der Funktion $[-1,\infty)\to[-1/e,\infty):x\mapsto xe^x=y$ +heisst die Lambert $W$-Funktion, geschrieben $W(y)$ oder $W_0(y)$. +Die inverse Funktion der Funktion $(-\infty,-1)\to[-1/e,0)$ wird mit +$W_{-1}$ bezeichnet. +\end{definition} + +\begin{figure} +\centering +\includegraphics{chapters/020-exponential/images/w.pdf} +\caption{Graph der Funktionen $W_{-1}(x)$ (links) und $W_0(x)$ (rechts) +\label{buch:lambert:wgraph}} +\end{figure} +Die beiden Funktion $W_0(x)$ und $W_{-1}(x)$ sind in +Abbildung~\ref{buch:lambert:wgraph} dargestellt. +Beide Funktionen sind streng monoton und haben unendlich grosse Steigung +an der Stelle $x=-1/e$. + +Da die $W$-Funktionen Umkehrfunktionen der Funktion $f(x)=xe^x$ sind, +erfüllen sie +\[ +W(x) e^{W(x)} = x. +\] + +\subsubsection{Ableitung der Funktionen $W(x)$ und $W_{-1}(x)$} +Die Umkehrfunktion $f^{-1}(y)$ einer Funktion $f(x)$ erfüllt +\( +f^{-1}(f(x)) = x. +\) +Ableitung nach $x$ ergibt mit der Kettenregel +\[ +\frac{df^{-1}(y)}{dy}\bigg|_{y=f(x)} \frac{df}{dx} = 0 +\qquad\Rightarrow\qquad +(f^{-1})'(y) = \frac{1}{f'(x)}. +\] +Für die $W$-Funktion, also für $W(y)=x$ oder $y=f(x)=xe^x$ bedeutet dies +\[ +W'(y) += +\frac{1}{f'(x)} += +\frac{1}{f'(W(y))}. +\] +Die Ableitung von $f$ an der Stelle $W(y)$ ist +\[ +f'(W(y)) += +(1+x)e^x += +(1+W(y))e^{W(y)}. +\] +Die Exponentialfunktion von $W(y)$ ist +\[ +e^{W(y)} = \frac{y}{W(y)}, +\] +womit die Ableitung der $W$-Funktion +\begin{equation} +W'(y) += +\frac{W(y)}{y}\cdot \frac{1}{1+W(y)} += +\frac{W(y)}{y(1+W(y))} +\label{buch:lambert:eqn:ableitung} +\end{equation} +wird. + +Aus der ersten Ableitung kann jetzt mit Hilfe der Quotientenregel +auch jede höhere Ableitung berechnet werden. +Die zweite Ableitung ist +\begin{align*} +\frac{d^2}{dy^2}W(y) +&= +\frac{d}{dy}W'(y) += +\frac{d}{dy}\frac{W(y)}{y(1+W(y))} +\\ +&= +\frac{ +W'(y)y(1+W(y)) - W(y)\bigl(1+W(y)+yW'(y)\bigr) +}{ +y^2(1+W(y))^2 +} +\\ +&= +\frac{ +W'(y)y - W(y)(1+W(y)) +}{ +y^2(1+W(y))^2 +}. +\intertext{Die Ableitung $W'(y)$ kann jetzt durch +\eqref{buch:lambert:eqn:ableitung} ersetzt werden, dies ergibt} +&= +\frac{ +\displaystyle +\frac{W(y)}{y(1+W(y))}y - W(y)(1+W(y)) +}{ +y^2(1+W(y))^2 +} +\\ +&= +\frac{ +W(y) - W(y)(1+W(y))^2 +}{ +y^2(1+W(y))^3 +} +\\ +&= +\frac{ +-2W(y)^2-W(y)^3 +}{ +y^2(1+W(y))^3 +} +\\ +&= +- +\frac{ +W(y)^2 +}{ +y^2(1+W(y))^3 +} +(W(y)+2). +\end{align*} +Nach dem selben Muster können beliebig hohe Ableitungen von $W(y)$ durch +$W(y)$ ausgedrückt werden. +Zum Beispiel findet man nach einiger Rechnung für die dritte und vierte +Ableitung der $W$-Funktion die Ausdrücke +\begin{align*} +W'''(x) +&= +\phantom{-} +\frac{W(y)^3}{y^3(1+W(y))^4}\cdot (2W(y)^2 + 8W(y)+9) +\\ +W''''(x) +&= +-\frac{W(y)^4}{y^4(1+W(y))^5}\cdot (6W(y)^3 + 36W(y)^2 + 79W(y) + 64). +\end{align*} +Mit etwas zusätzlicher Arbeit kann man für die $n$-te Ableitung +\[ +\frac{d^n}{dy^n} W(y) += +\frac{(-1)^{n+1}W(y)^n}{y^n(1+W(y))^{n+1}} \cdot P_n(W(y)), +\] +wobei die Polynome $P_n(t)$ die Rekursionsgleichung +\[ +P_{n+1}(t) += +(nt+3n-1)\cdot P_n(t) - (t+1)\cdot P'_n(t) +\] +mit $P_1(t)=1$. + +\subsubsection{Differentialgleichung und Stammfunktion} +Die Ableitungsformel \eqref{buch:lambert:eqn:ableitung} bedeutet auch, +dass die $W$-Funktion eine Lösung der Differentialgleichung +\[ +\frac{dW}{dz} += +\frac{W}{z(1+W)} +\qquad +\text{mit Anfangsbedingung} +\qquad +W(0) = 1 +\] +ist. +Diese Gleichung kann separiert werden in +\[ +(1+W)\frac{dW}{W} = \frac{dz}{z}. +\] + +Eine Stammfunktion +\[ +F(y) += +\int W(y)\,dy +\] +von $W$ kann mit der Substition $w=W(y)$ gefunden +werden, also $we^w=y$. +Die Ableitung ist $dy = (1+w)e^w\,dw$, so dass die Stammfunktion +\begin{align*} +\int W(y)\,dy +&= +\int w (1+w)e^w\,dw += +(w^2-w+1)e^w+C +\end{align*} +wird. +Durch Rücksubstitution und mit Hilfe der Relation $e^{W(y)} = y/W(y)$ +findet man jetzt den Ausdruck +\begin{align} +\int W(y)\,dy +&= +W(y)^2 e^{W(y)} - W(y)e^{W(y)} + e^{W(y)} + C +\notag +\\ +&= +y\biggl(W(y) - 1 + \frac{1}{W(y)}\biggr) + C +\label{buch:lambert:eqn:stammfunktion} +\end{align} +für die Stammfunktion von $W(y)$. + +% +% Lösung von Exponentialgleichungen +% +\subsection{Lösung von Exponentialgleichungen +\label{buch:subsection:loesung-von-exponentialgleichungen}} +Die Lambert $W$-Funktion kann zur Lösung von Exponentialgleichungen +verwendet werden. + +\begin{aufgabe} +Gesucht ist eine Lösung der Gleichung +\[ +x=a+be^{cx}, +\] +wobei $b$ und $c$ nicht $0$ sein dürfen. +\end{aufgabe} + +\begin{proof}[Lösung] +Wir müssen die Gleichung in eine Form bringen, in der das Produkt +$Xe^X$ auftritt. +Durch Subtraktion von $a$ erhalten wir die Gleichung +\[ +x-a = be^{cx}. +\] +Multiplikation mit $e^{-cx}$ ergibt +\[ +(x-a)e^{-cx}=b. +\] +Im Exponenten steht das Produkt $cx$, als Faktor vor der Exponentialfunktion +die Differenz $x-a$, durch Multiplikation mit $c$ kann man erreichen, +dass in beiden Termen nur die Kombination $cx$ auftritt. +Schreibt man $X=c(x-a)$ oder $x=X/c+a$, kann man die Gleichung in die Form +\[ +cb += +Xe^{-X+ac} += +Xe^{-X}e^{ac} +\] +bringen. +Multiplikation mit $-e^{-ac}$ führt auf die Form +\[ +-cbe^{-ac} += +-Xe^{-X} += +f(-X) +\] +wo jetzt auf der rechten Seite die gesuchte Form steht. +Mit +\[ +-X += +W(-cbe^{ac}) += +-c(x-a) +\qquad\Rightarrow\qquad +x += +a +- +\frac{1}{c} +W(-cbe^{ac}) +\] +Die Gleichung hat eine Lösung wenn $-cbe^{ac} > -1/e$ ist. +\end{proof} + + +% +% Verfolgungskurven +% +\subsection{Verfolgungskurven +\label{buch:subsection:verfolgungskurven}} + + + + + + + + diff --git a/buch/chapters/020-exponential/uebungsaufgaben/0.tex b/buch/chapters/020-exponential/uebungsaufgaben/0.tex new file mode 100644 index 0000000..8fd84af --- /dev/null +++ b/buch/chapters/020-exponential/uebungsaufgaben/0.tex @@ -0,0 +1,61 @@ +Man finde $x\in\mathbb{R}$ derart, dass $3^x=2x+2$. + +\begin{loesung} +Die Definition der $W$-Funktion verwendet die Exponentialfunktion, +wir schreiben daher zunächst $3^x = e^{x\log 3}$ und erhalten so +die Gleichung +\begin{align*} +e^{x\log 3} &= 2x+2 +\\ +\frac{1}{3}e^{(x+1)\log 3} +&=2(x+1) +\\ +\frac{\log 3}{2\cdot 3}e^{(x+1)\log 3} +&=\log 3(x+1) += +X +\\ +-\frac{\log 3}{6} +&= +-Xe^{-X}. +\end{align*} +Auf der rechten Seite steht ein Ausdruck der Form $ze^z$, der mit der +$W$-Funktion invertiert werden kann, es ist also +\begin{align*} +W\biggl( +-\frac{\log 3}{6} +\biggr) +&= +-X +\qquad\Rightarrow\qquad +X= +-W\biggl( +-\frac{\log 3}{6} +\biggr) += +(x+1) +\log 3 +\end{align*} +Durch Auflösen nach $x$ findet man +\[ +x += +-1 +- +\frac{1}{\log 3} +W\biggl( +-\frac{\log 3}{6} +\biggr). +\] +Die numersiche Auswertung mit $W_0$ und $W_{-1}$ liefert zwei mögliche +Lösungen, nämlich +\[ +x += +\begin{cases} +\displaystyle -1-\frac{1}{\log 3} W_0\biggl(-\frac{\log 3}{6}\biggr)&=-0.79011\\ +\displaystyle -1-\frac{1}{\log 3} W_{-1}\biggl(-\frac{\log 3}{6}\biggr)&=\phantom{-}1.44456. +\end{cases} +\] +Beide Lösungen kann man leicht durch Einsetzen überprüfen. +\end{loesung} diff --git a/buch/chapters/Makefile.inc b/buch/chapters/Makefile.inc index f3fbef1..9320dd8 100644 --- a/buch/chapters/Makefile.inc +++ b/buch/chapters/Makefile.inc @@ -9,4 +9,5 @@ CHAPTERFILES = \ chapters/vorwort.tex include chapters/000-einleitung/Makefile.inc +include chapters/020-exponential/Makefile.inc diff --git a/buch/chapters/part1.tex b/buch/chapters/part1.tex index a15af2a..b6c3e10 100644 --- a/buch/chapters/part1.tex +++ b/buch/chapters/part1.tex @@ -10,7 +10,7 @@ % algebraisch und geometrisch definierte spezielle Funktionen %\input{chapters/010-potenzen/chapter.tex} -%\input{chapters/020-exponential/chapter.tex} +\input{chapters/020-exponential/chapter.tex} %\input{chapters/030-geometrie/chapter.tex} %\input{chapters/040-rekursion/chapter.tex} diff --git a/buch/common/Makefile-template.inc b/buch/common/Makefile-template.inc new file mode 100644 index 0000000..9543ce1 --- /dev/null +++ b/buch/common/Makefile-template.inc @@ -0,0 +1,12 @@ +# +# Makefile.inc -- Makefile dependencies for chapter 9 +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# + +CHAPTERFILES = $(CHAPTERFILES) \ + chapters/90-crypto/arith.tex \ + chapters/90-crypto/ff.tex \ + chapters/90-crypto/aes.tex \ + chapters/90-crypto/rs.tex \ + chapters/90-crypto/chapter.tex diff --git a/buch/common/chapter-template.tex b/buch/common/chapter-template.tex new file mode 100644 index 0000000..58451b9 --- /dev/null +++ b/buch/common/chapter-template.tex @@ -0,0 +1,20 @@ +% +% chapter.tex -- Beschreibung des Inhaltes +% +% (c) 2021 Prof Dr Andreas Müller, Hochschule Rapperswil +% +% !TeX spellcheck = de_CH +\chapter{Kapitel-Titel +\label{buch:chapter:titel}} +\lhead{Kapitel-Titel} +\rhead{} + +%\input{chapters/xxx-titel/teil1.tex} + +\section*{Übungsaufgaben} +\rhead{Übungsaufgaben} +\aufgabetoplevel{chapters/xxx-titel/uebungsaufgaben} +\begin{uebungsaufgaben} +%\uebungsaufgabe{nummer} +\end{uebungsaufgaben} + diff --git a/buch/splitpapers b/buch/splitpapers new file mode 100755 index 0000000..9ae5aae --- /dev/null +++ b/buch/splitpapers @@ -0,0 +1,45 @@ +#! /bin/bash +# +# splitpapers -- split PDF into one file per chapter +# +# (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +# +if [ ! -f buch.aux ] +then + echo "file buch.aux missing" + exit 1 +fi + +if [ ! -d separata ] +then + mkdir separata +fi + +awk 'BEGIN { + offsetpage = 10 + startpage = 0 + identifier = "" + chapterno = 0 +} +/newlabel{chapter:/ { + s = substr($0, 19, length($0) - 19) + i = match(s, "}{{") + newidentifier = substr(s, 1, i-1) + s = substr(s, i+3, length(s)-i-3) + i = match(s, "}{") + newchapterno = int(substr(s, 1, i)) + s = substr(s, i+2, length(s)-i-2) + i = match(s, "}{") + newpage = int(substr(s, 1, i)) + if (chapterno > 7) { + printf("pdfjam --outfile separata/%s.pdf buch.pdf %d-%d\n", identifier, startpage + offsetpage, newpage + offsetpage - 1) + } + startpage = newpage + chapterno = newchapterno + identifier = newidentifier +} +END { + printf("pdfjam --outfile separata/%s.pdf buch.pdf %d-\n", identifier, startpage + offsetpage) +}' buch.aux | bash + + -- cgit v1.2.1