Initial commit
This commit is contained in:
commit
9c9f888bb4
294
Carlen_Jauslin_Lieb_Loss_2020.tex
Normal file
294
Carlen_Jauslin_Lieb_Loss_2020.tex
Normal file
@ -0,0 +1,294 @@
|
|||||||
|
\documentclass[no_section_in_all]{ian}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\hbox{}
|
||||||
|
\hfil{\bf\LARGE
|
||||||
|
On the convolution inequality $f\geqslant f\star f$\par
|
||||||
|
}
|
||||||
|
\vfill
|
||||||
|
|
||||||
|
\hfil{\bf\large Eric Carlen}\par
|
||||||
|
\hfil{\it Department of Mathematics, Rutgers University}\par
|
||||||
|
\hfil{\color{blue}\tt\href{mailto:carlen@rutgers.edu}{carlen@rutgers.edu}}\par
|
||||||
|
\vskip20pt
|
||||||
|
|
||||||
|
\hfil{\bf\large Ian Jauslin}\par
|
||||||
|
\hfil{\it Department of Physics, Princeton University}\par
|
||||||
|
\hfil{\color{blue}\tt\href{mailto:ijauslin@princeton.edu}{ijauslin@princeton.edu}}\par
|
||||||
|
\vskip20pt
|
||||||
|
|
||||||
|
\hfil{\bf\large Elliott H. Lieb}\par
|
||||||
|
\hfil{\it Departments of Mathematics and Physics, Princeton University}\par
|
||||||
|
\hfil{\color{blue}\tt\href{mailto:lieb@princeton.edu}{lieb@princeton.edu}}\par
|
||||||
|
\vskip20pt
|
||||||
|
|
||||||
|
\hfil{\bf\large Michael Loss}\par
|
||||||
|
\hfil{\it School of Mathematics, Georgia Institute of Technology}\par
|
||||||
|
\hfil{\color{blue}\tt\href{mailto:loss@math.gatech.edu}{loss@math.gatech.edu}}\par
|
||||||
|
|
||||||
|
\vfill
|
||||||
|
|
||||||
|
|
||||||
|
\hfil {\bf Abstract}\par
|
||||||
|
\medskip
|
||||||
|
|
||||||
|
We consider the inequality $f \geqslant f\star f$ for real functions in $L^1(\mathbb R^d)$ where $f\star f$ denotes the convolution of $f$ with itself. We show that all such functions $f$ are non-negative,
|
||||||
|
which is not the case for the same inequality in $L^p$ for any $1 < p \leqslant 2$, for which the convolution is defined. We also show that all solutions in $L^1(\mathbb R^d)$ satisfy $\int_{\mathbb R^d}f(x){\rm d}x \leqslant \textstyle\frac12$. Moreover, if
|
||||||
|
$\int_{\mathbb R^d}f(x){\rm d}x = \textstyle\frac12$, then $f$ must decay fairly slowly: $\int_{\mathbb R^d}|x| f(x){\rm d}x = \infty$, and this is sharp since for all
|
||||||
|
$r< 1$, there are solutions with $\int_{\mathbb R^d}f(x){\rm d}x = \textstyle\frac12$ and $\int_{\mathbb R^d}|x|^r f(x){\rm d}x <\infty$. However, if
|
||||||
|
$\int_{\mathbb R^d}f(x){\rm d}x = : a < \textstyle\frac12$, the decay at infinity can be much more rapid: we show that for all $a<\textstyle\frac12$, there are solutions such that for some $\epsilon>0$,
|
||||||
|
$\int_{\mathbb R^d}e^{\epsilon|x|}f(x){\rm d}x < \infty$.
|
||||||
|
\vfill
|
||||||
|
|
||||||
|
\hfil{\footnotesize\copyright\, 2020 by the authors. This paper may be reproduced, in its entirety, for non-commercial purposes.}
|
||||||
|
|
||||||
|
\eject
|
||||||
|
|
||||||
|
\setcounter{page}1
|
||||||
|
\pagestyle{plain}
|
||||||
|
|
||||||
|
|
||||||
|
\indent Our subject is the set of real, integrable solutions of the inequality
|
||||||
|
\begin{equation}
|
||||||
|
f(x)\geqslant f\star f(x)
|
||||||
|
,\quad\forall x\in\mathbb R^d\ ,
|
||||||
|
\label{ineq}
|
||||||
|
\end{equation}
|
||||||
|
where $f\star f(x)$ denotes the convolution $f\star f(x) = \int_{\mathbb R^d} f(x-y) f(y){\rm d}y$, which by Young's inequality \cite[Theorem 4.2]{LL96} is well defined as an element of
|
||||||
|
$L^{p/(2-p)}(\mathbb R^d)$ for all $1 \leqslant p\leqslant 2$. Thus, one may consider this inequality in $L^p(\mathbb R^d)$ for all $1 \leqslant p \leqslant 2$, but the case $p=1$ is special:
|
||||||
|
the solution set of (\ref{ineq}) is restricted in a number of surprising ways. Integrating both sides of (\ref{ineq}), one sees immediately that $\int_{\mathbb R^d} f(x){\rm d}x \leqslant 1$.
|
||||||
|
We prove that, in fact, all integrable solutions satisfy $\int_{\mathbb R^d} f(x){\rm d}x \leqslant \textstyle\frac12$, and this upper bound is sharp.
|
||||||
|
|
||||||
|
|
||||||
|
Perhaps even more surprising, we prove that all integrable solutions of (\ref{ineq}) are non-negative. This is {\em not true} for solutions in $L^p(\mathbb R^d)$, $ 1 < p \leqslant 2$.
|
||||||
|
For $f\in L^p(\mathbb R^d)$, $1\leqslant p \leqslant 2$, the Fourier transform $\widehat{f}(k) = \int_{\mathbb R^d}e^{-i2\pi k\cdot x} f(x){\rm d}x$ is well defined as an element of $L^{p/(p-1)}(\mathbb R^d)$. If $f$ solves the equation $f = f\star f$,
|
||||||
|
then $\widehat{f} = \widehat{f}^2$, and hence $\widehat{f}$ is the indicator function of a measurable set. By the Riemann-Lebesgue Theorem, if $f\in L^1(\mathbb R^d)$, then
|
||||||
|
$\widehat{f}$ is continuous and vanishes at infinity, and the only such indicator function is the indicator function of the empty set. Hence the only integrable solution of
|
||||||
|
$f = f*f$ is the trivial solution $f= 0$. However, for $1 < p \leqslant 2$, solutions abound: take $d=1$ and define $g$ to be the indicator function of the interval $[-a,a]$. Define
|
||||||
|
\begin{equation}\label{exam}
|
||||||
|
f(x) = \int_{\mathbb R} e^{-i2\pi k x} g(k){\rm d}k = \frac{ \sin 2\pi xa}{\pi x}\ ,
|
||||||
|
\end{equation}
|
||||||
|
which is not integrable, but which belongs to $L^p(\mathbb R)$ for all $p> 1$. By the Fourier Inversion Theorem $\widehat{f} = g$. Taking products, one gets examples in any dimension.
|
||||||
|
|
||||||
|
|
||||||
|
To construct a family of solutions to (\ref{ineq}), fix $a,t> 0$, and define $g_{a,t}(k) = a e^{-2\pi |k| t}$. By \cite[Theorem 1.14]{SW71},
|
||||||
|
$$
|
||||||
|
f_{a,t}(x) = \int_{\mathbb R^d} e^{-i2\pi k x} g_{a,t}(k){\rm d}k = a\Gamma((d+1)/2) \pi^{-(d+1)/2} \frac{t}{(t^2 + x^2)^{(d+1)/2}}\ .
|
||||||
|
$$
|
||||||
|
Since $g_{a,t}^2(k) = g_{a^2,2t}$, $f_{a,t}\star f_{a,t} = f_{a^2,2t}$, Thus, $f_{a,t} \geqslant f_{a,t}\star f_{a,t}$ reduces to
|
||||||
|
$$
|
||||||
|
\frac{t}{(t^2 + x^2)^{(d+1)/2}} \geqslant \frac{2at}{(4t^2 + x^2)^{(d+1)/2}}
|
||||||
|
$$
|
||||||
|
which is satisfied for all $a \leqslant 1/2$. Since $\int_{\mathbb R^d}f_{a,t}(x){\rm d}x =a$, this provides a class of solutions of (\ref{ineq}) that are non-negative and satisfy
|
||||||
|
\begin{equation}\label{half}
|
||||||
|
\int_{\mathbb R^d}f(x){\rm d}x \leqslant \frac12\ ,
|
||||||
|
\end{equation}
|
||||||
|
all of which have fairly slow decay at infinity, so that in every case,
|
||||||
|
\begin{equation}\label{tail}
|
||||||
|
\int_{\mathbb R^d}|x|f(x){\rm d}x =\infty \ .
|
||||||
|
\end{equation}
|
||||||
|
|
||||||
|
Our results show that this class of examples of integrable solutions of (\ref{ineq}) is surprisingly typical of {\em all} integrable solutions: every real integrable solution
|
||||||
|
$f$ of (\ref{ineq}) is positive, satisfies (\ref{half}),
|
||||||
|
and if there is equality in (\ref{half}), $f$ also satisfies (\ref{tail}). The positivity of all real solutions of (\ref{ineq}) in $L^1(\mathbb R^d)$ may be considered surprising since it is
|
||||||
|
false in $L^p(\mathbb R^d)$ for all $p > 1$, as the example (\ref{exam}) shows. We also show that when strict inequality holds in (\ref{half}) for a solution $f$ of (\ref{ineq}), it is possible for
|
||||||
|
$f$ to have rather fast decay; we construct examples such that $\int_{\mathbb R^d}e^{\epsilon|x|}f(x){\rm d}x < \infty$ for some $\epsilon> 0$. The conjecture that integrable solutions of (\ref{ineq})
|
||||||
|
are necessarily positive was motivated by recent work \cite{CJL19} on a partial differential equation involving a quadratic nonlinearity of $f\star f$ type, and the result proved here is the key to
|
||||||
|
the proof of positivity for solutions of this partial differential equations; see \cite{CJL19}.
|
||||||
|
|
||||||
|
|
||||||
|
\theo{Theorem}\label{theo:positivity}
|
||||||
|
If $f$ is a real valued function in $L^1(\mathbb R^d)$ such that
|
||||||
|
\begin{equation}\label{uineq}
|
||||||
|
f(x) - f\star f(x) =: u(x) \geqslant 0
|
||||||
|
\end{equation}
|
||||||
|
for all $x$. Then $\int_{\mathbb R^d} f(x)\ dx\leqslant\frac12$,
|
||||||
|
and $f$ is given by the convergent series
|
||||||
|
\begin{equation}
|
||||||
|
f(x) = \frac{1}{2} \sum_{n=1}^\infty c_n 4^n (\star^n u)(x)
|
||||||
|
\label{fun}
|
||||||
|
\end{equation}
|
||||||
|
where the $c_n\geqslant0$ are the Taylor coefficients in the expansion of $\sqrt{1-x}$
|
||||||
|
\begin{equation}\label{3half}
|
||||||
|
\sqrt{1-x}=1-\sum_{n=1}^\infty c_n x^n
|
||||||
|
,\quad
|
||||||
|
c_n=\frac{(2n-3)!!}{2^nn!} \sim n^{-3/2}
|
||||||
|
\end{equation}
|
||||||
|
In particular, $f$ is positive. Moreover, if $u\geqslant 0$ is any integrable function with $\int_{\mathbb R^d}u(x){\rm d}x \leqslant \textstyle\frac14$, then the sum on the right in (\ref{fun}) defines an integrable function $f$ that satisfies (\ref{uineq}).
|
||||||
|
\endtheo
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
\indent\underline{Proof}: Note that $u$ is integrable. Let $a := \int_{\mathbb R^d}f(x){\rm d}x$ and $b := \int_{\mathbb R^d}u(x){\rm d}x \geqslant 0$. Fourier transforming,
|
||||||
|
(\ref{uineq}) becomes
|
||||||
|
\begin{equation} \label{ft}
|
||||||
|
\widehat f(k) = \widehat f(k)^2 +\widehat u(k)\ .
|
||||||
|
\end{equation}
|
||||||
|
At $k=0$, $a^2 - a = -b$, so that $\left(a - \textstyle\frac12\right)^2 = \textstyle\frac14 - b$. Thus $0 \leqslant b \leqslant\textstyle\frac14$. Furthermore, since $u \geqslant 0$,
|
||||||
|
\begin{equation}
|
||||||
|
|\widehat u(k)|\leqslant\widehat u(0) \leqslant \textstyle\frac14
|
||||||
|
\end{equation}
|
||||||
|
and the first inequality is strict for $k\neq 0$. Hence for $k\neq 0$, $\sqrt{1-4\widehat u(k)} \neq 0$. By the Riemann-Lebesgue Theorem, $\widehat{f}(k)$ and $\widehat{u}(k)$ are both
|
||||||
|
continuous and vanish at infinity, and hence we must have that
|
||||||
|
\begin{equation}
|
||||||
|
\widehat f(k)=\textstyle\frac12-\textstyle\frac12\sqrt{1-4\widehat u(k)}
|
||||||
|
\label{hatf}
|
||||||
|
\end{equation}
|
||||||
|
for all sufficiently large $k$, and in any case $\widehat f(k)= \frac12\pm\frac12\sqrt{1-4\widehat u(k)}$. But by continuity and the fact that $\sqrt{1-4\widehat u(k)} \neq 0$ for any $k\neq 0$, the sign cannot switch.
|
||||||
|
Hence (\ref{hatf}) is valid for all $k$, including $k=0$, again by continuity. At $k=0$, $a = \textstyle\frac12 - \sqrt{1-4b}$, which proves (\ref{half}).
|
||||||
|
The fact that $c_n$ as specified in (\ref{3half}) satisfies $c_n \sim n^{-3/2}$ is a simple application of Stirling's formula, and it shows that the power series for $\sqrt{1-z}$ converges absolutely and
|
||||||
|
uniformly everywhere on the closed unit disc. Since $|4 \widehat u(k)| \leqslant 1$,
|
||||||
|
${\displaystyle
|
||||||
|
\sqrt{1-4 \widehat u(k)} = 1 -\sum_{n=1}^\infty c_n (4 \widehat u(k))^n}$. Inverting the Fourier transform, yields (\ref{fun}),and since $\int_{\mathbb R^d} 4^n\star^n u(x){\rm d}x \leqslant 1$,
|
||||||
|
the convergence of the sum in $L^1(\mathbb R^d)$ follows from the convergence of $\sum_{n=1}^\infty c_n$. The final statement follows from the fact that if $f$ is defined in terms of $u$ in this manner, (\ref{hatf}) is
|
||||||
|
valid, and then (\ref{ft}) and (\ref{uineq}) are satisfied.
|
||||||
|
\qed
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
\theo{Theorem}\label{theo:decay}
|
||||||
|
Let $f\in L^1(\mathbb R^d)$ satisfy (\ref{ineq}) and $\int_{\mathbb R^d} f(x)\ dx=\textstyle\frac12$. Then
|
||||||
|
$\int_{\mathbb R^d}|x| f(x)\ dx=\infty$.
|
||||||
|
\endtheo
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
|
||||||
|
\indent\underline{Proof}: If $\int_{\mathbb R^d} f(x)\ dx=\textstyle\frac12$, $\int_{\mathbb R^d} 4u(x)\ dx=1$, then $w(x) = 4u(x)$ is a probability density, and we can write $f(x) = \sum_{n=0}^\infty \star^n w$. Suppose that $|x|f(x)$ is integrable. Then $|x|w(x)$ is integrable. Let $m:= \int_{\mathbb R^d}xw(x){\rm d} x$. Since first moments add under convolution, the trivial inequality $|m||x| \geqslant m\cdot x$ yields
|
||||||
|
$$|m|\int_{\mathbb R^d} |x| \star^nw(x){\rm d}x \geqslant \int_{\mathbb R^d} m\cdot x \star^nw(x){\rm d}x = n|m|^2\ .$$
|
||||||
|
It follows that $\int_{\mathbb R^d} |x| f(x){\rm d}x \geqslant |m|\sum_{n=1}^\infty nc_n = \infty$. Hence $m=0$.
|
||||||
|
|
||||||
|
|
||||||
|
Suppose temporarily that in addition, $|x|^2w(x)$ is integrable. Let $\sigma^2$ be the variance of $w$; i.e., $\sigma^2 = \int_{\mathbb R^d}|x|^2w(x){\rm d}x\ .$
|
||||||
|
Define the function $\varphi(x) = \min\{1,|x|\}$. Then
|
||||||
|
$$
|
||||||
|
\int_{\mathbb R^d}|x| \star^n w(x){\rm d}x = \int_{\mathbb R^d}|n^{1/2}x| \star^n w(n^{1/2}x)n^{d/2}{\rm d}x \geqslant n^{1/2} \int_{\mathbb R^d}\varphi(x)\star^n w(n^{1/2}x)n^{d/2}{\rm d}x.
|
||||||
|
$$
|
||||||
|
By the Central Limit Theorem, since $\varphi$ is bounded and continuous,
|
||||||
|
\begin{equation}\label{CLT}
|
||||||
|
\lim_{n\to\infty} \int_{\mathbb R^d}\varphi(x)\star^n w(n^{1/2}x)n^{d/2}{\rm d}x = \int_{\mathbb R^d}\varphi(x) \gamma(x){\rm d}x =: C > 0
|
||||||
|
\end{equation}
|
||||||
|
where $\gamma(x)$ is a centered Gaussian probability density with variance $\sigma^2$.
|
||||||
|
|
||||||
|
This shows that there is a $\delta> 0$ for all sufficiently large $n$, $\int_{\mathbb R^d}|x| \star^n w(x){\rm d}x \geqslant \sqrt{n}\delta$, and then since $c_n\sim n^{3/2}$, $\sum_{n=1}^\infty c_n \int_{\mathbb R^d}|x| \star^n w(x){\rm d}x= \infty$.
|
||||||
|
|
||||||
|
To remove the hypothesis that $w$ has finite variance, note that if $w$ is a probability density with zero mean and infinite variance, $\star^n w(n^{1/2}x)n^{d/2}$ is ``trying'' to converge to a Gaussian of infinite variance. In particular, one would expect that for all $R>0$,
|
||||||
|
\begin{equation}\label{CLT2}
|
||||||
|
\lim_{n\to\infty} \int_{|x| \leqslant R}\star^n w(n^{1/2}x)n^{d/2}{\rm d}x = 0\ ,
|
||||||
|
\end{equation} so that the limit in (\ref{CLT}) has the value $1$. The proof then proceeds as above. The fact that (\ref{CLT2}) is valid is proved in \cite[Corollary 1]{CGR08}.
|
||||||
|
\qed
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
\delimtitle{\bf Remark}
|
||||||
|
For the convenience of the reader, we sketch, at the end of this paper, the part of of the argument in \cite{CGR08} that proves (\ref{CLT2}), since we know of no reference for this simple statement, and the proof in \cite{CGR08} deals with a more complicated variant of this problem.
|
||||||
|
\endtheo
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
\theo{Theorem}
|
||||||
|
If $f$ satisfies\-~(\ref{ineq}), and
|
||||||
|
$\int |x|^2[f(x)-f\star f(x)]\ dx<\infty$, then, for all $0\leqslant p<1$,
|
||||||
|
\begin{equation}
|
||||||
|
\int |x|^pf(x)\ dx<\infty.
|
||||||
|
\end{equation}
|
||||||
|
\endtheo
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
\indent\underline{Proof}: We may suppose that $f$ is not identically $0$. Let $u = f - f\star f$ as above. Let $t := 4\int_{\mathbb R^d}u(x){\rm d}x \leqslant 1$. Then $t> 0$. Define $w := t^{-1}4u$; $w$ is a probability density and
|
||||||
|
$$
|
||||||
|
f(x) = \sum_{n=1}^\infty c_n t^n \star^n w(x)\ .
|
||||||
|
$$
|
||||||
|
By hypothesis, $w$ has a mean $m := \int_{\mathbb R^d} x w(x){\rm d}x$ and variance $\sigma^2 = \int_{\mathbb R^d} |x-m|^2 w(x){\rm d}x < \infty$. Since variance is additive under convolution,
|
||||||
|
$$
|
||||||
|
\int_{\mathbb R^d} |x-m|^2 \star^n w(x){\rm d}x = n\sigma^2\ .
|
||||||
|
$$
|
||||||
|
By H\"older's inequality, for all $0 < p < 2$,
|
||||||
|
$\int_{\mathbb R^d} |x-m|^p \star^n w(x){\rm d}x \leqslant (n\sigma^2)^{p/2}$.
|
||||||
|
It follows that for $0 < p < 1$,
|
||||||
|
$$
|
||||||
|
\int_{\mathbb R^d} |x-m|^p f(x){\rm d}x \leqslant (\sigma^2)^{p/2} \sum_{n=1}^\infty n^{p/2} c_n < \infty\ ,
|
||||||
|
$$
|
||||||
|
again using the fact that $c_n\sim n^{-3/2}$.
|
||||||
|
\qed
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Theorem \ref{theo:decay} implies that when $\int f=\frac12$, $f$ cannot decay faster than $|x|^{-(d+1)}$. However, integrable solutions $f$ of (\ref{ineq}) such that $\int_{\mathbb R^d}f(x){\rm d}x < \textstyle\frac12$
|
||||||
|
can decay quite rapidly, even having finite exponential moments, as we now show.
|
||||||
|
|
||||||
|
|
||||||
|
Consider a non-negative, integrable function $u$, which integrates to $r<\frac14$, and satisfies
|
||||||
|
\begin{equation}
|
||||||
|
\int_{\mathbb R^d} u(x)e^{\lambda|x|}{\rm d}x < \infty
|
||||||
|
\end{equation}
|
||||||
|
for some $\lambda>0$.
|
||||||
|
The Laplace transform of $u$ is
|
||||||
|
$ \widetilde u(p):=\int e^{-px}u(x)\ {\rm d} x$ which is analytic for $|p|<\lambda$, and $\widetilde u(0) < \textstyle\frac14$.
|
||||||
|
Therefore, there exists $0<\lambda_0\leqslant \lambda$ such that, for all $|p|\leqslant\lambda_0$,
|
||||||
|
$\widetilde u(p)<\textstyle\frac14$.
|
||||||
|
By Theorem \ref{theo:positivity},
|
||||||
|
${\displaystyle
|
||||||
|
f(x):=\frac12\sum_{n=1}^\infty 4^nc_n(\star^n u)(x)}$
|
||||||
|
is an integrable solution of (\ref{ineq}). For
|
||||||
|
$|p|\leqslant\lambda_0$, it has a well-defined Laplace transform $ \widetilde f(p)$ given by
|
||||||
|
\begin{equation}
|
||||||
|
\widetilde f(p)=\int e^{-px}f(x)\ dx=\frac12(1-\sqrt{1-4\widetilde u(p)})
|
||||||
|
\end{equation}
|
||||||
|
which is analytic for $|p|\leqslant \lambda_0$.
|
||||||
|
Note that
|
||||||
|
${\displaystyle e^{s|x|} \leqslant \prod_{j=1}^d e^{|sx_j|} \leqslant \frac{1}{d}\sum_{j=1}^d e^{d|sx_j|} \leqslant \frac{2}{d}\sum_{j=1}^d \cosh(dsx_j)}$.
|
||||||
|
What has just been shown, yields a $\delta>0$ so that for $|s|< \delta$, $\int_{\mathbb R^d} \cosh(dsx_j)f(x){\rm d}x < \infty$ for each $j$. It follows that for
|
||||||
|
$0 < s < \delta$, $\int_{\mathbb R^d} e^{s|x|}f(x){\rm d}x < \infty$.
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
|
||||||
|
\delimtitle{\bf Remark}
|
||||||
|
One might also consider the inequality $f \leqslant f \star f$ in $L^1(\mathbb R^d)$, but it is simple to construct solutions that have both signs. Consider any radial Gaussian probability density $g$,
|
||||||
|
Then $g\star g(x) \geqslant g(x)$ for all sufficiently large $|x|$, and taking $f:= ag$ for $a$ sufficiently large, we obtain $f< f\star f$ everywhere. Now on a small neighborhood of the origin, replace the value of
|
||||||
|
$f$ by $-1$. If the region is taken small enough, the new function $f$ will still satisfy $f < f\star f$ everywhere.
|
||||||
|
\endtheo
|
||||||
|
\bigskip
|
||||||
|
|
||||||
|
We close by sketching a proof of (\ref{CLT2}) using the construction in \cite{CGR08}. Let $w$ be a mean zero, infinite variance probability density on $\mathbb R^d$.
|
||||||
|
Pick $\epsilon>0$, and choose a large value $\sigma$ such that $(2\pi \sigma^2)^{-d/2}R^d|B| < \epsilon/2$, where $|B|$ denotes the volume of the ball. The point of this is that if
|
||||||
|
$G$ is a centered Gaussian random variable with variance $\sigma^2$, the probability is no more than $\epsilon/2$ that $G$ lies in {\em any} particular translate $B_R+y$ of the ball of radius $R$.
|
||||||
|
|
||||||
|
Let $A \subset \mathbb R^d$ be a bounded set so that $\int_{A}xw(x){\rm d}x = 0$ and $\int_{A}|x|^2w(x){\rm d}x = \sigma^2$. It is then easy to find mutually independent random variables $X$, $Y$ and $\alpha$ such that
|
||||||
|
$X$ takes values in $A$ and, has zero mean and variance greater than $\sigma^2$, $\alpha$ is a Bernoulli variable with success probability $\int_{A}w(x){\rm d}x$, which we can take arbitrarily close to $1$ by
|
||||||
|
increasing the size of $A$, and finally such that $\alpha X + (1-\alpha)Y $ has the probability density $w$. Taking independent i.i.d. sequences of such random variables, $w(n^{1/2}x)n^{d/2}$ is the probability density of
|
||||||
|
${\displaystyle W_n := \frac{1}{\sqrt{n}}\sum_{j=1}^n \alpha_j X_j + \frac{1}{\sqrt{n}} \sum_{j=1}^n(1-\alpha_j)Y_j}$.
|
||||||
|
We are interested in estimating the expectation of $1_{B_R}(W_n)$. We first take the conditional expectation, given the values of the $\alpha$'s and the $Y$'s. These conditional expectations have the form
|
||||||
|
${\mathbb E}\left[ 1_{B_R + y}\left( \frac{1}{\sqrt{n}}\sum_{j=1}^n \alpha_j X_j \right)\right]$
|
||||||
|
for some translate $B_R +y$ of the unit Ball. Since $A$ is bounded, the $X_j$'s all have the same finite third moment, and now the Berry-Esseen Theorem \cite{B41,E42}, a version of the Central Limit Theorem
|
||||||
|
with rate information, allows us to control the error in approximating this expectation by
|
||||||
|
$\mathbb{E}(1_{B_R +y}(G))$ where $G$ is centered Gaussian with variance $\sigma^2$. By the choice of $\sigma$, this is no greater than $\epsilon/2$, independent of $y$. For $n$ large enough,
|
||||||
|
the remaining errors -- coming from the small probability that $\sum_{n=1}^n \alpha_j$ is significantly less $n$, and the error bound provided by the Berry-Esseen Theorem, are readily absorbed into the remaining
|
||||||
|
$\epsilon/2$ for large $n$. Thus for all sufficiently large $n$, the integral in (\ref{CLT2}) is no more than $\epsilon$.
|
||||||
|
|
||||||
|
|
||||||
|
\vfill
|
||||||
|
\eject
|
||||||
|
{\bf Acknowledgements}:
|
||||||
|
|
||||||
|
U.S.~National Science Foundation grants DMS-1764254 (E.A.C.), DMS-1802170 (I.J.) and NSF grant DMS-1856645 (M.P.L) are gratefully acknowledged.
|
||||||
|
\vskip20pt
|
||||||
|
|
||||||
|
\begin{thebibliography}{WWW99}
|
||||||
|
|
||||||
|
\bibitem[B41]{B41} A. Berry, {\em The Accuracy of the Gaussian Approximation to the Sum of Independent Variates}. Trans. of the A.M.S. {\bf 49} (1941),122-136.
|
||||||
|
|
||||||
|
\bibitem[CGR08]{CGR08} E.A. Carlen, E. Gabetta and E. Regazzini, {\it Probabilistic investigation on explosion of solutions of the Kac equation with infintte initial energy}, J. Appl. Prob. {\bf 45} (2008), 95-106
|
||||||
|
|
||||||
|
\bibitem[CJL19]{CJL19} E.A. Carlen, I. Jauslin and E.H. Lieb, {Analysis of a simple equation for the ground state energy of the Bose gas}, arXiv preprint arXiv:1912.04987.
|
||||||
|
|
||||||
|
\bibitem[E42]{E42} C.-G. Esseen, {\em A moment inequality with an application to the central limit theorem}. Skand. Aktuarietidskr. {\bf 39} 160-170.
|
||||||
|
|
||||||
|
\bibitem[LL96]{LL96} E.H. Lieb and M. Loss, {\em Analysis}, Graduate Studies in Mathematics {\bf 14}, A.M.S., Providence RI, 1996.
|
||||||
|
|
||||||
|
\bibitem[SW71]{SW71} E. Stein and G. Weiss, {\em Introduction to Fourier analysis on Euclidean spaces}, Princeton University Press, Princeton NJ, 1971.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\end{thebibliography}
|
||||||
|
|
||||||
|
\end{document}
|
34
Makefile
Normal file
34
Makefile
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
PROJECTNAME=$(basename $(wildcard *.tex))
|
||||||
|
LIBS=$(notdir $(wildcard libs/*))
|
||||||
|
|
||||||
|
PDFS=$(addsuffix .pdf, $(PROJECTNAME))
|
||||||
|
SYNCTEXS=$(addsuffix .synctex.gz, $(PROJECTNAME))
|
||||||
|
|
||||||
|
all: $(PROJECTNAME)
|
||||||
|
|
||||||
|
$(PROJECTNAME): $(LIBS)
|
||||||
|
pdflatex -file-line-error $@.tex
|
||||||
|
pdflatex -file-line-error $@.tex
|
||||||
|
pdflatex -synctex=1 $@.tex
|
||||||
|
|
||||||
|
$(SYNCTEXS): $(LIBS)
|
||||||
|
pdflatex -synctex=1 $(patsubst %.synctex.gz, %.tex, $@)
|
||||||
|
|
||||||
|
libs: $(LIBS)
|
||||||
|
|
||||||
|
$(LIBS):
|
||||||
|
ln -fs libs/$@ ./
|
||||||
|
|
||||||
|
clean-aux:
|
||||||
|
rm -f $(addsuffix .aux, $(PROJECTNAME))
|
||||||
|
rm -f $(addsuffix .log, $(PROJECTNAME))
|
||||||
|
rm -f $(addsuffix .out, $(PROJECTNAME))
|
||||||
|
rm -f $(addsuffix .toc, $(PROJECTNAME))
|
||||||
|
|
||||||
|
clean-libs:
|
||||||
|
rm -f $(LIBS)
|
||||||
|
|
||||||
|
clean-tex:
|
||||||
|
rm -f $(PDFS) $(SYNCTEXS)
|
||||||
|
|
||||||
|
clean: clean-aux clean-tex clean-libs
|
31
README
Normal file
31
README
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
This directory contains the source files to typeset the article. This can be
|
||||||
|
accomplished by running
|
||||||
|
make
|
||||||
|
|
||||||
|
This document uses a custom class file, located in the 'libs' directory, which
|
||||||
|
defines a number of commands. Most of these are drop-in replacements for those
|
||||||
|
defined in the 'article' class.
|
||||||
|
|
||||||
|
Some extra functionality is provided in custom style files, located in the
|
||||||
|
'libs' directory.
|
||||||
|
|
||||||
|
|
||||||
|
* Dependencies:
|
||||||
|
|
||||||
|
pdflatex
|
||||||
|
TeXlive packages:
|
||||||
|
amsfonts
|
||||||
|
color
|
||||||
|
hyperref
|
||||||
|
latex
|
||||||
|
marginnote
|
||||||
|
GNU make
|
||||||
|
|
||||||
|
* Files:
|
||||||
|
|
||||||
|
Carlen_Jauslin_Lieb_Loss_2020.tex:
|
||||||
|
main LaTeX file
|
||||||
|
|
||||||
|
libs:
|
||||||
|
custom LaTeX class file
|
||||||
|
|
673
libs/ian.cls
Normal file
673
libs/ian.cls
Normal file
@ -0,0 +1,673 @@
|
|||||||
|
%%
|
||||||
|
%% Ian's class file
|
||||||
|
%%
|
||||||
|
|
||||||
|
%% TeX format
|
||||||
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||||
|
|
||||||
|
%% class name
|
||||||
|
\ProvidesClass{ian}[2017/09/29]
|
||||||
|
|
||||||
|
%% boolean to signal that this class is being used
|
||||||
|
\newif\ifianclass
|
||||||
|
|
||||||
|
%% options
|
||||||
|
% no section numbering in equations
|
||||||
|
\DeclareOption{section_in_eq}{\sectionsineqtrue}
|
||||||
|
\DeclareOption{section_in_fig}{\sectionsinfigtrue}
|
||||||
|
\DeclareOption{section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||||
|
\DeclareOption{section_in_all}{\sectionsineqtrue\sectionsinfigtrue\PassOptionsToPackage{section_in_theo}{iantheo}}
|
||||||
|
\DeclareOption{subsection_in_eq}{\subsectionsineqtrue}
|
||||||
|
\DeclareOption{subsection_in_fig}{\subsectionsinfigtrue}
|
||||||
|
\DeclareOption{subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||||
|
\DeclareOption{subsection_in_all}{\subsectionsineqtrue\subsectionsinfigtrue\PassOptionsToPackage{subsection_in_theo}{iantheo}}
|
||||||
|
\DeclareOption{no_section_in_eq}{\sectionsineqfalse}
|
||||||
|
\DeclareOption{no_section_in_fig}{\sectionsinfigfalse}
|
||||||
|
\DeclareOption{no_section_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||||
|
\DeclareOption{no_section_in_all}{\sectionsineqfalse\sectionsinfigfalse\PassOptionsToPackage{no_section_in_theo}{iantheo}}
|
||||||
|
\DeclareOption{no_subsection_in_eq}{\subsectionsineqfalse}
|
||||||
|
\DeclareOption{no_subsection_in_fig}{\subsectionsinfigfalse}
|
||||||
|
\DeclareOption{no_subsection_in_theo}{\PassOptionsToPackage{\CurrentOption}{iantheo}}
|
||||||
|
\DeclareOption{no_subsection_in_all}{\subsectionsineqfalse\subsectionsinfigfalse\PassOptionsToPackage{no_subsection_in_theo}{iantheo}}
|
||||||
|
% reset point
|
||||||
|
\DeclareOption{point_reset_at_section}{\PassOptionsToPackage{reset_at_section}{point}}
|
||||||
|
\DeclareOption{point_no_reset_at_section}{\PassOptionsToPackage{no_reset_at_section}{point}}
|
||||||
|
\DeclareOption{point_reset_at_theo}{\PassOptionsToPackage{reset_at_theo}{point}}
|
||||||
|
\DeclareOption{point_no_reset_at_theo}{\PassOptionsToPackage{no_reset_at_theo}{point}}
|
||||||
|
|
||||||
|
\def\ian@defaultoptions{
|
||||||
|
\ExecuteOptions{section_in_all, no_subsection_in_all}
|
||||||
|
\ProcessOptions
|
||||||
|
|
||||||
|
%% required packages
|
||||||
|
\RequirePackage{iantheo}
|
||||||
|
\RequirePackage{point}
|
||||||
|
\RequirePackage{color}
|
||||||
|
\RequirePackage{marginnote}
|
||||||
|
\RequirePackage{amssymb}
|
||||||
|
\PassOptionsToPackage{hidelinks}{hyperref}
|
||||||
|
\RequirePackage{hyperref}
|
||||||
|
}
|
||||||
|
|
||||||
|
%% paper dimensions
|
||||||
|
\setlength\paperheight{297mm}
|
||||||
|
\setlength\paperwidth{210mm}
|
||||||
|
|
||||||
|
%% fonts
|
||||||
|
\input{size11.clo}
|
||||||
|
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
|
||||||
|
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
|
||||||
|
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
|
||||||
|
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
|
||||||
|
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
|
||||||
|
|
||||||
|
%% text dimensions
|
||||||
|
\hoffset=-50pt
|
||||||
|
\voffset=-72pt
|
||||||
|
\textwidth=460pt
|
||||||
|
\textheight=704pt
|
||||||
|
|
||||||
|
|
||||||
|
%% remove default indentation
|
||||||
|
\parindent=0pt
|
||||||
|
%% indent command
|
||||||
|
\def\indent{\hskip20pt}
|
||||||
|
|
||||||
|
%% something is wrong with \thepage, redefine it
|
||||||
|
\gdef\thepage{\the\c@page}
|
||||||
|
|
||||||
|
%% array lines (to use the array environment)
|
||||||
|
\setlength\arraycolsep{5\p@}
|
||||||
|
\setlength\arrayrulewidth{.4\p@}
|
||||||
|
|
||||||
|
|
||||||
|
%% correct vertical alignment at the end of a document
|
||||||
|
\AtEndDocument{
|
||||||
|
\vfill
|
||||||
|
\eject
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% hyperlinks
|
||||||
|
% hyperlinkcounter
|
||||||
|
\newcounter{lncount}
|
||||||
|
% hyperref anchor
|
||||||
|
\def\hrefanchor{%
|
||||||
|
\stepcounter{lncount}%
|
||||||
|
\hypertarget{ln.\thelncount}{}%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% define a command and write it to aux file
|
||||||
|
\def\outdef#1#2{%
|
||||||
|
% define command%
|
||||||
|
\expandafter\xdef\csname #1\endcsname{#2}%
|
||||||
|
% hyperlink number%
|
||||||
|
\expandafter\xdef\csname #1@hl\endcsname{\thelncount}%
|
||||||
|
% write command to aux%
|
||||||
|
\immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1\endcsname{\csname #1\endcsname}}%
|
||||||
|
\immediate\write\@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname #1@hl\endcsname{\thelncount}}%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% can call commands even when they are not defined
|
||||||
|
\def\safe#1{%
|
||||||
|
\ifdefined#1%
|
||||||
|
#1%
|
||||||
|
\else%
|
||||||
|
{\color{red}\bf?}%
|
||||||
|
\fi%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% define a label for the latest tag
|
||||||
|
%% label defines a command containing the string stored in \tag
|
||||||
|
\def\deflabel{
|
||||||
|
\def\label##1{\expandafter\outdef{label@##1}{\safe\tag}}
|
||||||
|
|
||||||
|
\def\ref##1{%
|
||||||
|
% check whether the label is defined (hyperlink runs into errors if this check is omitted)
|
||||||
|
\ifcsname label@##1@hl\endcsname%
|
||||||
|
\hyperlink{ln.\csname label@##1@hl\endcsname}{{\color{blue}\safe\csname label@##1\endcsname}}%
|
||||||
|
\else%
|
||||||
|
\ifcsname label@##1\endcsname%
|
||||||
|
{\color{blue}\csname ##1\endcsname}%
|
||||||
|
\else%
|
||||||
|
{\bf ??}%
|
||||||
|
\fi%
|
||||||
|
\fi%
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% make a custom link at any given location in the document
|
||||||
|
\def\makelink#1#2{%
|
||||||
|
\hrefanchor%
|
||||||
|
\outdef{label@#1}{#2}%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% section command
|
||||||
|
% counter
|
||||||
|
\newcounter{sectioncount}
|
||||||
|
% space before section
|
||||||
|
\newlength\secskip
|
||||||
|
\setlength\secskip{40pt}
|
||||||
|
% a prefix to put before the section number, e.g. A for appendices
|
||||||
|
\def\sectionprefix{}
|
||||||
|
% define some lengths
|
||||||
|
\newlength\secnumwidth
|
||||||
|
\newlength\sectitlewidth
|
||||||
|
\def\section#1{
|
||||||
|
% reset counters
|
||||||
|
\stepcounter{sectioncount}
|
||||||
|
\setcounter{subsectioncount}{0}
|
||||||
|
\ifsectionsineq
|
||||||
|
\setcounter{seqcount}0
|
||||||
|
\fi
|
||||||
|
\ifsectionsinfig
|
||||||
|
\setcounter{figcount}0
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% space before section (if not first)
|
||||||
|
\ifnum\thesectioncount>1
|
||||||
|
\vskip\secskip
|
||||||
|
\penalty-1000
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\sectionprefix\thesectioncount}
|
||||||
|
|
||||||
|
% get widths
|
||||||
|
\def\@secnum{{\bf\Large\sectionprefix\thesectioncount.\hskip10pt}}
|
||||||
|
\settowidth\secnumwidth{\@secnum}
|
||||||
|
\setlength\sectitlewidth\textwidth
|
||||||
|
\addtolength\sectitlewidth{-\secnumwidth}
|
||||||
|
|
||||||
|
% print name
|
||||||
|
\parbox{\textwidth}{
|
||||||
|
\@secnum
|
||||||
|
\parbox[t]{\sectitlewidth}{\Large\bf #1}}
|
||||||
|
|
||||||
|
% write to table of contents
|
||||||
|
\iftoc
|
||||||
|
% save lncount in aux variable which is written to toc
|
||||||
|
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@sec.\thesectioncount\endcsname{\thelncount}}
|
||||||
|
\write\tocoutput{\noexpand\tocsection{#1}{\thepage}}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
%space
|
||||||
|
\par\penalty10000
|
||||||
|
\bigskip\penalty10000
|
||||||
|
}
|
||||||
|
|
||||||
|
%% subsection
|
||||||
|
% counter
|
||||||
|
\newcounter{subsectioncount}
|
||||||
|
% space before subsection
|
||||||
|
\newlength\subsecskip
|
||||||
|
\setlength\subsecskip{30pt}
|
||||||
|
\def\subsection#1{
|
||||||
|
% counters
|
||||||
|
\stepcounter{subsectioncount}
|
||||||
|
\setcounter{subsubsectioncount}{0}
|
||||||
|
\ifsubsectionsineq
|
||||||
|
\setcounter{seqcount}0
|
||||||
|
\fi
|
||||||
|
\ifsubsectionsinfig
|
||||||
|
\setcounter{figcount}0
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% space before subsection (if not first)
|
||||||
|
\ifnum\thesubsectioncount>1
|
||||||
|
\vskip\subsecskip
|
||||||
|
\penalty-500
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount}
|
||||||
|
|
||||||
|
% get widths
|
||||||
|
\def\@secnum{{\bf\large\hskip.5cm\sectionprefix\thesectioncount.\thesubsectioncount.\hskip5pt}}
|
||||||
|
\settowidth\secnumwidth{\@secnum}
|
||||||
|
\setlength\sectitlewidth\textwidth
|
||||||
|
\addtolength\sectitlewidth{-\secnumwidth}
|
||||||
|
% print name
|
||||||
|
\parbox{\textwidth}{
|
||||||
|
\@secnum
|
||||||
|
\parbox[t]{\sectitlewidth}{\large\bf #1}}
|
||||||
|
|
||||||
|
% write to table of contents
|
||||||
|
\iftoc
|
||||||
|
% save lncount in aux variable which is written to toc
|
||||||
|
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsec.\thesectioncount.\thesubsectioncount\endcsname{\thelncount}}
|
||||||
|
\write\tocoutput{\noexpand\tocsubsection{#1}{\thepage}}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% space
|
||||||
|
\par\penalty10000
|
||||||
|
\medskip\penalty10000
|
||||||
|
}
|
||||||
|
|
||||||
|
%% subsubsection
|
||||||
|
% counter
|
||||||
|
\newcounter{subsubsectioncount}
|
||||||
|
% space before subsubsection
|
||||||
|
\newlength\subsubsecskip
|
||||||
|
\setlength\subsubsecskip{20pt}
|
||||||
|
\def\subsubsection#1{
|
||||||
|
% counters
|
||||||
|
\stepcounter{subsubsectioncount}
|
||||||
|
|
||||||
|
% space before subsubsection (if not first)
|
||||||
|
\ifnum\thesubsubsectioncount>1
|
||||||
|
\vskip\subsubsecskip
|
||||||
|
\penalty-500
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount}
|
||||||
|
|
||||||
|
% get widths
|
||||||
|
\def\@secnum{{\bf\hskip1.cm\sectionprefix\thesectioncount.\thesubsectioncount.\thesubsubsectioncount.\hskip5pt}}
|
||||||
|
\settowidth\secnumwidth{\@secnum}
|
||||||
|
\setlength\sectitlewidth\textwidth
|
||||||
|
\addtolength\sectitlewidth{-\secnumwidth}
|
||||||
|
% print name
|
||||||
|
\parbox{\textwidth}{
|
||||||
|
\@secnum
|
||||||
|
\parbox[t]{\sectitlewidth}{\large\bf #1}}
|
||||||
|
|
||||||
|
% write to table of contents
|
||||||
|
\iftoc
|
||||||
|
% save lncount in aux variable which is written to toc
|
||||||
|
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@subsubsec.\thesectioncount.\thesubsectioncount.\thesubsubsectioncount\endcsname{\thelncount}}
|
||||||
|
\write\tocoutput{\noexpand\tocsubsubsection{#1}{\thepage}}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% space
|
||||||
|
\par\penalty10000
|
||||||
|
\medskip\penalty10000
|
||||||
|
}
|
||||||
|
|
||||||
|
%% itemize
|
||||||
|
\newlength\itemizeskip
|
||||||
|
% left margin for items
|
||||||
|
\setlength\itemizeskip{20pt}
|
||||||
|
\newlength\itemizeseparator
|
||||||
|
% space between the item symbol and the text
|
||||||
|
\setlength\itemizeseparator{5pt}
|
||||||
|
% penalty preceding an itemize
|
||||||
|
\newcount\itemizepenalty
|
||||||
|
\itemizepenalty=0
|
||||||
|
% counter counting the itemize level
|
||||||
|
\newcounter{itemizecount}
|
||||||
|
|
||||||
|
% item symbol
|
||||||
|
\def\itemizept#1{
|
||||||
|
\ifnum#1=1
|
||||||
|
\textbullet
|
||||||
|
\else
|
||||||
|
$\scriptstyle\blacktriangleright$
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\newlength\current@itemizeskip
|
||||||
|
\setlength\current@itemizeskip{0pt}
|
||||||
|
\def\itemize{%
|
||||||
|
\par\expandafter\penalty\the\itemizepenalty\medskip\expandafter\penalty\the\itemizepenalty%
|
||||||
|
\addtocounter{itemizecount}{1}%
|
||||||
|
\addtolength\current@itemizeskip{\itemizeskip}%
|
||||||
|
\leftskip\current@itemizeskip%
|
||||||
|
}
|
||||||
|
\def\enditemize{%
|
||||||
|
\addtocounter{itemizecount}{-1}%
|
||||||
|
\addtolength\current@itemizeskip{-\itemizeskip}%
|
||||||
|
\par\expandafter\penalty\the\itemizepenalty\leftskip\current@itemizeskip%
|
||||||
|
\medskip\expandafter\penalty\the\itemizepenalty%
|
||||||
|
}
|
||||||
|
|
||||||
|
% item, with optional argument to specify the item point
|
||||||
|
% @itemarg is set to true when there is an optional argument
|
||||||
|
\newif\if@itemarg
|
||||||
|
\def\item{%
|
||||||
|
% check whether there is an optional argument (if there is none, add on empty '[]')
|
||||||
|
\@ifnextchar [{\@itemargtrue\@itemx}{\@itemargfalse\@itemx[]}%
|
||||||
|
}
|
||||||
|
\newlength\itempt@total
|
||||||
|
\def\@itemx[#1]{
|
||||||
|
\if@itemarg
|
||||||
|
\settowidth\itempt@total{#1}
|
||||||
|
\else
|
||||||
|
\settowidth\itempt@total{\itemizept\theitemizecount}
|
||||||
|
\fi
|
||||||
|
\addtolength\itempt@total{\itemizeseparator}
|
||||||
|
\par
|
||||||
|
\medskip
|
||||||
|
\if@itemarg
|
||||||
|
\hskip-\itempt@total#1\hskip\itemizeseparator
|
||||||
|
\else
|
||||||
|
\hskip-\itempt@total\itemizept\theitemizecount\hskip\itemizeseparator
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
%% prevent page breaks after itemize
|
||||||
|
\newcount\previtemizepenalty
|
||||||
|
\def\nopagebreakafteritemize{
|
||||||
|
\previtemizepenalty=\itemizepenalty
|
||||||
|
\itemizepenalty=10000
|
||||||
|
}
|
||||||
|
%% back to previous value
|
||||||
|
\def\restorepagebreakafteritemize{
|
||||||
|
\itemizepenalty=\previtemizepenalty
|
||||||
|
}
|
||||||
|
|
||||||
|
%% enumerate
|
||||||
|
\newcounter{enumerate@count}
|
||||||
|
\def\enumerate{
|
||||||
|
\setcounter{enumerate@count}0
|
||||||
|
\let\olditem\item
|
||||||
|
\let\olditemizept\itemizept
|
||||||
|
\def\item{
|
||||||
|
% counter
|
||||||
|
\stepcounter{enumerate@count}
|
||||||
|
% set header
|
||||||
|
\def\itemizept{\theenumerate@count.}
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\theenumerate@count}
|
||||||
|
\olditem
|
||||||
|
}
|
||||||
|
\itemize
|
||||||
|
}
|
||||||
|
\def\endenumerate{
|
||||||
|
\enditemize
|
||||||
|
\let\item\olditem
|
||||||
|
\let\itemizept\olditemizept
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% equation numbering
|
||||||
|
% counter
|
||||||
|
\newcounter{seqcount}
|
||||||
|
% booleans (write section or subsection in equation number)
|
||||||
|
\newif\ifsectionsineq
|
||||||
|
\newif\ifsubsectionsineq
|
||||||
|
\def\seqcount{
|
||||||
|
\stepcounter{seqcount}
|
||||||
|
% the output
|
||||||
|
\edef\seqformat{\theseqcount}
|
||||||
|
% add subsection number
|
||||||
|
\ifsubsectionsineq
|
||||||
|
\let\tmp\seqformat
|
||||||
|
\edef\seqformat{\thesubsectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
% add section number
|
||||||
|
\ifsectionsineq
|
||||||
|
\let\tmp\seqformat
|
||||||
|
\edef\seqformat{\sectionprefix\thesectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\seqformat}
|
||||||
|
% write number
|
||||||
|
\marginnote{\hfill(\seqformat)}
|
||||||
|
}
|
||||||
|
%% equation environment compatibility
|
||||||
|
\def\equation{\hrefanchor$$\seqcount}
|
||||||
|
\def\endequation{$$\@ignoretrue}
|
||||||
|
|
||||||
|
|
||||||
|
%% figures
|
||||||
|
% counter
|
||||||
|
\newcounter{figcount}
|
||||||
|
% booleans (write section or subsection in equation number)
|
||||||
|
\newif\ifsectionsinfig
|
||||||
|
\newif\ifsubsectionsinfig
|
||||||
|
% width of figures
|
||||||
|
\newlength\figwidth
|
||||||
|
\setlength\figwidth\textwidth
|
||||||
|
\addtolength\figwidth{-2.5cm}
|
||||||
|
% caption
|
||||||
|
\def\defcaption{
|
||||||
|
\long\def\caption##1{
|
||||||
|
\stepcounter{figcount}
|
||||||
|
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
|
||||||
|
% the number of the figure
|
||||||
|
\edef\figformat{\thefigcount}
|
||||||
|
% add subsection number
|
||||||
|
\ifsubsectionsinfig
|
||||||
|
\let\tmp\figformat
|
||||||
|
\edef\figformat{\thesubsectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
% add section number
|
||||||
|
\ifsectionsinfig
|
||||||
|
\let\tmp\figformat
|
||||||
|
\edef\figformat{\sectionprefix\thesectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\figformat}
|
||||||
|
|
||||||
|
% write
|
||||||
|
\hfil fig \figformat: \parbox[t]{\figwidth}{\leavevmode\small##1}
|
||||||
|
|
||||||
|
% space
|
||||||
|
\par\bigskip
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%% short caption: centered
|
||||||
|
\def\captionshort#1{
|
||||||
|
\stepcounter{figcount}
|
||||||
|
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
|
||||||
|
% the number of the figure
|
||||||
|
\edef\figformat{\thefigcount}
|
||||||
|
% add section number
|
||||||
|
\ifsectionsinfig
|
||||||
|
\let\tmp\figformat
|
||||||
|
\edef\figformat{\sectionprefix\thesectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\figformat}
|
||||||
|
|
||||||
|
% write
|
||||||
|
\hfil fig \figformat: {\small#1}
|
||||||
|
|
||||||
|
%space
|
||||||
|
\par\bigskip
|
||||||
|
}
|
||||||
|
|
||||||
|
%% environment
|
||||||
|
\def\figure{
|
||||||
|
\par
|
||||||
|
\vfil\penalty100\vfilneg
|
||||||
|
\bigskip
|
||||||
|
}
|
||||||
|
\def\endfigure{
|
||||||
|
\par
|
||||||
|
\bigskip
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% start appendices
|
||||||
|
\def\appendix{
|
||||||
|
\vfill
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
|
% counter
|
||||||
|
\setcounter{sectioncount}0
|
||||||
|
|
||||||
|
% prefix
|
||||||
|
\def\sectionprefix{A}
|
||||||
|
|
||||||
|
% write
|
||||||
|
{\bf \LARGE Appendices}\par\penalty10000\bigskip\penalty10000
|
||||||
|
|
||||||
|
% add a mention in the table of contents
|
||||||
|
\iftoc
|
||||||
|
\immediate\write\tocoutput{\noexpand\tocappendices}\penalty10000
|
||||||
|
\fi
|
||||||
|
|
||||||
|
%% uncomment for new page for each appendix
|
||||||
|
%\def\seqskip{\vfill\pagebreak}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% bibliography
|
||||||
|
% size of header
|
||||||
|
\newlength\bibheader
|
||||||
|
\def\thebibliography#1{
|
||||||
|
\hrefanchor
|
||||||
|
|
||||||
|
% add a mention in the table of contents
|
||||||
|
\iftoc
|
||||||
|
% save lncount in aux variable which is written to toc
|
||||||
|
\immediate\write\tocoutput{\noexpand\expandafter\noexpand\edef\noexpand\csname toc@references\endcsname{\thelncount}}
|
||||||
|
\write\tocoutput{\noexpand\tocreferences{\thepage}}\penalty10000
|
||||||
|
\fi
|
||||||
|
|
||||||
|
% write
|
||||||
|
{\bf \LARGE References}\par\penalty10000\bigskip\penalty10000
|
||||||
|
% width of header
|
||||||
|
\settowidth\bibheader{[#1]}
|
||||||
|
\leftskip\bibheader
|
||||||
|
}
|
||||||
|
% end environment
|
||||||
|
\def\endthebibliography{
|
||||||
|
\par\leftskip0pt
|
||||||
|
}
|
||||||
|
|
||||||
|
%% bibitem command
|
||||||
|
\def\bibitem[#1]#2{%
|
||||||
|
\hrefanchor%
|
||||||
|
\outdef{label@cite#2}{#1}%
|
||||||
|
\hskip-\bibheader%
|
||||||
|
\makebox[\bibheader]{\cite{#2}\hfill}%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% cite command (adapted from latex.ltx)
|
||||||
|
% @tempswa is set to true when there is an optional argument
|
||||||
|
\newif\@tempswa
|
||||||
|
\def\cite{%
|
||||||
|
% check whether there is an optional argument (if there is none, add on empty '[]')
|
||||||
|
\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}%
|
||||||
|
}
|
||||||
|
% command with optional argument
|
||||||
|
\def\@citex[#1]#2{\leavevmode%
|
||||||
|
% initialize loop
|
||||||
|
\let\@citea\@empty%
|
||||||
|
% format
|
||||||
|
\@cite{%
|
||||||
|
% loop over ',' separated list
|
||||||
|
\@for\@citeb:=#2\do{%
|
||||||
|
% text to add at each iteration of the loop (separator between citations)
|
||||||
|
\@citea\def\@citea{,\ }%
|
||||||
|
% add entry to citelist
|
||||||
|
\@writecitation{\@citeb}%
|
||||||
|
\ref{cite\@citeb}%
|
||||||
|
}%
|
||||||
|
}%
|
||||||
|
% add optional argument text (as an argument to '\@cite')
|
||||||
|
{#1}%
|
||||||
|
}
|
||||||
|
\def\@cite#1#2{%
|
||||||
|
[#1\if@tempswa , #2\fi]%
|
||||||
|
}
|
||||||
|
%% add entry to citelist after checking it has not already been added
|
||||||
|
\def\@writecitation#1{%
|
||||||
|
\ifcsname if#1cited\endcsname%
|
||||||
|
\else%
|
||||||
|
\expandafter\newif\csname if#1cited\endcsname%
|
||||||
|
\immediate\write\@auxout{\string\citation{#1}}%
|
||||||
|
\fi%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% table of contents
|
||||||
|
% boolean
|
||||||
|
\newif\iftoc
|
||||||
|
\def\tableofcontents{
|
||||||
|
{\bf \large Table of contents:}\par\penalty10000\bigskip\penalty10000
|
||||||
|
|
||||||
|
% copy content from file
|
||||||
|
\IfFileExists{\jobname.toc}{\input{\jobname.toc}}{{\tt error: table of contents missing}}
|
||||||
|
|
||||||
|
% open new toc
|
||||||
|
\newwrite\tocoutput
|
||||||
|
\immediate\openout\tocoutput=\jobname.toc
|
||||||
|
|
||||||
|
\toctrue
|
||||||
|
}
|
||||||
|
%% close file
|
||||||
|
\AtEndDocument{
|
||||||
|
% close toc
|
||||||
|
\iftoc
|
||||||
|
\immediate\closeout\tocoutput
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% fill line with dots
|
||||||
|
\def\leaderfill{\leaders\hbox to 1em {\hss. \hss}\hfill}
|
||||||
|
|
||||||
|
%% same as sectionprefix
|
||||||
|
\def\tocsectionprefix{}
|
||||||
|
|
||||||
|
%% toc formats
|
||||||
|
\newcounter{tocsectioncount}
|
||||||
|
\def\tocsection #1#2{
|
||||||
|
\stepcounter{tocsectioncount}
|
||||||
|
\setcounter{tocsubsectioncount}{0}
|
||||||
|
\setcounter{tocsubsubsectioncount}{0}
|
||||||
|
% write
|
||||||
|
\smallskip\hyperlink{ln.\csname toc@sec.\thetocsectioncount\endcsname}{{\bf \tocsectionprefix\thetocsectioncount}.\hskip5pt {\color{blue}#1}\leaderfill#2}\par
|
||||||
|
}
|
||||||
|
\newcounter{tocsubsectioncount}
|
||||||
|
\def\tocsubsection #1#2{
|
||||||
|
\stepcounter{tocsubsectioncount}
|
||||||
|
\setcounter{tocsubsubsectioncount}{0}
|
||||||
|
% write
|
||||||
|
{\hskip10pt\hyperlink{ln.\csname toc@subsec.\thetocsectioncount.\thetocsubsectioncount\endcsname}{{\bf \thetocsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
|
||||||
|
}
|
||||||
|
\newcounter{tocsubsubsectioncount}
|
||||||
|
\def\tocsubsubsection #1#2{
|
||||||
|
\stepcounter{tocsubsubsectioncount}
|
||||||
|
% write
|
||||||
|
{\hskip20pt\hyperlink{ln.\csname toc@subsubsec.\thetocsectioncount.\thetocsubsectioncount.\thetocsubsubsectioncount\endcsname}{{\bf \thetocsubsubsectioncount}.\hskip5pt {\color{blue}\small #1}\leaderfill#2}}\par
|
||||||
|
}
|
||||||
|
\def\tocappendices{
|
||||||
|
\medskip
|
||||||
|
\setcounter{tocsectioncount}0
|
||||||
|
{\bf Appendices}\par
|
||||||
|
\smallskip
|
||||||
|
\def\tocsectionprefix{A}
|
||||||
|
}
|
||||||
|
\def\tocreferences#1{
|
||||||
|
\medskip
|
||||||
|
{\hyperlink{ln.\csname toc@references\endcsname}{{\color{blue}\bf References}\leaderfill#1}}\par
|
||||||
|
\smallskip
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% definitions that must be loaded at begin document
|
||||||
|
\let\ian@olddocument\document
|
||||||
|
\def\document{
|
||||||
|
\ian@olddocument
|
||||||
|
|
||||||
|
\deflabel
|
||||||
|
\defcaption
|
||||||
|
}
|
||||||
|
|
||||||
|
%% end
|
||||||
|
\ian@defaultoptions
|
||||||
|
\endinput
|
162
libs/iantheo.sty
Normal file
162
libs/iantheo.sty
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
%%
|
||||||
|
%% iantheorem package:
|
||||||
|
%% Ian's customized theorem command
|
||||||
|
%%
|
||||||
|
|
||||||
|
%% boolean to signal that this package was loaded
|
||||||
|
\newif\ifiantheo
|
||||||
|
|
||||||
|
%% TeX format
|
||||||
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||||
|
|
||||||
|
%% package name
|
||||||
|
\ProvidesPackage{iantheo}[2016/11/10]
|
||||||
|
|
||||||
|
%% options
|
||||||
|
\newif\ifsectionintheo
|
||||||
|
\DeclareOption{section_in_theo}{\sectionintheotrue}
|
||||||
|
\DeclareOption{no_section_in_theo}{\sectionintheofalse}
|
||||||
|
\newif\ifsubsectionintheo
|
||||||
|
\DeclareOption{subsection_in_theo}{\subsectionintheotrue}
|
||||||
|
\DeclareOption{no_subsection_in_theo}{\subsectionintheofalse}
|
||||||
|
|
||||||
|
\def\iantheo@defaultoptions{
|
||||||
|
\ExecuteOptions{section_in_theo, no_subsection_in_theo}
|
||||||
|
\ProcessOptions
|
||||||
|
|
||||||
|
%%% reset at every new section
|
||||||
|
\ifsectionintheo
|
||||||
|
\let\iantheo@oldsection\section
|
||||||
|
\gdef\section{\setcounter{theocount}{0}\iantheo@oldsection}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
%% reset at every new subsection
|
||||||
|
\ifsubsectionintheo
|
||||||
|
\let\iantheo@oldsubsection\subsection
|
||||||
|
\gdef\subsection{\setcounter{theocount}{0}\iantheo@oldsubsection}
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% delimiters
|
||||||
|
\def\delimtitle#1{
|
||||||
|
\par%
|
||||||
|
\leavevmode%
|
||||||
|
\raise.3em\hbox to\hsize{%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
\hrulefill%
|
||||||
|
\ \lower.3em\hbox{#1}\ %
|
||||||
|
\hrulefill%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
}%
|
||||||
|
\par\penalty10000%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% callable by ref
|
||||||
|
\def\delimtitleref#1{
|
||||||
|
\par%
|
||||||
|
%
|
||||||
|
\ifdefined\ianclass%
|
||||||
|
% hyperref anchor%
|
||||||
|
\hrefanchor%
|
||||||
|
% define tag (for \label)%
|
||||||
|
\xdef\tag{#1}%
|
||||||
|
\fi%
|
||||||
|
%
|
||||||
|
\leavevmode%
|
||||||
|
\raise.3em\hbox to\hsize{%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
\hrulefill%
|
||||||
|
\ \lower.3em\hbox{\bf #1}\ %
|
||||||
|
\hrulefill%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
}%
|
||||||
|
\par\penalty10000%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% no title
|
||||||
|
\def\delim{
|
||||||
|
\par%
|
||||||
|
\leavevmode\raise.3em\hbox to\hsize{%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
\hrulefill%
|
||||||
|
\lower0.3em\hbox{\vrule height0.3em}%
|
||||||
|
}%
|
||||||
|
\par\penalty10000%
|
||||||
|
}
|
||||||
|
|
||||||
|
%% end delim
|
||||||
|
\def\enddelim{
|
||||||
|
\par\penalty10000%
|
||||||
|
\leavevmode%
|
||||||
|
\raise.3em\hbox to\hsize{%
|
||||||
|
\vrule height0.3em\hrulefill\vrule height0.3em%
|
||||||
|
}%
|
||||||
|
\par%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% theorem
|
||||||
|
% counter
|
||||||
|
\newcounter{theocount}
|
||||||
|
% booleans (write section or subsection in equation number)
|
||||||
|
\def\theo#1{
|
||||||
|
\stepcounter{theocount}
|
||||||
|
\ifdefined\ianclass
|
||||||
|
% hyperref anchor
|
||||||
|
\hrefanchor
|
||||||
|
\fi
|
||||||
|
% the number
|
||||||
|
\def\formattheo{\thetheocount}
|
||||||
|
% add subsection number
|
||||||
|
\ifsubsectionintheo
|
||||||
|
\let\tmp\formattheo
|
||||||
|
\edef\formattheo{\thesubsectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
% add section number
|
||||||
|
\ifsectionintheo
|
||||||
|
\let\tmp\formattheo
|
||||||
|
\edef\formattheo{\sectionprefix\thesectioncount.\tmp}
|
||||||
|
\fi
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\formattheo}
|
||||||
|
% write
|
||||||
|
\delimtitle{\bf #1 \formattheo}
|
||||||
|
}
|
||||||
|
\let\endtheo\enddelim
|
||||||
|
%% theorem headers with name
|
||||||
|
\def\theoname#1#2{
|
||||||
|
\theo{#1}\hfil({\it #2})\par\penalty10000\medskip%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% qed symbol
|
||||||
|
\def\qedsymbol{$\square$}
|
||||||
|
\def\qed{\penalty10000\hfill\penalty10000\qedsymbol}
|
||||||
|
|
||||||
|
|
||||||
|
%% compatibility with article class
|
||||||
|
\ifdefined\ianclasstrue
|
||||||
|
\relax
|
||||||
|
\else
|
||||||
|
\def\thesectioncount{\thesection}
|
||||||
|
\def\thesubsectioncount{\thesubsection}
|
||||||
|
\def\sectionprefix{}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
|
||||||
|
%% prevent page breaks after displayed equations
|
||||||
|
\newcount\prevpostdisplaypenalty
|
||||||
|
\def\nopagebreakaftereq{
|
||||||
|
\prevpostdisplaypenalty=\postdisplaypenalty
|
||||||
|
\postdisplaypenalty=10000
|
||||||
|
}
|
||||||
|
%% back to previous value
|
||||||
|
\def\restorepagebreakaftereq{
|
||||||
|
\postdisplaypenalty=\prevpostdisplaypenalty
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% end
|
||||||
|
\iantheo@defaultoptions
|
||||||
|
\endinput
|
107
libs/point.sty
Normal file
107
libs/point.sty
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
%%
|
||||||
|
%% Points package:
|
||||||
|
%% \point commands
|
||||||
|
%%
|
||||||
|
|
||||||
|
%% TeX format
|
||||||
|
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||||
|
|
||||||
|
%% package name
|
||||||
|
\ProvidesPackage{point}[2017/06/13]
|
||||||
|
|
||||||
|
%% options
|
||||||
|
\newif\ifresetatsection
|
||||||
|
\DeclareOption{reset_at_section}{\resetatsectiontrue}
|
||||||
|
\DeclareOption{no_reset_at_section}{\resetatsectionfalse}
|
||||||
|
\newif\ifresetatsubsection
|
||||||
|
\DeclareOption{reset_at_subsection}{\resetatsubsectiontrue}
|
||||||
|
\DeclareOption{no_reset_at_subsection}{\resetatsubsectionfalse}
|
||||||
|
\newif\ifresetattheo
|
||||||
|
\DeclareOption{reset_at_theo}{\resetattheotrue}
|
||||||
|
\DeclareOption{no_reset_at_theo}{\resetattheofalse}
|
||||||
|
|
||||||
|
\def\point@defaultoptions{
|
||||||
|
\ExecuteOptions{reset_at_section, reset_at_subsection, no_reset_at_theo}
|
||||||
|
\ProcessOptions
|
||||||
|
|
||||||
|
%% reset at every new section
|
||||||
|
\ifresetatsection
|
||||||
|
\let\point@oldsection\section
|
||||||
|
\gdef\section{\resetpointcounter\point@oldsection}
|
||||||
|
\fi
|
||||||
|
%% reset at every new subsection
|
||||||
|
\ifresetatsubsection
|
||||||
|
\let\point@oldsubsection\subsection
|
||||||
|
\gdef\subsection{\resetpointcounter\point@oldsubsection}
|
||||||
|
\fi
|
||||||
|
|
||||||
|
%% reset at every new theorem
|
||||||
|
\ifresetattheo
|
||||||
|
\ifdefined\iantheotrue
|
||||||
|
\let\point@oldtheo\theo
|
||||||
|
\gdef\theo{\resetpointcounter\point@oldtheo}
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% point
|
||||||
|
% counter
|
||||||
|
\newcounter{pointcount}
|
||||||
|
\def\point{
|
||||||
|
\stepcounter{pointcount}
|
||||||
|
\setcounter{subpointcount}{0}
|
||||||
|
% hyperref anchor (only if the class is 'ian')
|
||||||
|
\ifdefined\ifianclass
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\arabic{pointcount}}
|
||||||
|
\fi
|
||||||
|
% header
|
||||||
|
\indent{\bf \arabic{pointcount}\ - }
|
||||||
|
}
|
||||||
|
|
||||||
|
%% subpoint
|
||||||
|
% counter
|
||||||
|
\newcounter{subpointcount}
|
||||||
|
\def\subpoint{
|
||||||
|
\stepcounter{subpointcount}
|
||||||
|
\setcounter{subsubpointcount}0
|
||||||
|
% hyperref anchor (only if the class is 'ian')
|
||||||
|
\ifdefined\ifianclass
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\arabic{pointcount}-\arabic{subpointcount}}
|
||||||
|
\fi
|
||||||
|
% header
|
||||||
|
\indent\hskip.5cm{\bf \arabic{pointcount}-\arabic{subpointcount}\ - }
|
||||||
|
}
|
||||||
|
|
||||||
|
%% subsubpoint
|
||||||
|
% counter
|
||||||
|
\newcounter{subsubpointcount}
|
||||||
|
\def\subsubpoint{
|
||||||
|
\stepcounter{subsubpointcount}
|
||||||
|
% hyperref anchor (only if the class is 'ian')
|
||||||
|
\ifdefined\ifianclass
|
||||||
|
\hrefanchor
|
||||||
|
% define tag (for \label)
|
||||||
|
\xdef\tag{\arabic{pointcount}-\arabic{subpointcount}-\arabic{subsubpointcount}}
|
||||||
|
\fi
|
||||||
|
\indent\hskip1cm{\bf
|
||||||
|
\arabic{pointcount}-\arabic{subpointcount}-\arabic{subsubpointcount}\ - }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
%% reset point counters
|
||||||
|
\def\resetpointcounter{
|
||||||
|
\setcounter{pointcount}{0}
|
||||||
|
\setcounter{subpointcount}{0}
|
||||||
|
\setcounter{subsubpointcount}{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%% end
|
||||||
|
\point@defaultoptions
|
||||||
|
\endinput
|
Loading…
Reference in New Issue
Block a user