Initial commit
This commit is contained in:
commit
7f0a6766b9
1703
Jauslin_2023.tex
Normal file
1703
Jauslin_2023.tex
Normal file
File diff suppressed because it is too large
Load Diff
46
Makefile
Normal file
46
Makefile
Normal file
@ -0,0 +1,46 @@
|
||||
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
|
||||
|
||||
$(PROJECTNAME).aux: $(LIBS)
|
||||
pdflatex -file-line-error -draftmode $(PROJECTNAME).tex
|
||||
|
||||
|
||||
$(SYNCTEXS): $(LIBS)
|
||||
pdflatex -synctex=1 $(patsubst %.synctex.gz, %.tex, $@)
|
||||
|
||||
|
||||
libs: $(LIBS)
|
||||
|
||||
$(LIBS):
|
||||
ln -fs libs/$@ ./
|
||||
|
||||
bibliography/bibliography.tex: $(PROJECTNAME).aux
|
||||
BBlog -c bibliography/conf.BBlog -d $(BIBLIOGRAPHY) -b bibliography/bibliography.tex
|
||||
|
||||
|
||||
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-bibliography:
|
||||
rm -f bibliography/bibliography.tex
|
||||
|
||||
clean: clean-aux clean-tex clean-libs
|
33
README
Normal file
33
README
Normal file
@ -0,0 +1,33 @@
|
||||
This directory contains the source files to typeset the article, and generate
|
||||
the figures. 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
|
||||
doublestroke
|
||||
etoolbox
|
||||
hyperref
|
||||
latex
|
||||
marginnote
|
||||
GNU make
|
||||
|
||||
* Files:
|
||||
|
||||
Jauslin_2023.tex:
|
||||
main LaTeX file
|
||||
|
||||
libs:
|
||||
custom LaTeX class file
|
||||
|
93
bibliography/bibliography.tex
Normal file
93
bibliography/bibliography.tex
Normal file
@ -0,0 +1,93 @@
|
||||
\bibitem[BCS21]{BCS21}G. Basti, S. Cenatiempo, B. Schlein - {\it A new second-order upper bound for the ground state energy of dilute Bose gases}, Forum of Mathematics, Sigma, volume\-~9, number e74, 2021,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1017/fms.2021.66}{10.1017/fms.2021.66}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2101.06222}{2101.06222}}.\par\medskip
|
||||
|
||||
\bibitem[BBe18]{BBe18}C. Boccato, C. Brennecke, S. Cenatiempo, B. Schlein - {\it Complete Bose–Einstein Condensation in the Gross–Pitaevskii Regime}, Communications in Mathematical Physics, volume\-~359, issue\-~3, pages\-~975-1026, 2018,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00220-017-3016-5}{10.1007/s00220-017-3016-5}}.\par\medskip
|
||||
|
||||
\bibitem[BBe19]{BBe19}C. Boccato, C. Brennecke, S. Cenatiempo, B. Schlein - {\it Bogoliubov theory in the Gross–Pitaevskii limit}, Acta Mathematica, volume\-~222, issue\-~2, pages\-~219-335, 2019,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.4310/ACTA.2019.v222.n2.a1}{10.4310/ACTA.2019.v222.n2.a1}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1801.01389}{1801.01389}}.\par\medskip
|
||||
|
||||
\bibitem[BBe20]{BBe20}C. Boccato, C. Brennecke, S. Cenatiempo, B. Schlein - {\it Optimal Rate for Bose-Einstein Condensation in the Gross-Pitaevskii Regime}, Communications in Mathematical Physics, volume\-~376, issue\-~2, pages\-~1311-1395, 2020,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00220-019-03555-9}{10.1007/s00220-019-03555-9}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1812.03086}{1812.03086}}.\par\medskip
|
||||
|
||||
\bibitem[Bo47]{Bo47}N. Bogolubov - {\it On the theory of superfluidity}, Journal of Physics (USSR), volume\-~11, number\-~1, pages\-~23-32 (translated from the Russian Izv.Akad.Nauk Ser.Fiz, volume\-~11, pages\-~77-90), 1947.\par\medskip
|
||||
|
||||
\bibitem[BSS22]{BSS22}C. Brennecke, B. Schlein, S. Schraven - {\it Bose-Einstein Condensation with Optimal Rate for Trapped Bosons in the Gross-Pitaevskii Regime}, Mathematical Physics, Analysis and Geometry, volume\-~25, issue\-~2, pages\-~1-71, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s11040-022-09424-7}{10.1007/s11040-022-09424-7}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2102.11052}{2102.11052}}.\par\medskip
|
||||
|
||||
\bibitem[BSS22b]{BSS22b}C. Brennecke, B. Schlein, S. Schraven - {\it Bogoliubov Theory for Trapped Bosons in the Gross-Pitaevskii Regime}, Annales Henri Poincaré, volume\-~23, issue\-~5, pages\-~1583-1658, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00023-021-01151-z}{10.1007/s00023-021-01151-z}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2108.11129}{2108.11129}}.\par\medskip
|
||||
|
||||
\bibitem[CHe21]{CHe21}E.A. Carlen, M. Holzmann, I. Jauslin, E.H. Lieb - {\it Simplified approach to the repulsive Bose gas from low to high densities and its numerical accuracy}, Physical Review A, volume\-~103, issue\-~5, number\-~053309, 2021,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevA.103.053309}{10.1103/PhysRevA.103.053309}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2011.10869}{2011.10869}}.\par\medskip
|
||||
|
||||
\bibitem[CJL20]{CJL20}E.A. Carlen, I. Jauslin, E.H. Lieb - {\it Analysis of a simple equation for the ground state energy of the Bose gas}, Pure and Applied Analysis, volume\-~2, issue\-~3, pages\-~659-684, 2020,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.2140/paa.2020.2.659}{10.2140/paa.2020.2.659}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1912.04987}{1912.04987}}.\par\medskip
|
||||
|
||||
\bibitem[CJL21]{CJL21}E.A. Carlen, I. Jauslin, E.H. Lieb - {\it Analysis of a Simple Equation for the Ground State of the Bose Gas II: Monotonicity, Convexity, and Condensate Fraction}, SIAM Journal on Mathematical Analysis, volume\-~53, number\-~5, pages\-~5322-5360, 2021,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1137/20M1376820}{10.1137/20M1376820}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2010.13882}{2010.13882}}.\par\medskip
|
||||
|
||||
\bibitem[DS20]{DS20}A. Deuchert, R. Seiringer - {\it Gross-Pitaevskii Limit of a Homogeneous Bose Gas at Positive Temperature}, Archive for Rational Mechanics and Analysis, volume\-~236, issue\-~3, pages\-~1217-1271, 2020,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00205-020-01489-4}{10.1007/s00205-020-01489-4}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1901.11363}{1901.11363}}.\par\medskip
|
||||
|
||||
\bibitem[DSY19]{DSY19}A. Deuchert, R. Seiringer, J. Yngvason - {\it Bose-Einstein Condensation in a Dilute, Trapped Gas at Positive Temperature}, Communications in Mathematical Physics, volume\-~368, issue\-~2, pages\-~723-776, 2019,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00220-018-3239-0}{10.1007/s00220-018-3239-0}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1803.05180}{1803.05180}}.\par\medskip
|
||||
|
||||
\bibitem[Dy57]{Dy57}F.J. Dyson - {\it Ground-State Energy of a Hard-Sphere Gas}, Physical Review, volume\-~106, issue\-~1, pages\-~20-26, 1957,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRev.106.20}{10.1103/PhysRev.106.20}}.\par\medskip
|
||||
|
||||
\bibitem[FS20]{FS20}S. Fournais, J.P. Solovej - {\it The energy of dilute Bose gases}, Annals of Mathematics, volume\-~192, issue\-~3, pages\-~893-976, 2020,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.4007/annals.2020.192.3.5}{10.4007/annals.2020.192.3.5}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1904.06164}{1904.06164}}.\par\medskip
|
||||
|
||||
\bibitem[FS22]{FS22}S. Fournais, J.P. Solovej - {\it The energy of dilute Bose gases II: the general case}, Inventiones mathematicae, volume , issue , pages\-~1-132, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s00222-022-01175-0}{10.1007/s00222-022-01175-0}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2108.12022}{2108.12022}}.\par\medskip
|
||||
|
||||
\bibitem[Gr61]{Gr61}E.P. Gross - {\it Structure of a quantized vortex in boson systems}, Il Nuovo Cimento (1955-1965), volume\-~20, issue\-~3, pages\-~454-477, 1961,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/BF02731494}{10.1007/BF02731494}}.\par\medskip
|
||||
|
||||
\bibitem[HST22]{HST22}C.\-~Hainzl, B.\-~Schlein, A.\-~Triay - {\it Bogoliubov theory in the Gross-Pitaevskii limit}, arXiv preprint, 2022\par\penalty10000
|
||||
arxiv:{\tt\color{blue}\href{https://arxiv.org/abs/2203.03440}{2203.03440}}.\par\medskip
|
||||
|
||||
\bibitem[Ja22]{Ja22}I. Jauslin - {\it Review of a Simplified Approach to study the Bose gas at all densities}, The Physics and Mathematics of Elliott Lieb, The\-~90th Anniversary Volume I, chapter\-~25, pages\-~609-635, ed. Rupert L. Frank, Ari Laptev, Mathieu Lewin, Robert Seiringer, EMS Press, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.4171/90-1/25}{10.4171/90-1/25}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2202.07637}{2202.07637}}.\par\medskip
|
||||
|
||||
\bibitem[LHY57]{LHY57}T.D. Lee, K. Huang, C.N. Yang - {\it Eigenvalues and Eigenfunctions of a Bose System of Hard Spheres and Its Low-Temperature Properties}, Physical Review, volume\-~106, issue\-~6, pages\-~1135-1145, 1957,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRev.106.1135}{10.1103/PhysRev.106.1135}}.\par\medskip
|
||||
|
||||
\bibitem[Li63]{Li63}E.H. Lieb - {\it Simplified Approach to the Ground-State Energy of an Imperfect Bose Gas}, Physical Review, volume\-~130, issue\-~6, pages\-~2518-2528, 1963,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRev.130.2518}{10.1103/PhysRev.130.2518}}.\par\medskip
|
||||
|
||||
\bibitem[LL64]{LL64}E.H. Lieb, W. Liniger - {\it Simplified Approach to the Ground-State Energy of an Imperfect Bose Gas. III. Application to the One-Dimensional Model}, Physical Review, volume\-~134, issue\-~2A, pages A312-A315, 1964,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRev.134.A312}{10.1103/PhysRev.134.A312}}.\par\medskip
|
||||
|
||||
\bibitem[LS64]{LS64}E.H. Lieb, A.Y. Sakakura - {\it Simplified Approach to the Ground-State Energy of an Imperfect Bose Gas. II. Charged Bose Gas at High Density}, Physical Review, volume\-~133, issue\-~4A, pages A899-A906, 1964,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRev.133.A899}{10.1103/PhysRev.133.A899}}.\par\medskip
|
||||
|
||||
\bibitem[LS02]{LS02}E.H. Lieb, R. Seiringer - {\it Proof of Bose-Einstein Condensation for Dilute Trapped Gases}, Physical Review Letters, volume\-~88, issue\-~17, number\-~170409, 2002,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevLett.88.170409}{10.1103/PhysRevLett.88.170409}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/math-ph/0112032}{math-ph/0112032}}.\par\medskip
|
||||
|
||||
\bibitem[LSe05]{LSe05}E.H. Lieb, R. Seiringer, J.P. Solovej, J. Yngvason - {\it The Mathematics of the Bose Gas and its Condensation}, Oberwolfach Seminars, volume\-~34, Birkha\"user, 2005, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/cond-mat/0610117}{cond-mat/0610117}}.\par\medskip
|
||||
|
||||
\bibitem[LSY00]{LSY00}E.H. Lieb, R. Seiringer, J. Yngvason - {\it Bosons in a trap: A rigorous derivation of the Gross-Pitaevskii energy functional}, Physical Review A, volume\-~61, issue\-~4, number\-~043602, 2000,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevA.61.043602}{10.1103/PhysRevA.61.043602}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/math-ph/9908027}{math-ph/9908027}}.\par\medskip
|
||||
|
||||
\bibitem[LY98]{LY98}E.H. Lieb, J. Yngvason - {\it Ground State Energy of the Low Density Bose Gas}, Physical Review Letters, volume\-~80, issue\-~12, pages\-~2504-2507, 1998,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1103/PhysRevLett.80.2504}{10.1103/PhysRevLett.80.2504}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/cond-mat/9712138}{cond-mat/9712138}}.\par\medskip
|
||||
|
||||
\bibitem[NNe22]{NNe22}P.T. Nam, M. Napi\'orkowski, J. Ricaud, A. Triay - {\it Optimal rate of condensation for trapped bosons in the Gross–Pitaevskii regime}, Analysis and PDE, volume\-~15, issue\-~6, pages\-~1585-1616, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.2140/apde.2022.15.1585}{10.2140/apde.2022.15.1585}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2001.04364}{2001.04364}}.\par\medskip
|
||||
|
||||
\bibitem[NRS16]{NRS16}P.T. Nam, N. Rougerie, R. Seiringer - {\it Ground states of large bosonic systems : the Gross–Pitaevskii limit revisited}, Analysis and PDE, volume\-~9, issue\-~2, pages\-~459-485, 2016,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.2140/apde.2016.9.459}{10.2140/apde.2016.9.459}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/1503.07061}{1503.07061}}.\par\medskip
|
||||
|
||||
\bibitem[NT21]{NT21}P.T.\-~Nam, A.\-~Triay - {\it Bogoliubov excitation spectrum of trapped Bose gases in the Gross-Pitaevskii regime}, arXiv preprint, 2021\par\penalty10000
|
||||
arxiv:{\tt\color{blue}\href{https://arxiv.org/abs/2106.11949}{2106.11949}}.\par\medskip
|
||||
|
||||
\bibitem[Pi61]{Pi61}L.P. Pitaevskii - {\it Vortex lines in an imperfect Bose gas}, Soviet Physics JETP, volume\-~13, number\-~2, pages\-~451-454, 1961.\par\medskip
|
||||
|
||||
\bibitem[Sc22]{Sc22}B. Schlein - {\it Bose gases in the Gross-Pitaevskii limit: A survey of some rigorous results}, The Physics and Mathematics of Elliott Lieb, The\-~90th anniversary volume II, eds R.L. Frank, A. Laptev, M. Lewin, R. Seiringer, pages\-~277-305, 2022,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.4171/90-2/40}{10.4171/90-2/40}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/2203.10855}{2203.10855}}.\par\medskip
|
||||
|
||||
\bibitem[YY09]{YY09}H. Yau, J. Yin - {\it The Second Order Upper Bound for the Ground Energy of a Bose Gas}, Journal of Statistical Physics, volume\-~136, issue\-~3, pages\-~453-503, 2009,\par\penalty10000
|
||||
doi:{\tt\color{blue}\href{http://dx.doi.org/10.1007/s10955-009-9792-3}{10.1007/s10955-009-9792-3}}, arxiv:{\tt\color{blue}\href{http://arxiv.org/abs/0903.5347}{0903.5347}}.\par\medskip
|
||||
|
667
libs/ian.cls
Normal file
667
libs/ian.cls
Normal file
@ -0,0 +1,667 @@
|
||||
%%
|
||||
%% 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
|
||||
\ianclasstrue
|
||||
|
||||
%% options
|
||||
% no section numbering in equations
|
||||
\DeclareOption{section_in_eq}{\sectionsineqtrue}
|
||||
\DeclareOption{section_in_fig}{\sectionsinfigtrue}
|
||||
\DeclareOption{section_in_all}{\sectionsineqtrue\sectionsinfigtrue}
|
||||
\DeclareOption{subsection_in_eq}{\subsectionsineqtrue}
|
||||
\DeclareOption{subsection_in_fig}{\subsectionsinfigtrue}
|
||||
\DeclareOption{subsection_in_all}{\subsectionsineqtrue\subsectionsinfigtrue}
|
||||
\DeclareOption{no_section_in_eq}{\sectionsineqfalse}
|
||||
\DeclareOption{no_section_in_fig}{\sectionsinfigfalse}
|
||||
\DeclareOption{no_section_in_all}{\sectionsineqfalse\sectionsinfigfalse}
|
||||
\DeclareOption{no_subsection_in_eq}{\subsectionsineqfalse}
|
||||
\DeclareOption{no_subsection_in_fig}{\subsectionsinfigfalse}
|
||||
\DeclareOption{no_subsection_in_all}{\subsectionsineqfalse\subsectionsinfigfalse}
|
||||
|
||||
\def\ian@defaultoptions{
|
||||
\ExecuteOptions{section_in_all, no_subsection_in_all}
|
||||
\ProcessOptions
|
||||
|
||||
%% required packages
|
||||
\RequirePackage{color}
|
||||
\RequirePackage{marginnote}
|
||||
\RequirePackage{amssymb}
|
||||
\PassOptionsToPackage{hidelinks}{hyperref}
|
||||
\RequirePackage{hyperref}
|
||||
|
||||
\pagestyle{plain}
|
||||
}
|
||||
|
||||
%% 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}
|
||||
% define possible prefix to equation
|
||||
\def\eqprefix{}
|
||||
% booleans (write section or subsection in equation number)
|
||||
\newif\ifsectionsineq
|
||||
\newif\ifsubsectionsineq
|
||||
\def\seqcount{
|
||||
\stepcounter{seqcount}
|
||||
% the output
|
||||
\edef\seqformat{\eqprefix\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%
|
||||
\par\penalty10000\hfil fig \figformat: \parbox[t]{\figwidth}{\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%
|
||||
\par\penalty10000\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
|
||||
% @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\@cite@separator\@empty%
|
||||
% format
|
||||
\@cite{%
|
||||
% loop over ',' separated list
|
||||
\@for\@cite@:=#2\do{%
|
||||
% text to add at each iteration of the loop (separator between citations)
|
||||
\@cite@separator\def\@cite@separator{,\ }%
|
||||
% add entry to citelist
|
||||
\@writecitation{\@cite@}%
|
||||
\ref{cite\@cite@}%
|
||||
}%
|
||||
}%
|
||||
% 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\smallskip\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 \thetocsectioncount.\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 \thetocsectioncount.\thetocsubsectioncount.\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
|
19
libs/largearray.sty
Normal file
19
libs/largearray.sty
Normal file
@ -0,0 +1,19 @@
|
||||
%%
|
||||
%% largearray package:
|
||||
%% Array spanning the entire line
|
||||
%%
|
||||
|
||||
%% TeX format
|
||||
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
|
||||
|
||||
%% package name
|
||||
\ProvidesPackage{largearray}[2016/11/10]
|
||||
|
||||
\RequirePackage{array}
|
||||
|
||||
%% array spanning the entire line
|
||||
\newlength\largearray@width
|
||||
\setlength\largearray@width\textwidth
|
||||
\addtolength\largearray@width{-10pt}
|
||||
\def\largearray{\begin{array}{@{}>{\displaystyle}l@{}}\hphantom{\hspace{\largearray@width}}\\[-.5cm]}
|
||||
\def\endlargearray{\end{array}}
|
114
libs/point.sty
Normal file
114
libs/point.sty
Normal file
@ -0,0 +1,114 @@
|
||||
%%
|
||||
%% 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\ifresetatsubsubsection
|
||||
\DeclareOption{reset_at_subsubsection}{\resetatsubsubsectiontrue}
|
||||
\DeclareOption{no_reset_at_subsubsection}{\resetatsubsubsectionfalse}
|
||||
\newif\ifresetattheo
|
||||
\DeclareOption{reset_at_theo}{\resetattheotrue}
|
||||
\DeclareOption{no_reset_at_theo}{\resetattheofalse}
|
||||
|
||||
\def\point@defaultoptions{
|
||||
\ExecuteOptions{reset_at_section, reset_at_subsection, reset_at_subsubsection, 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 subsubsection
|
||||
\ifresetatsubsubsection
|
||||
\let\point@oldsubsubsection\subsubsection
|
||||
\gdef\subsubsection{\resetpointcounter\point@oldsubsubsection}
|
||||
\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{\thepointcount}
|
||||
\fi
|
||||
% header
|
||||
\indent{\bf \thepointcount\ - }
|
||||
}
|
||||
|
||||
%% 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{\thepointcount-\thesubpointcount}
|
||||
\fi
|
||||
% header
|
||||
\indent\hskip.5cm{\bf \thepointcount-\thesubpointcount\ - }
|
||||
}
|
||||
|
||||
%% 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{\thepointcount-\thesubpointcount-\thesubsubpointcount}
|
||||
\fi
|
||||
\indent\hskip1cm{\bf \thepointcount-\thesubpointcount-\thesubsubpointcount\ - }
|
||||
}
|
||||
|
||||
|
||||
%% 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