pyeasyphd 0.3.2__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyeasyphd might be problematic. Click here for more details.

Files changed (50) hide show
  1. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/PKG-INFO +1 -1
  2. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Beamer_Header.tex +1 -2
  3. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Style.tex +16 -25
  4. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/math.tex +9 -4
  5. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/math_commands.tex +9 -5
  6. pyeasyphd-0.3.4/pyeasyphd/data/Templates/TEX/nextaimathmacros.sty +681 -0
  7. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/main/__init__.py +0 -6
  8. pyeasyphd-0.3.4/pyeasyphd/scripts/__init__.py +12 -0
  9. pyeasyphd-0.3.4/pyeasyphd/scripts/run_search_keywords.py +159 -0
  10. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyproject.toml +1 -1
  11. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/LICENSE +0 -0
  12. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/README.md +0 -0
  13. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/.python-version +0 -0
  14. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/Main.sublime-menu +0 -0
  15. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/__init__.py +0 -0
  16. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/CSL/apa-no-ampersand.csl +0 -0
  17. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/CSL/apa.csl +0 -0
  18. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/CSL/ieee.csl +0 -0
  19. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Article.tex +0 -0
  20. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Article_Header.tex +0 -0
  21. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Article_Tail.tex +0 -0
  22. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/Beamer_Tail.tex +0 -0
  23. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/TEVC_Header.tex +0 -0
  24. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/TEVC_Tail.tex +0 -0
  25. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/eisvogel.beamer +0 -0
  26. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/eisvogel.latex +0 -0
  27. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/data/Templates/TEX/eisvogel.tex +0 -0
  28. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/main/basic_input.py +0 -0
  29. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/main/pandoc_md_to.py +0 -0
  30. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/main/python_run_md.py +0 -0
  31. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/main/python_run_tex.py +0 -0
  32. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/pyeasyphd.py +0 -0
  33. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/pyeasyphd.sublime-settings +0 -0
  34. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/pyeasyphd.sublime-syntax +0 -0
  35. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/scripts/run_article_md.py +0 -0
  36. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/scripts/run_article_tex.py +0 -0
  37. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/scripts/run_beamer_tex.py +0 -0
  38. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/__init__.py +0 -0
  39. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/generate/generate_from_bibs.py +0 -0
  40. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/generate/generate_html.py +0 -0
  41. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/generate/generate_library.py +0 -0
  42. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/generate/generate_links.py +0 -0
  43. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/py_run_bib_md_tex.py +0 -0
  44. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/data.py +0 -0
  45. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/search_base.py +0 -0
  46. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/search_core.py +0 -0
  47. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/search_keywords.py +0 -0
  48. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/search_writers.py +0 -0
  49. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/tools/search/utils.py +0 -0
  50. {pyeasyphd-0.3.2 → pyeasyphd-0.3.4}/pyeasyphd/utils/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyeasyphd
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: pyeasyphd
5
5
  License: GPL-3.0-or-later
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  % \RequirePackage[l2tabu, orthodox]{nag} % https://ctan.org/pkg/nag: Detecting and warning about obsolete LATEX commands
2
2
  \RequirePackage{fix-cm} % https://ctan.org/pkg/fix-cm?lang=en: Permit Computer Modern fonts at arbitrary sizes
3
- \documentclass[10.5pt]{beamer}
3
+ \documentclass[11pt]{beamer}
4
4
 
5
5
  %------------------------------------------------------------------------------
6
6
  % https://www.overleaf.com/learn/latex/Beamer
@@ -51,7 +51,6 @@
51
51
  \setbeamertemplate{itemize items}[triangle] % default triangle, cicrle, square, ball
52
52
  \setbeamertemplate{enumerate items}[circle] % default triangle, circle, square, ball
53
53
  \setbeamertemplate{theorems}[numbered]
54
- \setbeamertemplate{caption}[numbered]
55
54
  \setbeamertemplate{blocks}[rounded][shadow=true]
56
55
  \setbeamercolor{block title}{fg=black,bg=cyan!45!white}
57
56
  \setbeamercolor{block body}{fg=black,bg=cyan!10!white}
@@ -1,15 +1,20 @@
1
1
  %------------------------------------------------------------------------------
2
2
  %% https://ctan.org/pkg/
3
3
  %% Geometry
4
- \usepackage{geometry}
5
- % \geometry{a4paper,scale=0.9}
6
- \usepackage{fancyhdr} % Extensive control of page headers and footers
4
+ \makeatletter
5
+ \@ifclassloaded{beamer}{%
6
+ }{%
7
+ \usepackage{geometry}
8
+ \usepackage{fancyhdr} % Extensive control of page headers and footers
9
+ }
10
+ \makeatother
7
11
 
8
12
  %% Font
9
13
  \ifx\cn\undefined
10
14
  \usepackage[utf8]{inputenc} % Required for inputting international characters, allow utf-8 input
11
15
  \usepackage[T1]{fontenc} % Output font encoding for international characters, use 8-bit T1 fonts
12
16
  % \usepackage[default]{sourcesanspro} % https://fonts.adobe.com/fonts/source-sans#fonts-section
17
+ \usepackage{lmodern} % The Latin Modern family is a recent collection of fonts.
13
18
  \else
14
19
  \usepackage[UTF8]{ctex}
15
20
  \newcommand{\chuhao}{\fontsize{42pt}{1.25\baselineskip}\selectfont} %初号
@@ -25,8 +30,6 @@
25
30
  \newcommand{\liuhao}{\fontsize{7.875pt}{1.25\baselineskip}\selectfont} %六号
26
31
  \newcommand{\qihao}{\fontsize{5.25pt}{1.25\baselineskip}\selectfont} %七号
27
32
  \fi
28
- \usepackage{microtype} % Subliminal refinements towards typographical perfection
29
- \usepackage{lmodern} % The Latin Modern family is a recent collection of fonts.
30
33
 
31
34
  %% Algorithm
32
35
  % https://www.overleaf.com/learn/latex/Algorithms
@@ -79,19 +82,19 @@
79
82
 
80
83
  %% Math
81
84
  \usepackage{bm} % https://www.ctan.org/pkg/bm
82
- \usepackage{amsmath} % https://www.ctan.org/pkg/amsmath
83
- \usepackage{amsfonts} % https://www.ctan.org/pkg/amsfonts
85
+ % \usepackage{amsmath} % https://www.ctan.org/pkg/amsmath
86
+ % loads amsmath automatically
87
+ \usepackage{mathtools} % https://www.ctan.org/pkg/mathtools. Based on amsmath.
88
+ % \usepackage{amsfonts} % https://www.ctan.org/pkg/amsfonts
89
+ % loads amsfonts automatically
84
90
  \usepackage{amssymb} % https://latexstudio.net/hulatex/package/maths-1.htm. Contained in amsfonts.
85
91
  \usepackage{amsthm} % https://www.ctan.org/pkg/amsthm. Facilitates the kind of theorem setup typically needed in AMS Publications.
86
- \usepackage{mathrsfs}
92
+ \usepackage{mathrsfs} % \mathscr
87
93
  \usepackage{csquotes} % Provides advanced facilities for inline and display quotations.
88
- \usepackage{siunitx} % Ensure that the combined mathematical meaning of the value plus unit combination is clear.
89
- \usepackage{mathtools} % https://www.ctan.org/pkg/mathtools. Based on amsmath.
90
94
  \usepackage{nicefrac} % Compact symbols for 1/2, etc.
91
95
 
92
96
  %% Color
93
97
  % cyan, magenta, darkgray, lightgray, brown, orange, lime, purple, teal, violet and pink
94
- \usepackage{color}
95
98
  \usepackage{xcolor} % The package allows rows and columns to be coloured, and even individual cells.
96
99
  \usepackage{colortbl} % Fill color
97
100
 
@@ -101,14 +104,8 @@
101
104
  \usepackage{float} % Improves the interface for defining floating objects such as figures and tables.
102
105
 
103
106
  %% Figure
104
- \usepackage{graphicx}
105
- \usepackage{graphics}
106
- \graphicspath{{./}
107
- {./figure/}{./figures/}{./image/}{./images/}{./graphics/}{./graphic/}{./pictures/}{./picture/}
108
- {./Figure/}{./Figures/}{./Image/}{./Images/}{./Graphics/}{./Graphic/}{./Pictures/}{./Picture/}
109
- {./fig}{./figs}{./img}{./imgs}
110
- {./Fig}{./Figs}{./Img}{./Imgs}
111
- }
107
+ \usepackage{graphicx} % no need for \usepackage{graphics}
108
+ \graphicspath{{./}{./figures/}{./images/}{./figs}{./imgs}}
112
109
  \usepackage{pgf} % PGF is a macro package for creating graphics.
113
110
  \usepackage{wrapfig}
114
111
  \usepackage{standalone}
@@ -239,11 +236,5 @@
239
236
  \usepackage{ifthen} % Conditional commands in LATEX documents
240
237
  \usepackage{pdfpages} % Simplifies the inclusion of external multi-page PDF documents in LATEX documents.
241
238
  \usepackage{verbatim} % (that skips everything between \begin{comment} and \end{comment})
242
- \usepackage{pstricks} % PSTricks offers an extensive collection of macros for generating PostScript
243
239
  \usepackage[english]{babel} % Manages culturally-determined typographical (and other) rules for a wide range of languages.
244
- \usepackage{makeidx} % Standard package for creating indexes, and Provides two new commands, \see and \printindex.
245
- \usepackage{rotating} % Rotation tools, including rotated full-page floats
246
- \usepackage{bbm} % Provide LaTex support for Blackboard varients of Computer Modern fonts.
247
- \usepackage{soul} % Find hypen automatically
248
- \usepackage{url} % Allow linebreaks at certain characters or combinations of characters. (simple URL typesetting)
249
240
  \usepackage{enumitem}
@@ -1,6 +1,6 @@
1
1
  \section{Math Symbols}
2
2
 
3
- \begin{table}[h!]
3
+ \begin{table}[!htbp]
4
4
  \caption{Math Symbols}
5
5
  \resizebox{\textwidth}{!}
6
6
  {
@@ -86,10 +86,10 @@ $\displaystyle \rmA$ & A matrix-valued random variable \\
86
86
  \egroup
87
87
  \vspace{0.5cm}
88
88
 
89
+ \clearpage
89
90
  \centering{\textbf {Sets and Graphs}}
90
91
  \bgroup
91
92
  \def\arraystretch{1.5}
92
-
93
93
  \begin{tabular}{p{1.5in}p{3.5in}}
94
94
  $\displaystyle \sA$ & A set \\
95
95
  $\displaystyle \sR$ & The set of real numbers \\
@@ -103,6 +103,7 @@ $\displaystyle \parents_\gG(\ervx_i)$ & The parents of $\ervx_i$ in $\gG$
103
103
  \end{tabular}
104
104
  \vspace{0.5cm}
105
105
 
106
+ \clearpage
106
107
  \centering{\textbf {Indexing}}
107
108
  \bgroup
108
109
  \def\arraystretch{1.5}
@@ -119,6 +120,7 @@ $\displaystyle \erva_i$ & Element $i$ of the random vector $\rva$ \\
119
120
  \egroup
120
121
  \vspace{0.5cm}
121
122
 
123
+ \clearpage
122
124
  \centering{\textbf {Calculus}}
123
125
  \bgroup
124
126
  \def\arraystretch{1.5}
@@ -139,6 +141,7 @@ $\displaystyle \int_\sS f(\vx) d\vx$ & Definite integral with respect to $\vx$ o
139
141
  \egroup
140
142
  \vspace{0.5cm}
141
143
 
144
+ \clearpage
142
145
  \centering{\textbf {Probability and Information Theory}}
143
146
  \bgroup
144
147
  \def\arraystretch{1.5}
@@ -156,14 +159,15 @@ $\displaystyle \mathcal{N} ( \vx ; \vmu , \mSigma)$ & Gaussian distribution % ov
156
159
  \egroup
157
160
  \vspace{0.5cm}
158
161
 
162
+ \clearpage
159
163
  \centering{\textbf {Functions}}
160
164
  \bgroup
161
165
  \def\arraystretch{1.5}
162
166
  \begin{tabular}{p{1.5in}p{3.5in}}
163
167
  $\displaystyle f: \sA \rightarrow \sB$ & The function $f$ with domain $\sA$ and range $\sB$ \\
164
168
  $\displaystyle f \circ g $ & Composition of the functions $f$ and $g$ \\
165
- $\displaystyle f(\vx ; \vtheta) $ & A function of $\vx$ parametrized by $\vtheta$.
166
- (Sometimes we write $f(\vx)$ and omit the argument $\vtheta$ to lighten notation) \\
169
+ $\displaystyle f(\vx ; \vtheta) $ & A function of $\vx$ parametrized by $\vtheta$.
170
+ (Sometimes we write $f(\vx)$ and omit the argument $\vtheta$ to lighten notation) \\
167
171
  $\displaystyle \log x$ & Natural logarithm of $x$ \\
168
172
  $\displaystyle \sigma(x)$ & Logistic sigmoid, $\displaystyle \frac{1} {1 + \exp(-x)}$ \\
169
173
  $\displaystyle \zeta(x)$ & Softplus, $\log(1 + \exp(x))$ \\
@@ -175,6 +179,7 @@ $\displaystyle \bm{1}_\mathrm{condition}$ & is 1 if the condition is true, 0 oth
175
179
  \egroup
176
180
  \vspace{0.5cm}
177
181
 
182
+ \clearpage
178
183
  \centering{\textbf {Machine Learning}}
179
184
  \bgroup
180
185
  \def\arraystretch{1.5}
@@ -1,3 +1,11 @@
1
+ %%%-------------------------------------------------------------------------%%%
2
+ % Required packages
3
+ \usepackage{amsmath}
4
+
5
+ % Set up tensor font
6
+ \DeclareMathAlphabet{\mathsfit}{\encodingdefault}{\sfdefault}{m}{sl}
7
+ \SetMathAlphabet{\mathsfit}{bold}{\encodingdefault}{\sfdefault}{bx}{n}
8
+
1
9
  %%%-------------------------------------------------------------------------%%%
2
10
  %% Remark
3
11
  % \em is useful for long texts (\emph e.g. doesn't allow the argument to contain a \par). The commands differ (like the \textit/\itshape) in their handling of the italic correction
@@ -8,8 +16,6 @@
8
16
  %%%-------------------------------------------------------------------------%%%
9
17
  %% Optional math commands from https://github.com/goodfeli/dlbook_notation/blob/master/math_commands.tex
10
18
 
11
- \usepackage{amsmath}
12
-
13
19
  %% Math Symbols (def)
14
20
  % Vectors % Elements of vectors % Matrix % Entries of a matrix
15
21
  \newcommand{\va}{{\bm{a}}} \newcommand{\eva}{{a}} \newcommand{\mA}{{\bm{A}}} \newcommand{\emA}{{A}}
@@ -57,7 +63,7 @@
57
63
  \newcommand{\rn}{{\textnormal{n}}}
58
64
  \newcommand{\ro}{{\textnormal{o}}}
59
65
  \newcommand{\rp}{{\textnormal{p}}}
60
- % rm is already a command, just don't name any random variables q
66
+ % rq is already a command, just don't name any random variables q
61
67
  \newcommand{\rqq}{{\textnormal{q}}}
62
68
  \newcommand{\rr}{{\textnormal{r}}}
63
69
  \newcommand{\rs}{{\textnormal{s}}}
@@ -127,8 +133,6 @@
127
133
  \newcommand{\sZ}{{\mathbb{Z}}} \newcommand{\gZ}{{\mathcal{Z}}}
128
134
 
129
135
  % Tensor
130
- \DeclareMathAlphabet{\mathsfit}{\encodingdefault}{\sfdefault}{m}{sl}
131
- \SetMathAlphabet{\mathsfit}{bold}{\encodingdefault}{\sfdefault}{bx}{n}
132
136
  \newcommand{\tens}[1]{\bm{\mathsfit{#1}}} % Tensor
133
137
  \newcommand{\etens}[1]{\mathsfit{#1}} % Same font as tensor, without \bm wrapper
134
138
  % Tensor % Entries of a tensor
@@ -0,0 +1,681 @@
1
+ % nextaimathmacros.sty
2
+ \NeedsTeXFormat{LaTeX2e}
3
+ \ProvidesPackage{nextaimathmacros}[2025/10/20 Custom Math Symbols and Macros]
4
+
5
+ %%%-------------------------------------------------------------------------%%%
6
+ % Required packages
7
+ \RequirePackage{amsmath}
8
+
9
+ % Set up tensor font
10
+ \DeclareMathAlphabet{\mathsfit}{\encodingdefault}{\sfdefault}{m}{sl}
11
+ \SetMathAlphabet{\mathsfit}{bold}{\encodingdefault}{\sfdefault}{bx}{n}
12
+
13
+ %%%-------------------------------------------------------------------------%%%
14
+ %% Remark
15
+ % \em is useful for long texts (\emph e.g. doesn't allow the argument to contain a \par). The commands differ (like the \textit/\itshape) in their handling of the italic correction
16
+ % \def is a TeX primitive, \newcommand is a LaTeX overlay on top of \def. The most obvious benefits of \newcommand over \def are:
17
+ % \newcommand checks whether or not the command already exists
18
+ % \newcommand allows you to define an optional argument
19
+
20
+ %%%-------------------------------------------------------------------------%%%
21
+ %% Optional math commands from https://github.com/goodfeli/dlbook_notation/blob/master/math_commands.tex
22
+
23
+ %% Math Symbols (def)
24
+ % Vectors % Elements of vectors % Matrix % Entries of a matrix
25
+ \newcommand{\va}{{\bm{a}}} \newcommand{\eva}{{a}} \newcommand{\mA}{{\bm{A}}} \newcommand{\emA}{{A}}
26
+ \newcommand{\vb}{{\bm{b}}} \newcommand{\evb}{{b}} \newcommand{\mB}{{\bm{B}}} \newcommand{\emB}{{B}}
27
+ \newcommand{\vc}{{\bm{c}}} \newcommand{\evc}{{c}} \newcommand{\mC}{{\bm{C}}} \newcommand{\emC}{{C}}
28
+ \newcommand{\vd}{{\bm{d}}} \newcommand{\evd}{{d}} \newcommand{\mD}{{\bm{D}}} \newcommand{\emD}{{D}}
29
+ \newcommand{\ve}{{\bm{e}}} \newcommand{\eve}{{e}} \newcommand{\mE}{{\bm{E}}} \newcommand{\emE}{{E}}
30
+ \newcommand{\vf}{{\bm{f}}} \newcommand{\evf}{{f}} \newcommand{\mF}{{\bm{F}}} \newcommand{\emF}{{F}}
31
+ \newcommand{\vg}{{\bm{g}}} \newcommand{\evg}{{g}} \newcommand{\mG}{{\bm{G}}} \newcommand{\emG}{{G}}
32
+ \newcommand{\vh}{{\bm{h}}} \newcommand{\evh}{{h}} \newcommand{\mH}{{\bm{H}}} \newcommand{\emH}{{H}}
33
+ \newcommand{\vi}{{\bm{i}}} \newcommand{\evi}{{i}} \newcommand{\mI}{{\bm{I}}} \newcommand{\emI}{{I}}
34
+ \newcommand{\vj}{{\bm{j}}} \newcommand{\evj}{{j}} \newcommand{\mJ}{{\bm{J}}} \newcommand{\emJ}{{J}}
35
+ \newcommand{\vk}{{\bm{k}}} \newcommand{\evk}{{k}} \newcommand{\mK}{{\bm{K}}} \newcommand{\emK}{{K}}
36
+ \newcommand{\vl}{{\bm{l}}} \newcommand{\evl}{{l}} \newcommand{\mL}{{\bm{L}}} \newcommand{\emL}{{L}}
37
+ \newcommand{\vm}{{\bm{m}}} \newcommand{\evm}{{m}} \newcommand{\mM}{{\bm{M}}} \newcommand{\emM}{{M}}
38
+ \newcommand{\vn}{{\bm{n}}} \newcommand{\evn}{{n}} \newcommand{\mN}{{\bm{N}}} \newcommand{\emN}{{N}}
39
+ \newcommand{\vo}{{\bm{o}}} \newcommand{\evo}{{o}} \newcommand{\mO}{{\bm{O}}} \newcommand{\emO}{{O}}
40
+ \newcommand{\vp}{{\bm{p}}} \newcommand{\evp}{{p}} \newcommand{\mP}{{\bm{P}}} \newcommand{\emP}{{P}}
41
+ \newcommand{\vq}{{\bm{q}}} \newcommand{\evq}{{q}} \newcommand{\mQ}{{\bm{Q}}} \newcommand{\emQ}{{Q}}
42
+ \newcommand{\vr}{{\bm{r}}} \newcommand{\evr}{{r}} \newcommand{\mR}{{\bm{R}}} \newcommand{\emR}{{R}}
43
+ \newcommand{\vs}{{\bm{s}}} \newcommand{\evs}{{s}} \newcommand{\mS}{{\bm{S}}} \newcommand{\emS}{{S}}
44
+ \newcommand{\vt}{{\bm{t}}} \newcommand{\evt}{{t}} \newcommand{\mT}{{\bm{T}}} \newcommand{\emT}{{T}}
45
+ \newcommand{\vu}{{\bm{u}}} \newcommand{\evu}{{u}} \newcommand{\mU}{{\bm{U}}} \newcommand{\emU}{{U}}
46
+ \newcommand{\vv}{{\bm{v}}} \newcommand{\evv}{{v}} \newcommand{\mV}{{\bm{V}}} \newcommand{\emV}{{V}}
47
+ \newcommand{\vw}{{\bm{w}}} \newcommand{\evw}{{w}} \newcommand{\mW}{{\bm{W}}} \newcommand{\emW}{{W}}
48
+ \newcommand{\vx}{{\bm{x}}} \newcommand{\evx}{{x}} \newcommand{\mX}{{\bm{X}}} \newcommand{\emX}{{X}}
49
+ \newcommand{\vy}{{\bm{y}}} \newcommand{\evy}{{y}} \newcommand{\mY}{{\bm{Y}}} \newcommand{\emY}{{Y}}
50
+ \newcommand{\vz}{{\bm{z}}} \newcommand{\evz}{{z}} \newcommand{\mZ}{{\bm{Z}}} \newcommand{\emZ}{{Z}}
51
+
52
+ % Random variables
53
+ \newcommand{\ra}{{\textnormal{a}}}
54
+ \newcommand{\rb}{{\textnormal{b}}}
55
+ \newcommand{\rc}{{\textnormal{c}}}
56
+ \newcommand{\rd}{{\textnormal{d}}}
57
+ \newcommand{\re}{{\textnormal{e}}}
58
+ \newcommand{\rf}{{\textnormal{f}}}
59
+ \newcommand{\rg}{{\textnormal{g}}}
60
+ \newcommand{\rh}{{\textnormal{h}}}
61
+ \newcommand{\ri}{{\textnormal{i}}}
62
+ \newcommand{\rj}{{\textnormal{j}}}
63
+ \newcommand{\rk}{{\textnormal{k}}}
64
+ \newcommand{\rl}{{\textnormal{l}}}
65
+ % rm is already a command, just don't name any random variables m
66
+ \newcommand{\rmm}{{\textnormal{m}}}
67
+ \newcommand{\rn}{{\textnormal{n}}}
68
+ \newcommand{\ro}{{\textnormal{o}}}
69
+ \newcommand{\rp}{{\textnormal{p}}}
70
+ % rq is already a command, just don't name any random variables q
71
+ \newcommand{\rqq}{{\textnormal{q}}}
72
+ \newcommand{\rr}{{\textnormal{r}}}
73
+ \newcommand{\rs}{{\textnormal{s}}}
74
+ \newcommand{\rt}{{\textnormal{t}}}
75
+ \newcommand{\ru}{{\textnormal{u}}}
76
+ \newcommand{\rv}{{\textnormal{v}}}
77
+ \newcommand{\rw}{{\textnormal{w}}}
78
+ \newcommand{\rx}{{\textnormal{x}}}
79
+ \newcommand{\ry}{{\textnormal{y}}}
80
+ \newcommand{\rz}{{\textnormal{z}}}
81
+
82
+ % Random vectors % Elements of random vectors % Random matrices % Elements of random matrices
83
+ \newcommand{\rva}{{\mathbf{a}}} \newcommand{\erva}{{\textnormal{a}}} \newcommand{\rmA}{{\mathbf{A}}} \newcommand{\ermA}{{\textnormal{A}}}
84
+ \newcommand{\rvb}{{\mathbf{b}}} \newcommand{\ervb}{{\textnormal{b}}} \newcommand{\rmB}{{\mathbf{B}}} \newcommand{\ermB}{{\textnormal{B}}}
85
+ \newcommand{\rvc}{{\mathbf{c}}} \newcommand{\ervc}{{\textnormal{c}}} \newcommand{\rmC}{{\mathbf{C}}} \newcommand{\ermC}{{\textnormal{C}}}
86
+ \newcommand{\rvd}{{\mathbf{d}}} \newcommand{\ervd}{{\textnormal{d}}} \newcommand{\rmD}{{\mathbf{D}}} \newcommand{\ermD}{{\textnormal{D}}}
87
+ \newcommand{\rve}{{\mathbf{e}}} \newcommand{\erve}{{\textnormal{e}}} \newcommand{\rmE}{{\mathbf{E}}} \newcommand{\ermE}{{\textnormal{E}}}
88
+ \newcommand{\rvf}{{\mathbf{f}}} \newcommand{\ervf}{{\textnormal{f}}} \newcommand{\rmF}{{\mathbf{F}}} \newcommand{\ermF}{{\textnormal{F}}}
89
+ \newcommand{\rvg}{{\mathbf{g}}} \newcommand{\ervg}{{\textnormal{g}}} \newcommand{\rmG}{{\mathbf{G}}} \newcommand{\ermG}{{\textnormal{G}}}
90
+ \newcommand{\rvh}{{\mathbf{h}}} \newcommand{\ervh}{{\textnormal{h}}} \newcommand{\rmH}{{\mathbf{H}}} \newcommand{\ermH}{{\textnormal{H}}}
91
+ \newcommand{\rvi}{{\mathbf{i}}} \newcommand{\ervi}{{\textnormal{i}}} \newcommand{\rmI}{{\mathbf{I}}} \newcommand{\ermI}{{\textnormal{I}}}
92
+ \newcommand{\rvj}{{\mathbf{j}}} \newcommand{\ervj}{{\textnormal{j}}} \newcommand{\rmJ}{{\mathbf{J}}} \newcommand{\ermJ}{{\textnormal{J}}}
93
+ \newcommand{\rvk}{{\mathbf{k}}} \newcommand{\ervk}{{\textnormal{k}}} \newcommand{\rmK}{{\mathbf{K}}} \newcommand{\ermK}{{\textnormal{K}}}
94
+ \newcommand{\rvl}{{\mathbf{l}}} \newcommand{\ervl}{{\textnormal{l}}} \newcommand{\rmL}{{\mathbf{L}}} \newcommand{\ermL}{{\textnormal{L}}}
95
+ \newcommand{\rvm}{{\mathbf{m}}} \newcommand{\ervm}{{\textnormal{m}}} \newcommand{\rmM}{{\mathbf{M}}} \newcommand{\ermM}{{\textnormal{M}}}
96
+ \newcommand{\rvn}{{\mathbf{n}}} \newcommand{\ervn}{{\textnormal{n}}} \newcommand{\rmN}{{\mathbf{N}}} \newcommand{\ermN}{{\textnormal{N}}}
97
+ \newcommand{\rvo}{{\mathbf{o}}} \newcommand{\ervo}{{\textnormal{o}}} \newcommand{\rmO}{{\mathbf{O}}} \newcommand{\ermO}{{\textnormal{O}}}
98
+ \newcommand{\rvp}{{\mathbf{p}}} \newcommand{\ervp}{{\textnormal{p}}} \newcommand{\rmP}{{\mathbf{P}}} \newcommand{\ermP}{{\textnormal{P}}}
99
+ \newcommand{\rvq}{{\mathbf{q}}} \newcommand{\ervq}{{\textnormal{q}}} \newcommand{\rmQ}{{\mathbf{Q}}} \newcommand{\ermQ}{{\textnormal{Q}}}
100
+ \newcommand{\rvr}{{\mathbf{r}}} \newcommand{\ervr}{{\textnormal{r}}} \newcommand{\rmR}{{\mathbf{R}}} \newcommand{\ermR}{{\textnormal{R}}}
101
+ \newcommand{\rvs}{{\mathbf{s}}} \newcommand{\ervs}{{\textnormal{s}}} \newcommand{\rmS}{{\mathbf{S}}} \newcommand{\ermS}{{\textnormal{S}}}
102
+ \newcommand{\rvt}{{\mathbf{t}}} \newcommand{\ervt}{{\textnormal{t}}} \newcommand{\rmT}{{\mathbf{T}}} \newcommand{\ermT}{{\textnormal{T}}}
103
+ \newcommand{\rvu}{{\mathbf{u}}} \newcommand{\ervu}{{\textnormal{u}}} \newcommand{\rmU}{{\mathbf{U}}} \newcommand{\ermU}{{\textnormal{U}}}
104
+ \newcommand{\rvv}{{\mathbf{v}}} \newcommand{\ervv}{{\textnormal{v}}} \newcommand{\rmV}{{\mathbf{V}}} \newcommand{\ermV}{{\textnormal{V}}}
105
+ \newcommand{\rvw}{{\mathbf{w}}} \newcommand{\ervw}{{\textnormal{w}}} \newcommand{\rmW}{{\mathbf{W}}} \newcommand{\ermW}{{\textnormal{W}}}
106
+ \newcommand{\rvx}{{\mathbf{x}}} \newcommand{\ervx}{{\textnormal{x}}} \newcommand{\rmX}{{\mathbf{X}}} \newcommand{\ermX}{{\textnormal{X}}}
107
+ \newcommand{\rvy}{{\mathbf{y}}} \newcommand{\ervy}{{\textnormal{y}}} \newcommand{\rmY}{{\mathbf{Y}}} \newcommand{\ermY}{{\textnormal{Y}}}
108
+ \newcommand{\rvz}{{\mathbf{z}}} \newcommand{\ervz}{{\textnormal{z}}} \newcommand{\rmZ}{{\mathbf{Z}}} \newcommand{\ermZ}{{\textnormal{Z}}}
109
+
110
+ % Don't use a set called E, because this would be the same as our symbol for expectation.
111
+ % Set % Graph
112
+ \newcommand{\sA}{{\mathbb{A}}} \newcommand{\gA}{{\mathcal{A}}}
113
+ \newcommand{\sB}{{\mathbb{B}}} \newcommand{\gB}{{\mathcal{B}}}
114
+ \newcommand{\sC}{{\mathbb{C}}} \newcommand{\gC}{{\mathcal{C}}}
115
+ \newcommand{\sD}{{\mathbb{D}}} \newcommand{\gD}{{\mathcal{D}}}
116
+ \newcommand{\sE}{{\mathbb{E}}} \newcommand{\gE}{{\mathcal{E}}}
117
+ \newcommand{\sF}{{\mathbb{F}}} \newcommand{\gF}{{\mathcal{F}}}
118
+ \newcommand{\sG}{{\mathbb{G}}} \newcommand{\gG}{{\mathcal{G}}}
119
+ \newcommand{\sH}{{\mathbb{H}}} \newcommand{\gH}{{\mathcal{H}}}
120
+ \newcommand{\sI}{{\mathbb{I}}} \newcommand{\gI}{{\mathcal{I}}}
121
+ \newcommand{\sJ}{{\mathbb{J}}} \newcommand{\gJ}{{\mathcal{J}}}
122
+ \newcommand{\sK}{{\mathbb{K}}} \newcommand{\gK}{{\mathcal{K}}}
123
+ \newcommand{\sL}{{\mathbb{L}}} \newcommand{\gL}{{\mathcal{L}}}
124
+ \newcommand{\sM}{{\mathbb{M}}} \newcommand{\gM}{{\mathcal{M}}}
125
+ \newcommand{\sN}{{\mathbb{N}}} \newcommand{\gN}{{\mathcal{N}}}
126
+ \newcommand{\sO}{{\mathbb{O}}} \newcommand{\gO}{{\mathcal{O}}}
127
+ \newcommand{\sP}{{\mathbb{P}}} \newcommand{\gP}{{\mathcal{P}}}
128
+ \newcommand{\sQ}{{\mathbb{Q}}} \newcommand{\gQ}{{\mathcal{Q}}}
129
+ \newcommand{\sR}{{\mathbb{R}}} \newcommand{\gR}{{\mathcal{R}}}
130
+ \newcommand{\sS}{{\mathbb{S}}} \newcommand{\gS}{{\mathcal{S}}}
131
+ \newcommand{\sT}{{\mathbb{T}}} \newcommand{\gT}{{\mathcal{T}}}
132
+ \newcommand{\sU}{{\mathbb{U}}} \newcommand{\gU}{{\mathcal{U}}}
133
+ \newcommand{\sV}{{\mathbb{V}}} \newcommand{\gV}{{\mathcal{V}}}
134
+ \newcommand{\sW}{{\mathbb{W}}} \newcommand{\gW}{{\mathcal{W}}}
135
+ \newcommand{\sX}{{\mathbb{X}}} \newcommand{\gX}{{\mathcal{X}}}
136
+ \newcommand{\sY}{{\mathbb{Y}}} \newcommand{\gY}{{\mathcal{Y}}}
137
+ \newcommand{\sZ}{{\mathbb{Z}}} \newcommand{\gZ}{{\mathcal{Z}}}
138
+
139
+ % Tensor
140
+ \newcommand{\tens}[1]{\bm{\mathsfit{#1}}} % Tensor
141
+ \newcommand{\etens}[1]{\mathsfit{#1}} % Same font as tensor, without \bm wrapper
142
+ % Tensor % Entries of a tensor
143
+ \newcommand{\tA}{{\tens{A}}} \newcommand{\etA}{{\etens{A}}}
144
+ \newcommand{\tB}{{\tens{B}}} \newcommand{\etB}{{\etens{B}}}
145
+ \newcommand{\tC}{{\tens{C}}} \newcommand{\etC}{{\etens{C}}}
146
+ \newcommand{\tD}{{\tens{D}}} \newcommand{\etD}{{\etens{D}}}
147
+ \newcommand{\tE}{{\tens{E}}} \newcommand{\etE}{{\etens{E}}}
148
+ \newcommand{\tF}{{\tens{F}}} \newcommand{\etF}{{\etens{F}}}
149
+ \newcommand{\tG}{{\tens{G}}} \newcommand{\etG}{{\etens{G}}}
150
+ \newcommand{\tH}{{\tens{H}}} \newcommand{\etH}{{\etens{H}}}
151
+ \newcommand{\tI}{{\tens{I}}} \newcommand{\etI}{{\etens{I}}}
152
+ \newcommand{\tJ}{{\tens{J}}} \newcommand{\etJ}{{\etens{J}}}
153
+ \newcommand{\tK}{{\tens{K}}} \newcommand{\etK}{{\etens{K}}}
154
+ \newcommand{\tL}{{\tens{L}}} \newcommand{\etL}{{\etens{L}}}
155
+ \newcommand{\tM}{{\tens{M}}} \newcommand{\etM}{{\etens{M}}}
156
+ \newcommand{\tN}{{\tens{N}}} \newcommand{\etN}{{\etens{N}}}
157
+ \newcommand{\tO}{{\tens{O}}} \newcommand{\etO}{{\etens{O}}}
158
+ \newcommand{\tP}{{\tens{P}}} \newcommand{\etP}{{\etens{P}}}
159
+ \newcommand{\tQ}{{\tens{Q}}} \newcommand{\etQ}{{\etens{Q}}}
160
+ \newcommand{\tR}{{\tens{R}}} \newcommand{\etR}{{\etens{R}}}
161
+ \newcommand{\tS}{{\tens{S}}} \newcommand{\etS}{{\etens{S}}}
162
+ \newcommand{\tT}{{\tens{T}}} \newcommand{\etT}{{\etens{T}}}
163
+ \newcommand{\tU}{{\tens{U}}} \newcommand{\etU}{{\etens{U}}}
164
+ \newcommand{\tV}{{\tens{V}}} \newcommand{\etV}{{\etens{V}}}
165
+ \newcommand{\tW}{{\tens{W}}} \newcommand{\etW}{{\etens{W}}}
166
+ \newcommand{\tX}{{\tens{X}}} \newcommand{\etX}{{\etens{X}}}
167
+ \newcommand{\tY}{{\tens{Y}}} \newcommand{\etY}{{\etens{Y}}}
168
+ \newcommand{\tZ}{{\tens{Z}}} \newcommand{\etZ}{{\etens{Z}}}
169
+
170
+ %%%-------------------------------------------------------------------------%%%
171
+ %% Optional command from author.
172
+
173
+ % textnormal = $\text{}$
174
+ \newcommand{\tnla}{{\textnormal{a}}} \newcommand{\tnlA}{{\textnormal{A}}}
175
+ \newcommand{\tnlb}{{\textnormal{b}}} \newcommand{\tnlB}{{\textnormal{B}}}
176
+ \newcommand{\tnlc}{{\textnormal{c}}} \newcommand{\tnlC}{{\textnormal{C}}}
177
+ \newcommand{\tnld}{{\textnormal{d}}} \newcommand{\tnlD}{{\textnormal{D}}}
178
+ \newcommand{\tnle}{{\textnormal{e}}} \newcommand{\tnlE}{{\textnormal{E}}}
179
+ \newcommand{\tnlf}{{\textnormal{f}}} \newcommand{\tnlF}{{\textnormal{F}}}
180
+ \newcommand{\tnlg}{{\textnormal{g}}} \newcommand{\tnlG}{{\textnormal{G}}}
181
+ \newcommand{\tnlh}{{\textnormal{h}}} \newcommand{\tnlH}{{\textnormal{H}}}
182
+ \newcommand{\tnli}{{\textnormal{i}}} \newcommand{\tnlI}{{\textnormal{I}}}
183
+ \newcommand{\tnlj}{{\textnormal{j}}} \newcommand{\tnlJ}{{\textnormal{J}}}
184
+ \newcommand{\tnlk}{{\textnormal{k}}} \newcommand{\tnlK}{{\textnormal{K}}}
185
+ \newcommand{\tnll}{{\textnormal{l}}} \newcommand{\tnlL}{{\textnormal{L}}}
186
+ \newcommand{\tnlm}{{\textnormal{m}}} \newcommand{\tnlM}{{\textnormal{M}}}
187
+ \newcommand{\tnln}{{\textnormal{n}}} \newcommand{\tnlN}{{\textnormal{N}}}
188
+ \newcommand{\tnlo}{{\textnormal{o}}} \newcommand{\tnlO}{{\textnormal{O}}}
189
+ \newcommand{\tnlp}{{\textnormal{p}}} \newcommand{\tnlP}{{\textnormal{P}}}
190
+ \newcommand{\tnlq}{{\textnormal{q}}} \newcommand{\tnlQ}{{\textnormal{Q}}}
191
+ \newcommand{\tnlr}{{\textnormal{r}}} \newcommand{\tnlR}{{\textnormal{R}}}
192
+ \newcommand{\tnls}{{\textnormal{s}}} \newcommand{\tnlS}{{\textnormal{S}}}
193
+ \newcommand{\tnlt}{{\textnormal{t}}} \newcommand{\tnlT}{{\textnormal{T}}}
194
+ \newcommand{\tnlu}{{\textnormal{u}}} \newcommand{\tnlU}{{\textnormal{U}}}
195
+ \newcommand{\tnlv}{{\textnormal{v}}} \newcommand{\tnlV}{{\textnormal{V}}}
196
+ \newcommand{\tnlw}{{\textnormal{w}}} \newcommand{\tnlW}{{\textnormal{W}}}
197
+ \newcommand{\tnlx}{{\textnormal{x}}} \newcommand{\tnlX}{{\textnormal{X}}}
198
+ \newcommand{\tnly}{{\textnormal{y}}} \newcommand{\tnlY}{{\textnormal{Y}}}
199
+ \newcommand{\tnlz}{{\textnormal{z}}} \newcommand{\tnlZ}{{\textnormal{Z}}}
200
+
201
+ % mathnormal = $$
202
+ \newcommand{\mnla}{{\mathnormal{a}}} \newcommand{\mnlA}{{\mathnormal{A}}}
203
+ \newcommand{\mnlb}{{\mathnormal{b}}} \newcommand{\mnlB}{{\mathnormal{B}}}
204
+ \newcommand{\mnlc}{{\mathnormal{c}}} \newcommand{\mnlC}{{\mathnormal{C}}}
205
+ \newcommand{\mnld}{{\mathnormal{d}}} \newcommand{\mnlD}{{\mathnormal{D}}}
206
+ \newcommand{\mnle}{{\mathnormal{e}}} \newcommand{\mnlE}{{\mathnormal{E}}}
207
+ \newcommand{\mnlf}{{\mathnormal{f}}} \newcommand{\mnlF}{{\mathnormal{F}}}
208
+ \newcommand{\mnlg}{{\mathnormal{g}}} \newcommand{\mnlG}{{\mathnormal{G}}}
209
+ \newcommand{\mnlh}{{\mathnormal{h}}} \newcommand{\mnlH}{{\mathnormal{H}}}
210
+ \newcommand{\mnli}{{\mathnormal{i}}} \newcommand{\mnlI}{{\mathnormal{I}}}
211
+ \newcommand{\mnlj}{{\mathnormal{j}}} \newcommand{\mnlJ}{{\mathnormal{J}}}
212
+ \newcommand{\mnlk}{{\mathnormal{k}}} \newcommand{\mnlK}{{\mathnormal{K}}}
213
+ \newcommand{\mnll}{{\mathnormal{l}}} \newcommand{\mnlL}{{\mathnormal{L}}}
214
+ \newcommand{\mnlm}{{\mathnormal{m}}} \newcommand{\mnlM}{{\mathnormal{M}}}
215
+ \newcommand{\mnln}{{\mathnormal{n}}} \newcommand{\mnlN}{{\mathnormal{N}}}
216
+ \newcommand{\mnlo}{{\mathnormal{o}}} \newcommand{\mnlO}{{\mathnormal{O}}}
217
+ \newcommand{\mnlp}{{\mathnormal{p}}} \newcommand{\mnlP}{{\mathnormal{P}}}
218
+ \newcommand{\mnlq}{{\mathnormal{q}}} \newcommand{\mnlQ}{{\mathnormal{Q}}}
219
+ \newcommand{\mnlr}{{\mathnormal{r}}} \newcommand{\mnlR}{{\mathnormal{R}}}
220
+ \newcommand{\mnls}{{\mathnormal{s}}} \newcommand{\mnlS}{{\mathnormal{S}}}
221
+ \newcommand{\mnlt}{{\mathnormal{t}}} \newcommand{\mnlT}{{\mathnormal{T}}}
222
+ \newcommand{\mnlu}{{\mathnormal{u}}} \newcommand{\mnlU}{{\mathnormal{U}}}
223
+ \newcommand{\mnlv}{{\mathnormal{v}}} \newcommand{\mnlV}{{\mathnormal{V}}}
224
+ \newcommand{\mnlw}{{\mathnormal{w}}} \newcommand{\mnlW}{{\mathnormal{W}}}
225
+ \newcommand{\mnlx}{{\mathnormal{x}}} \newcommand{\mnlX}{{\mathnormal{X}}}
226
+ \newcommand{\mnly}{{\mathnormal{y}}} \newcommand{\mnlY}{{\mathnormal{Y}}}
227
+ \newcommand{\mnlz}{{\mathnormal{z}}} \newcommand{\mnlZ}{{\mathnormal{Z}}}
228
+
229
+ % roman font
230
+ \newcommand{\mrma}{{\mathrm{a}}} \newcommand{\mrmA}{{\mathrm{A}}}
231
+ \newcommand{\mrmb}{{\mathrm{b}}} \newcommand{\mrmB}{{\mathrm{B}}}
232
+ \newcommand{\mrmc}{{\mathrm{c}}} \newcommand{\mrmC}{{\mathrm{C}}}
233
+ \newcommand{\mrmd}{{\mathrm{d}}} \newcommand{\mrmD}{{\mathrm{D}}}
234
+ \newcommand{\mrme}{{\mathrm{e}}} \newcommand{\mrmE}{{\mathrm{E}}}
235
+ \newcommand{\mrmf}{{\mathrm{f}}} \newcommand{\mrmF}{{\mathrm{F}}}
236
+ \newcommand{\mrmg}{{\mathrm{g}}} \newcommand{\mrmG}{{\mathrm{G}}}
237
+ \newcommand{\mrmh}{{\mathrm{h}}} \newcommand{\mrmH}{{\mathrm{H}}}
238
+ \newcommand{\mrmi}{{\mathrm{i}}} \newcommand{\mrmI}{{\mathrm{I}}}
239
+ \newcommand{\mrmj}{{\mathrm{j}}} \newcommand{\mrmJ}{{\mathrm{J}}}
240
+ \newcommand{\mrmk}{{\mathrm{k}}} \newcommand{\mrmK}{{\mathrm{K}}}
241
+ \newcommand{\mrml}{{\mathrm{l}}} \newcommand{\mrmL}{{\mathrm{L}}}
242
+ \newcommand{\mrmm}{{\mathrm{m}}} \newcommand{\mrmM}{{\mathrm{M}}}
243
+ \newcommand{\mrmn}{{\mathrm{n}}} \newcommand{\mrmN}{{\mathrm{N}}}
244
+ \newcommand{\mrmo}{{\mathrm{o}}} \newcommand{\mrmO}{{\mathrm{O}}}
245
+ \newcommand{\mrmp}{{\mathrm{p}}} \newcommand{\mrmP}{{\mathrm{P}}}
246
+ \newcommand{\mrmq}{{\mathrm{q}}} \newcommand{\mrmQ}{{\mathrm{Q}}}
247
+ \newcommand{\mrmr}{{\mathrm{r}}} \newcommand{\mrmR}{{\mathrm{R}}}
248
+ \newcommand{\mrms}{{\mathrm{s}}} \newcommand{\mrmS}{{\mathrm{S}}}
249
+ \newcommand{\mrmt}{{\mathrm{t}}} \newcommand{\mrmT}{{\mathrm{T}}}
250
+ \newcommand{\mrmu}{{\mathrm{u}}} \newcommand{\mrmU}{{\mathrm{U}}}
251
+ \newcommand{\mrmv}{{\mathrm{v}}} \newcommand{\mrmV}{{\mathrm{V}}}
252
+ \newcommand{\mrmw}{{\mathrm{w}}} \newcommand{\mrmW}{{\mathrm{W}}}
253
+ \newcommand{\mrmx}{{\mathrm{x}}} \newcommand{\mrmX}{{\mathrm{X}}}
254
+ \newcommand{\mrmy}{{\mathrm{y}}} \newcommand{\mrmY}{{\mathrm{Y}}}
255
+ \newcommand{\mrmz}{{\mathrm{z}}} \newcommand{\mrmZ}{{\mathrm{Z}}}
256
+
257
+ % Bold roman font
258
+ \newcommand{\mbfa}{{\mathbf{a}}} \newcommand{\mbfA}{{\mathbf{A}}}
259
+ \newcommand{\mbfb}{{\mathbf{b}}} \newcommand{\mbfB}{{\mathbf{B}}}
260
+ \newcommand{\mbfc}{{\mathbf{c}}} \newcommand{\mbfC}{{\mathbf{C}}}
261
+ \newcommand{\mbfd}{{\mathbf{d}}} \newcommand{\mbfD}{{\mathbf{D}}}
262
+ \newcommand{\mbfe}{{\mathbf{e}}} \newcommand{\mbfE}{{\mathbf{E}}}
263
+ \newcommand{\mbff}{{\mathbf{f}}} \newcommand{\mbfF}{{\mathbf{F}}}
264
+ \newcommand{\mbfg}{{\mathbf{g}}} \newcommand{\mbfG}{{\mathbf{G}}}
265
+ \newcommand{\mbfh}{{\mathbf{h}}} \newcommand{\mbfH}{{\mathbf{H}}}
266
+ \newcommand{\mbfi}{{\mathbf{i}}} \newcommand{\mbfI}{{\mathbf{I}}}
267
+ \newcommand{\mbfj}{{\mathbf{j}}} \newcommand{\mbfJ}{{\mathbf{J}}}
268
+ \newcommand{\mbfk}{{\mathbf{k}}} \newcommand{\mbfK}{{\mathbf{K}}}
269
+ \newcommand{\mbfl}{{\mathbf{l}}} \newcommand{\mbfL}{{\mathbf{L}}}
270
+ \newcommand{\mbfm}{{\mathbf{m}}} \newcommand{\mbfM}{{\mathbf{M}}}
271
+ \newcommand{\mbfn}{{\mathbf{n}}} \newcommand{\mbfN}{{\mathbf{N}}}
272
+ \newcommand{\mbfo}{{\mathbf{o}}} \newcommand{\mbfO}{{\mathbf{O}}}
273
+ \newcommand{\mbfp}{{\mathbf{p}}} \newcommand{\mbfP}{{\mathbf{P}}}
274
+ \newcommand{\mbfq}{{\mathbf{q}}} \newcommand{\mbfQ}{{\mathbf{Q}}}
275
+ \newcommand{\mbfr}{{\mathbf{r}}} \newcommand{\mbfR}{{\mathbf{R}}}
276
+ \newcommand{\mbfs}{{\mathbf{s}}} \newcommand{\mbfS}{{\mathbf{S}}}
277
+ \newcommand{\mbft}{{\mathbf{t}}} \newcommand{\mbfT}{{\mathbf{T}}}
278
+ \newcommand{\mbfu}{{\mathbf{u}}} \newcommand{\mbfU}{{\mathbf{U}}}
279
+ \newcommand{\mbfv}{{\mathbf{v}}} \newcommand{\mbfV}{{\mathbf{V}}}
280
+ \newcommand{\mbfw}{{\mathbf{w}}} \newcommand{\mbfW}{{\mathbf{W}}}
281
+ \newcommand{\mbfx}{{\mathbf{x}}} \newcommand{\mbfX}{{\mathbf{X}}}
282
+ \newcommand{\mbfy}{{\mathbf{y}}} \newcommand{\mbfY}{{\mathbf{Y}}}
283
+ \newcommand{\mbfz}{{\mathbf{z}}} \newcommand{\mbfZ}{{\mathbf{Z}}}
284
+
285
+ % sans serif font
286
+ \newcommand{\msfa}{{\mathsf{a}}} \newcommand{\msfA}{{\mathsf{A}}}
287
+ \newcommand{\msfb}{{\mathsf{b}}} \newcommand{\msfB}{{\mathsf{B}}}
288
+ \newcommand{\msfc}{{\mathsf{c}}} \newcommand{\msfC}{{\mathsf{C}}}
289
+ \newcommand{\msfd}{{\mathsf{d}}} \newcommand{\msfD}{{\mathsf{D}}}
290
+ \newcommand{\msfe}{{\mathsf{e}}} \newcommand{\msfE}{{\mathsf{E}}}
291
+ \newcommand{\msff}{{\mathsf{f}}} \newcommand{\msfF}{{\mathsf{F}}}
292
+ \newcommand{\msfg}{{\mathsf{g}}} \newcommand{\msfG}{{\mathsf{G}}}
293
+ \newcommand{\msfh}{{\mathsf{h}}} \newcommand{\msfH}{{\mathsf{H}}}
294
+ \newcommand{\msfi}{{\mathsf{i}}} \newcommand{\msfI}{{\mathsf{I}}}
295
+ \newcommand{\msfj}{{\mathsf{j}}} \newcommand{\msfJ}{{\mathsf{J}}}
296
+ \newcommand{\msfk}{{\mathsf{k}}} \newcommand{\msfK}{{\mathsf{K}}}
297
+ \newcommand{\msfl}{{\mathsf{l}}} \newcommand{\msfL}{{\mathsf{L}}}
298
+ \newcommand{\msfm}{{\mathsf{m}}} \newcommand{\msfM}{{\mathsf{M}}}
299
+ \newcommand{\msfn}{{\mathsf{n}}} \newcommand{\msfN}{{\mathsf{N}}}
300
+ \newcommand{\msfo}{{\mathsf{o}}} \newcommand{\msfO}{{\mathsf{O}}}
301
+ \newcommand{\msfp}{{\mathsf{p}}} \newcommand{\msfP}{{\mathsf{P}}}
302
+ \newcommand{\msfq}{{\mathsf{q}}} \newcommand{\msfQ}{{\mathsf{Q}}}
303
+ \newcommand{\msfr}{{\mathsf{r}}} \newcommand{\msfR}{{\mathsf{R}}}
304
+ \newcommand{\msfs}{{\mathsf{s}}} \newcommand{\msfS}{{\mathsf{S}}}
305
+ \newcommand{\msft}{{\mathsf{t}}} \newcommand{\msfT}{{\mathsf{T}}}
306
+ \newcommand{\msfu}{{\mathsf{u}}} \newcommand{\msfU}{{\mathsf{U}}}
307
+ \newcommand{\msfv}{{\mathsf{v}}} \newcommand{\msfV}{{\mathsf{V}}}
308
+ \newcommand{\msfw}{{\mathsf{w}}} \newcommand{\msfW}{{\mathsf{W}}}
309
+ \newcommand{\msfx}{{\mathsf{x}}} \newcommand{\msfX}{{\mathsf{X}}}
310
+ \newcommand{\msfy}{{\mathsf{y}}} \newcommand{\msfY}{{\mathsf{Y}}}
311
+ \newcommand{\msfz}{{\mathsf{z}}} \newcommand{\msfZ}{{\mathsf{Z}}}
312
+
313
+ % text italic font
314
+ \newcommand{\mita}{{\mathit{a}}} \newcommand{\mitA}{{\mathit{A}}}
315
+ \newcommand{\mitb}{{\mathit{b}}} \newcommand{\mitB}{{\mathit{B}}}
316
+ \newcommand{\mitc}{{\mathit{c}}} \newcommand{\mitC}{{\mathit{C}}}
317
+ \newcommand{\mitd}{{\mathit{d}}} \newcommand{\mitD}{{\mathit{D}}}
318
+ \newcommand{\mite}{{\mathit{e}}} \newcommand{\mitE}{{\mathit{E}}}
319
+ \newcommand{\mitf}{{\mathit{f}}} \newcommand{\mitF}{{\mathit{F}}}
320
+ \newcommand{\mitg}{{\mathit{g}}} \newcommand{\mitG}{{\mathit{G}}}
321
+ \newcommand{\mith}{{\mathit{h}}} \newcommand{\mitH}{{\mathit{H}}}
322
+ \newcommand{\miti}{{\mathit{i}}} \newcommand{\mitI}{{\mathit{I}}}
323
+ \newcommand{\mitj}{{\mathit{j}}} \newcommand{\mitJ}{{\mathit{J}}}
324
+ \newcommand{\mitk}{{\mathit{k}}} \newcommand{\mitK}{{\mathit{K}}}
325
+ \newcommand{\mitl}{{\mathit{l}}} \newcommand{\mitL}{{\mathit{L}}}
326
+ \newcommand{\mitm}{{\mathit{m}}} \newcommand{\mitM}{{\mathit{M}}}
327
+ \newcommand{\mitn}{{\mathit{n}}} \newcommand{\mitN}{{\mathit{N}}}
328
+ \newcommand{\mito}{{\mathit{o}}} \newcommand{\mitO}{{\mathit{O}}}
329
+ \newcommand{\mitp}{{\mathit{p}}} \newcommand{\mitP}{{\mathit{P}}}
330
+ \newcommand{\mitq}{{\mathit{q}}} \newcommand{\mitQ}{{\mathit{Q}}}
331
+ \newcommand{\mitr}{{\mathit{r}}} \newcommand{\mitR}{{\mathit{R}}}
332
+ \newcommand{\mits}{{\mathit{s}}} \newcommand{\mitS}{{\mathit{S}}}
333
+ \newcommand{\mitt}{{\mathit{t}}} \newcommand{\mitT}{{\mathit{T}}}
334
+ \newcommand{\mitu}{{\mathit{u}}} \newcommand{\mitU}{{\mathit{U}}}
335
+ \newcommand{\mitv}{{\mathit{v}}} \newcommand{\mitV}{{\mathit{V}}}
336
+ \newcommand{\mitw}{{\mathit{w}}} \newcommand{\mitW}{{\mathit{W}}}
337
+ \newcommand{\mitx}{{\mathit{x}}} \newcommand{\mitX}{{\mathit{X}}}
338
+ \newcommand{\mity}{{\mathit{y}}} \newcommand{\mitY}{{\mathit{Y}}}
339
+ \newcommand{\mitz}{{\mathit{z}}} \newcommand{\mitZ}{{\mathit{Z}}}
340
+
341
+ % typewriter font
342
+ \newcommand{\mtta}{{\mathtt{a}}} \newcommand{\mttA}{{\mathtt{A}}}
343
+ \newcommand{\mttb}{{\mathtt{b}}} \newcommand{\mttB}{{\mathtt{B}}}
344
+ \newcommand{\mttc}{{\mathtt{c}}} \newcommand{\mttC}{{\mathtt{C}}}
345
+ \newcommand{\mttd}{{\mathtt{d}}} \newcommand{\mttD}{{\mathtt{D}}}
346
+ \newcommand{\mtte}{{\mathtt{e}}} \newcommand{\mttE}{{\mathtt{E}}}
347
+ \newcommand{\mttf}{{\mathtt{f}}} \newcommand{\mttF}{{\mathtt{F}}}
348
+ \newcommand{\mttg}{{\mathtt{g}}} \newcommand{\mttG}{{\mathtt{G}}}
349
+ \newcommand{\mtth}{{\mathtt{h}}} \newcommand{\mttH}{{\mathtt{H}}}
350
+ \newcommand{\mtti}{{\mathtt{i}}} \newcommand{\mttI}{{\mathtt{I}}}
351
+ \newcommand{\mttj}{{\mathtt{j}}} \newcommand{\mttJ}{{\mathtt{J}}}
352
+ \newcommand{\mttk}{{\mathtt{k}}} \newcommand{\mttK}{{\mathtt{K}}}
353
+ \newcommand{\mttl}{{\mathtt{l}}} \newcommand{\mttL}{{\mathtt{L}}}
354
+ \newcommand{\mttm}{{\mathtt{m}}} \newcommand{\mttM}{{\mathtt{M}}}
355
+ \newcommand{\mttn}{{\mathtt{n}}} \newcommand{\mttN}{{\mathtt{N}}}
356
+ \newcommand{\mtto}{{\mathtt{o}}} \newcommand{\mttO}{{\mathtt{O}}}
357
+ \newcommand{\mttp}{{\mathtt{p}}} \newcommand{\mttP}{{\mathtt{P}}}
358
+ \newcommand{\mttq}{{\mathtt{q}}} \newcommand{\mttQ}{{\mathtt{Q}}}
359
+ \newcommand{\mttr}{{\mathtt{r}}} \newcommand{\mttR}{{\mathtt{R}}}
360
+ \newcommand{\mtts}{{\mathtt{s}}} \newcommand{\mttS}{{\mathtt{S}}}
361
+ \newcommand{\mttt}{{\mathtt{t}}} \newcommand{\mttT}{{\mathtt{T}}}
362
+ \newcommand{\mttu}{{\mathtt{u}}} \newcommand{\mttU}{{\mathtt{U}}}
363
+ \newcommand{\mttv}{{\mathtt{v}}} \newcommand{\mttV}{{\mathtt{V}}}
364
+ \newcommand{\mttw}{{\mathtt{w}}} \newcommand{\mttW}{{\mathtt{W}}}
365
+ \newcommand{\mttx}{{\mathtt{x}}} \newcommand{\mttX}{{\mathtt{X}}}
366
+ \newcommand{\mtty}{{\mathtt{y}}} \newcommand{\mttY}{{\mathtt{Y}}}
367
+ \newcommand{\mttz}{{\mathtt{z}}} \newcommand{\mttZ}{{\mathtt{Z}}}
368
+
369
+ % fraktur font
370
+ \newcommand{\mfraka}{{\mathfrak{a}}} \newcommand{\mfrakA}{{\mathfrak{A}}}
371
+ \newcommand{\mfrakb}{{\mathfrak{b}}} \newcommand{\mfrakB}{{\mathfrak{B}}}
372
+ \newcommand{\mfrakc}{{\mathfrak{c}}} \newcommand{\mfrakC}{{\mathfrak{C}}}
373
+ \newcommand{\mfrakd}{{\mathfrak{d}}} \newcommand{\mfrakD}{{\mathfrak{D}}}
374
+ \newcommand{\mfrake}{{\mathfrak{e}}} \newcommand{\mfrakE}{{\mathfrak{E}}}
375
+ \newcommand{\mfrakf}{{\mathfrak{f}}} \newcommand{\mfrakF}{{\mathfrak{F}}}
376
+ \newcommand{\mfrakg}{{\mathfrak{g}}} \newcommand{\mfrakG}{{\mathfrak{G}}}
377
+ \newcommand{\mfrakh}{{\mathfrak{h}}} \newcommand{\mfrakH}{{\mathfrak{H}}}
378
+ \newcommand{\mfraki}{{\mathfrak{i}}} \newcommand{\mfrakI}{{\mathfrak{I}}}
379
+ \newcommand{\mfrakj}{{\mathfrak{j}}} \newcommand{\mfrakJ}{{\mathfrak{J}}}
380
+ \newcommand{\mfrakk}{{\mathfrak{k}}} \newcommand{\mfrakK}{{\mathfrak{K}}}
381
+ \newcommand{\mfrakl}{{\mathfrak{l}}} \newcommand{\mfrakL}{{\mathfrak{L}}}
382
+ \newcommand{\mfrakm}{{\mathfrak{m}}} \newcommand{\mfrakM}{{\mathfrak{M}}}
383
+ \newcommand{\mfrakn}{{\mathfrak{n}}} \newcommand{\mfrakN}{{\mathfrak{N}}}
384
+ \newcommand{\mfrako}{{\mathfrak{o}}} \newcommand{\mfrakO}{{\mathfrak{O}}}
385
+ \newcommand{\mfrakp}{{\mathfrak{p}}} \newcommand{\mfrakP}{{\mathfrak{P}}}
386
+ \newcommand{\mfrakq}{{\mathfrak{q}}} \newcommand{\mfrakQ}{{\mathfrak{Q}}}
387
+ \newcommand{\mfrakr}{{\mathfrak{r}}} \newcommand{\mfrakR}{{\mathfrak{R}}}
388
+ \newcommand{\mfraks}{{\mathfrak{s}}} \newcommand{\mfrakS}{{\mathfrak{S}}}
389
+ \newcommand{\mfrakt}{{\mathfrak{t}}} \newcommand{\mfrakT}{{\mathfrak{T}}}
390
+ \newcommand{\mfraku}{{\mathfrak{u}}} \newcommand{\mfrakU}{{\mathfrak{U}}}
391
+ \newcommand{\mfrakv}{{\mathfrak{v}}} \newcommand{\mfrakV}{{\mathfrak{V}}}
392
+ \newcommand{\mfrakw}{{\mathfrak{w}}} \newcommand{\mfrakW}{{\mathfrak{W}}}
393
+ \newcommand{\mfrakx}{{\mathfrak{x}}} \newcommand{\mfrakX}{{\mathfrak{X}}}
394
+ \newcommand{\mfraky}{{\mathfrak{y}}} \newcommand{\mfrakY}{{\mathfrak{Y}}}
395
+ \newcommand{\mfrakz}{{\mathfrak{z}}} \newcommand{\mfrakZ}{{\mathfrak{Z}}}
396
+
397
+ % Set % Graph % Group (Algebra)
398
+ \newcommand{\mbbA}{{\mathbb{A}}} \newcommand{\mcalA}{{\mathcal{A}}} \newcommand{\mscrA}{{\mathscr{A}}}
399
+ \newcommand{\mbbB}{{\mathbb{B}}} \newcommand{\mcalB}{{\mathcal{B}}} \newcommand{\mscrB}{{\mathscr{B}}}
400
+ \newcommand{\mbbC}{{\mathbb{C}}} \newcommand{\mcalC}{{\mathcal{C}}} \newcommand{\mscrC}{{\mathscr{C}}}
401
+ \newcommand{\mbbD}{{\mathbb{D}}} \newcommand{\mcalD}{{\mathcal{D}}} \newcommand{\mscrD}{{\mathscr{D}}}
402
+ \newcommand{\mbbE}{{\mathbb{E}}} \newcommand{\mcalE}{{\mathcal{E}}} \newcommand{\mscrE}{{\mathscr{E}}}
403
+ \newcommand{\mbbF}{{\mathbb{F}}} \newcommand{\mcalF}{{\mathcal{F}}} \newcommand{\mscrF}{{\mathscr{F}}}
404
+ \newcommand{\mbbG}{{\mathbb{G}}} \newcommand{\mcalG}{{\mathcal{G}}} \newcommand{\mscrG}{{\mathscr{G}}}
405
+ \newcommand{\mbbH}{{\mathbb{H}}} \newcommand{\mcalH}{{\mathcal{H}}} \newcommand{\mscrH}{{\mathscr{H}}}
406
+ \newcommand{\mbbI}{{\mathbb{I}}} \newcommand{\mcalI}{{\mathcal{I}}} \newcommand{\mscrI}{{\mathscr{I}}}
407
+ \newcommand{\mbbJ}{{\mathbb{J}}} \newcommand{\mcalJ}{{\mathcal{J}}} \newcommand{\mscrJ}{{\mathscr{J}}}
408
+ \newcommand{\mbbK}{{\mathbb{K}}} \newcommand{\mcalK}{{\mathcal{K}}} \newcommand{\mscrK}{{\mathscr{K}}}
409
+ \newcommand{\mbbL}{{\mathbb{L}}} \newcommand{\mcalL}{{\mathcal{L}}} \newcommand{\mscrL}{{\mathscr{L}}}
410
+ \newcommand{\mbbM}{{\mathbb{M}}} \newcommand{\mcalM}{{\mathcal{M}}} \newcommand{\mscrM}{{\mathscr{M}}}
411
+ \newcommand{\mbbN}{{\mathbb{N}}} \newcommand{\mcalN}{{\mathcal{N}}} \newcommand{\mscrN}{{\mathscr{N}}}
412
+ \newcommand{\mbbO}{{\mathbb{O}}} \newcommand{\mcalO}{{\mathcal{O}}} \newcommand{\mscrO}{{\mathscr{O}}}
413
+ \newcommand{\mbbP}{{\mathbb{P}}} \newcommand{\mcalP}{{\mathcal{P}}} \newcommand{\mscrP}{{\mathscr{P}}}
414
+ \newcommand{\mbbQ}{{\mathbb{Q}}} \newcommand{\mcalQ}{{\mathcal{Q}}} \newcommand{\mscrQ}{{\mathscr{Q}}}
415
+ \newcommand{\mbbR}{{\mathbb{R}}} \newcommand{\mcalR}{{\mathcal{R}}} \newcommand{\mscrR}{{\mathscr{R}}}
416
+ \newcommand{\mbbS}{{\mathbb{S}}} \newcommand{\mcalS}{{\mathcal{S}}} \newcommand{\mscrS}{{\mathscr{S}}}
417
+ \newcommand{\mbbT}{{\mathbb{T}}} \newcommand{\mcalT}{{\mathcal{T}}} \newcommand{\mscrT}{{\mathscr{T}}}
418
+ \newcommand{\mbbU}{{\mathbb{U}}} \newcommand{\mcalU}{{\mathcal{U}}} \newcommand{\mscrU}{{\mathscr{U}}}
419
+ \newcommand{\mbbV}{{\mathbb{V}}} \newcommand{\mcalV}{{\mathcal{V}}} \newcommand{\mscrV}{{\mathscr{V}}}
420
+ \newcommand{\mbbW}{{\mathbb{W}}} \newcommand{\mcalW}{{\mathcal{W}}} \newcommand{\mscrW}{{\mathscr{W}}}
421
+ \newcommand{\mbbX}{{\mathbb{X}}} \newcommand{\mcalX}{{\mathcal{X}}} \newcommand{\mscrX}{{\mathscr{X}}}
422
+ \newcommand{\mbbY}{{\mathbb{Y}}} \newcommand{\mcalY}{{\mathcal{Y}}} \newcommand{\mscrY}{{\mathscr{Y}}}
423
+ \newcommand{\mbbZ}{{\mathbb{Z}}} \newcommand{\mcalZ}{{\mathcal{Z}}} \newcommand{\mscrZ}{{\mathscr{Z}}}
424
+
425
+ %%%-------------------------------------------------------------------------%%%
426
+ %% Some commonly used cases
427
+ % Vectors
428
+ \newcommand{\vzero}{{\bm{0}}}
429
+ \newcommand{\vone}{{\bm{1}}}
430
+ \newcommand{\vmu}{{\bm{\mu}}}
431
+ \newcommand{\vtheta}{{\bm{\theta}}}
432
+ % Elements of vectors
433
+ \newcommand{\evalpha}{{\alpha}}
434
+ \newcommand{\evbeta}{{\beta}}
435
+ \newcommand{\evepsilon}{{\epsilon}}
436
+ \newcommand{\evlambda}{{\lambda}}
437
+ \newcommand{\evomega}{{\omega}}
438
+ \newcommand{\evmu}{{\mu}}
439
+ \newcommand{\evpsi}{{\psi}}
440
+ \newcommand{\evsigma}{{\sigma}}
441
+ \newcommand{\evtheta}{{\theta}}
442
+ % Matrix
443
+ \newcommand{\mBeta}{{\bm{\Beta}}}
444
+ \newcommand{\mPhi}{{\bm{\Phi}}}
445
+ \newcommand{\mLambda}{{\bm{\Lambda}}}
446
+ \newcommand{\mSigma}{{\bm{\Sigma}}}
447
+ % Entries of a matrix
448
+ \newcommand{\emLambda}{{\Lambda}}
449
+ \newcommand{\emSigma}{{\Sigma}}
450
+ % Random variables
451
+ \newcommand{\reta}{{\textnormal{\(\eta \)}}}
452
+ % Random vectors
453
+ \newcommand{\rvepsilon}{{\mathbf{\epsilon}}}
454
+ \newcommand{\rvtheta}{{\mathbf{\theta}}}
455
+ % Entries of a tensor
456
+ \newcommand{\etLambda}{{\etens{\Lambda}}}
457
+
458
+ %%%-------------------------------------------------------------------------%%%
459
+ %% function
460
+ \newcommand{\R}{{\mathbb{R}}} % domain
461
+
462
+ %% probability
463
+ \newcommand{\E}{{\mathbb{E}}} % expectation
464
+ \newcommand{\Var}{{\mathrm{Var}}} % variance
465
+ \newcommand{\Std}{{\mathrm{Std}}} % standard variance
466
+ \newcommand{\Cov}{{\mathrm{Cov}}} % covariance
467
+ \newcommand{\KL}{{D_{\mathrm{KL}}}} % KL divergence
468
+ \newcommand{\standarderror}{{\mathrm{SE}}} % standard error
469
+
470
+ %% norm
471
+ % Wolfram Mathworld says $L^2$ is for function spaces and $\ell^2$ is for vectors
472
+ % But then they seem to use $L^2$ for vectors throughout the site, and so does
473
+ % wikipedia.
474
+ \newcommand{\normLzero}{L^0}
475
+ \newcommand{\normLone}{L^1}
476
+ \newcommand{\normLtwo}{L^2}
477
+ \newcommand{\normLp}{L^p}
478
+ \newcommand{\normLinfty}{L^\infty}
479
+ \newcommand{\normlzero}{\ell^0}
480
+ \newcommand{\normlone}{\ell^1}
481
+ \newcommand{\normltwo}{\ell^2}
482
+ \newcommand{\normlp}{\ell^p}
483
+ \newcommand{\normlinfty}{\ell^\infty}
484
+
485
+ %% Number
486
+ \newcommand{\1}{{\bm{1}}}
487
+
488
+ %% other
489
+ \newcommand{\Ls}{{\mathcal{L}}}
490
+ \newcommand{\emp}{{\tilde{p}}}
491
+ \newcommand{\lr}{{\alpha}}
492
+ \newcommand{\reg}{{\lambda}}
493
+ \newcommand{\rect}{{\mathrm{rectifier}}}
494
+ \newcommand{\eps}{{\epsilon}}
495
+
496
+ %%%-------------------------------------------------------------------------%%%
497
+ %% Machine Learning
498
+ % The true underlying data generating distribution
499
+ \newcommand{\pdata}{{p_{\textrm{data}}}}
500
+ % The empirical distribution defined by the training set
501
+ \newcommand{\ptrain}{{\hat{p}_{\textrm{data}}}}
502
+ \newcommand{\Ptrain}{{\hat{P}_{\textrm{data}}}}
503
+ % The model distribution
504
+ \newcommand{\pmodel}{{p_{\textrm{model}}}}
505
+ \newcommand{\Pmodel}{{P_{\textrm{model}}}}
506
+ \newcommand{\ptildemodel}{{\tilde{p}_{\textrm{model}}}}
507
+ % Stochastic autoencoder distributions
508
+ \newcommand{\pencode}{{p_{\textrm{encoder}}}}
509
+ \newcommand{\pdecode}{{p_{\textrm{decoder}}}}
510
+ \newcommand{\precons}{{p_{\textrm{reconstruct}}}}
511
+ % Laplace distribution
512
+ \newcommand{\laplace}{{\mathrm{Laplace}}}
513
+ %
514
+ \newcommand{\train}{\mathcal{D}}
515
+ \newcommand{\valid}{\mathcal{D_{\mathrm{valid}}}}
516
+ \newcommand{\test}{\mathcal{D_{\mathrm{test}}}}
517
+ %
518
+ \newcommand{\parents}{Pa} % See usage in notation.tex. Chosen to match Daphne's book.
519
+ %
520
+ \newcommand{\softmax}{{\mathrm{softmax}}}
521
+ \newcommand{\sigmoid}{{\sigma}}
522
+ \newcommand{\softplus}{{\zeta}}
523
+
524
+ %%%-------------------------------------------------------------------------%%%
525
+ %% Mark sections of captions for referring to divisions of figures
526
+ \newcommand{\figleft}{{\em (Left)\/}}
527
+ \newcommand{\figcenter}{{\em (Center)\/}}
528
+ \newcommand{\figright}{{\em (Right)\/}}
529
+ \newcommand{\figtop}{{\em (Top)\/}}
530
+ \newcommand{\figbottom}{{\em (Bottom)\/}}
531
+ \newcommand{\captiona}{{\em (a)\/}}
532
+ \newcommand{\captionb}{{\em (b)\/}}
533
+ \newcommand{\captionc}{{\em (c)\/}}
534
+ \newcommand{\captiond}{{\em (d)\/}}
535
+
536
+ %%%-------------------------------------------------------------------------%%%
537
+ %% Figure, Table, Equation, Algorithm, Section, Chapter, Part
538
+
539
+ % ==================== FIGURE REFERENCES ====================
540
+ % Single figure reference (lowercase)
541
+ \providecommand{\onefigref}[1]{\hyperref[#1]{figure~\ref*{#1}}}
542
+ % Multiple figure references (lowercase)
543
+ \providecommand{\twofigrefs}[2]{\hyperref[#1]{figures~\ref*{#1} and~\ref*{#2}}}
544
+ \providecommand{\threefigrefs}[3]{\hyperref[#1]{figures~\ref*{#1},~\ref*{#2},~and~\ref*{#3}}}
545
+ \providecommand{\fourfigrefs}[4]{\hyperref[#1]{figures~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
546
+
547
+ % Single figure reference (sentence start, capitalized)
548
+ \providecommand{\oneFigref}[1]{\hyperref[#1]{Figure~\ref*{#1}}}
549
+ % Purpose: Creates clickable "Figure X" reference for beginning of sentences
550
+ % - Uses \hyperref for clickable link
551
+ % - \ref* prevents nested hyperlinks
552
+ % - ~ ensures unbreakable space
553
+ % Multiple figure references (capitalized)
554
+ \providecommand{\twoFigrefs}[2]{\hyperref[#1]{Figures~\ref*{#1} and~\ref*{#2}}}
555
+ \providecommand{\threeFigrefs}[3]{\hyperref[#1]{Figures~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
556
+ \providecommand{\fourFigrefs}[4]{\hyperref[#1]{Figures~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
557
+
558
+ % ==================== TABLE REFERENCES ====================
559
+ % Table references (lowercase)
560
+ \providecommand{\onetableref}[1]{\hyperref[#1]{table~\ref*{#1}}}
561
+ \providecommand{\twotablerefs}[2]{\hyperref[#1]{tables~\ref*{#1} and~\ref*{#2}}}
562
+ \providecommand{\threetablerefs}[3]{\hyperref[#1]{tables~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
563
+ \providecommand{\fourtablerefs}[4]{\hyperref[#1]{tables~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
564
+
565
+ % Table references (capitalized)
566
+ \providecommand{\oneTableref}[1]{\hyperref[#1]{Table~\ref*{#1}}}
567
+ \providecommand{\twoTablerefs}[2]{\hyperref[#1]{Tables~\ref*{#1} and~\ref*{#2}}}
568
+ \providecommand{\threeTablerefs}[3]{\hyperref[#1]{Tables~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
569
+ \providecommand{\fourTablerefs}[4]{\hyperref[#1]{Tables~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
570
+
571
+ % ==================== EQUATION REFERENCES ====================
572
+ % Equation references (lowercase)
573
+ \providecommand{\oneeqref}[1]{\hyperref[#1]{equation~\ref*{#1}}}
574
+ \providecommand{\twoeqrefs}[2]{\hyperref[#1]{equations~\ref*{#1} and~\ref*{#2}}}
575
+ \providecommand{\threeeqrefs}[3]{\hyperref[#1]{equations~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
576
+ \providecommand{\foureqrefs}[4]{\hyperref[#1]{equations~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
577
+
578
+ % Equation references (capitalized)
579
+ \providecommand{\oneEqref}[1]{\hyperref[#1]{Equation~\ref*{#1}}}
580
+ \providecommand{\twoEqrefs}[2]{\hyperref[#1]{Equations~\ref*{#1} and~\ref*{#2}}}
581
+ \providecommand{\threeEqrefs}[3]{\hyperref[#1]{Equations~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
582
+ \providecommand{\fourEqrefs}[4]{\hyperref[#1]{Equations~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
583
+
584
+ % Plain equation reference
585
+ \providecommand{\plaineqref}[1]{\hyperref[#1]{\ref*{#1}}}
586
+
587
+ % ==================== ALGORITHM REFERENCES ====================
588
+ % Algorithm references (lowercase)
589
+ \providecommand{\onealgref}[1]{\hyperref[#1]{algorithm~\ref*{#1}}}
590
+ \providecommand{\twoalgrefs}[2]{\hyperref[#1]{algorithms~\ref*{#1} and~\ref*{#2}}}
591
+ \providecommand{\threealgrefs}[3]{\hyperref[#1]{algorithms~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
592
+ \providecommand{\fouralgrefs}[4]{\hyperref[#1]{algorithms~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
593
+
594
+ % Algorithm references (capitalized)
595
+ \providecommand{\oneAlgref}[1]{\hyperref[#1]{Algorithm~\ref*{#1}}}
596
+ \providecommand{\twoAlgrefs}[2]{\hyperref[#1]{Algorithms~\ref*{#1} and~\ref*{#2}}}
597
+ \providecommand{\threeAlgrefs}[3]{\hyperref[#1]{Algorithms~\ref*{#1},~\ref*{#2}, and~\ref*{#3}}}
598
+ \providecommand{\fourAlgrefs}[4]{\hyperref[#1]{Algorithms~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
599
+
600
+ % ==================== SECTION REFERENCES ====================
601
+ % Section references (lowercase)
602
+ \providecommand{\onesecref}[1]{\hyperref[#1]{section~\ref*{#1}}}
603
+ \providecommand{\twosecrefs}[2]{\hyperref[#1]{sections~\ref*{#1} and~\ref*{#2}}}
604
+ \providecommand{\threesecrefs}[3]{\hyperref[#1]{sections~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
605
+ \providecommand{\foursecrefs}[4]{\hyperref[#1]{sections~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
606
+ \providecommand{\rangesecrefs}[2]{\hyperref[#1]{sections~\ref*{#1}--\ref*{#2}}}
607
+
608
+ % Section references (capitalized)
609
+ \providecommand{\oneSecref}[1]{\hyperref[#1]{Section~\ref*{#1}}}
610
+ \providecommand{\twoSecrefs}[2]{\hyperref[#1]{Sections~\ref*{#1} and~\ref*{#2}}}
611
+ \providecommand{\threeSecrefs}[3]{\hyperref[#1]{Sections~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
612
+ \providecommand{\fourSecrefs}[4]{\hyperref[#1]{Sections~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
613
+ \providecommand{\rangeSecrefs}[2]{\hyperref[#1]{Sections~\ref*{#1}--\ref*{#2}}}
614
+
615
+ % ==================== CHAPTER REFERENCES ====================
616
+ % Chapter references (lowercase)
617
+ \providecommand{\onechapref}[1]{\hyperref[#1]{chapter~\ref*{#1}}}
618
+ \providecommand{\twochaprefs}[2]{\hyperref[#1]{chapters~\ref*{#1} and~\ref*{#2}}}
619
+ \providecommand{\threechaprefs}[3]{\hyperref[#1]{chapters~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
620
+ \providecommand{\fourchaprefs}[4]{\hyperref[#1]{chapters~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
621
+ \providecommand{\rangechaprefs}[2]{\hyperref[#1]{chapters~\ref*{#1}--\ref*{#2}}}
622
+
623
+ % Chapter references (capitalized)
624
+ \providecommand{\oneChapref}[1]{\hyperref[#1]{Chapter~\ref*{#1}}}
625
+ \providecommand{\twoChaprefs}[2]{\hyperref[#1]{Chapters~\ref*{#1} and~\ref*{#2}}}
626
+ \providecommand{\threeChaprefs}[3]{\hyperref[#1]{Chapters~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
627
+ \providecommand{\fourChaprefs}[4]{\hyperref[#1]{Chapters~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
628
+ \providecommand{\rangeChaprefs}[2]{\hyperref[#1]{Chapters~\ref*{#1}--\ref*{#2}}}
629
+
630
+ % ==================== PART REFERENCES ====================
631
+ % Part references (lowercase)
632
+ \providecommand{\onepartref}[1]{\hyperref[#1]{part~\ref*{#1}}}
633
+ \providecommand{\twopartrefs}[2]{\hyperref[#1]{parts~\ref*{#1} and~\ref*{#2}}}
634
+ \providecommand{\threepartrefs}[3]{\hyperref[#1]{parts~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
635
+ \providecommand{\fourpartrefs}[4]{\hyperref[#1]{parts~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
636
+ \providecommand{\rangepartrefs}[2]{\hyperref[#1]{parts~\ref*{#1}--\ref*{#2}}}
637
+
638
+ % Part references (capitalized)
639
+ \providecommand{\onePartref}[1]{\hyperref[#1]{Part~\ref*{#1}}}
640
+ \providecommand{\twoPartrefs}[2]{\hyperref[#1]{Parts~\ref*{#1} and~\ref*{#2}}}
641
+ \providecommand{\threePartrefs}[3]{\hyperref[#1]{Parts~\ref*{#1},~\ref*{#2} and~\ref*{#3}}}
642
+ \providecommand{\fourPartrefs}[4]{\hyperref[#1]{Parts~\ref*{#1},~\ref*{#2},~\ref*{#3} and~\ref*{#4}}}
643
+ \providecommand{\rangePartrefs}[2]{\hyperref[#1]{Parts~\ref*{#1}--\ref*{#2}}}
644
+
645
+ % ==================== IMPLEMENTATION NOTES ====================
646
+ % 1. All commands use \providecommand to prevent redefine errors
647
+ % 2. Hyperlinks are attached to the full reference text
648
+ % 3. \ref* prevents nested hyperlinks within \hyperref
649
+ % 4. Punctuation follows English typesetting conventions
650
+ % 5. Requires packages:
651
+ % \usepackage{hyperref} % For hyperlink support
652
+ % \usepackage{cleveref} % Optional for advanced referencing
653
+
654
+ % ==================== RECOMMENDED PRACTICES ====================
655
+ % 1. Use consistent label prefixes (fig:, tab:, eq:, etc.)
656
+ % 2. For advanced features, consider using cleveref instead:
657
+ % \crefname{figure}{figure}{figures} % Singular/plural forms
658
+ % \Crefname{figure}{Figure}{Figures} % Capitalized versions
659
+ % Then use \cref{fig:1} or \Cref{fig:1} for auto-formatting
660
+
661
+ %%%-------------------------------------------------------------------------%%%
662
+ %% newcommand for math
663
+ \newcommand{\abs}[1]{\left\vert#1\right\vert}
664
+ \newcommand{\norm}[1]{\left\Vert#1\right\Vert}
665
+ \newcommand{\ceil}[1]{\lceil#1\rceil}
666
+ \newcommand{\floor}[1]{\lfloor#1\rfloor}
667
+
668
+ %% DeclareMathOperator
669
+ \DeclareMathOperator*{\argmax}{arg\,max}
670
+ \DeclareMathOperator*{\argmin}{arg\,min}
671
+ \DeclareMathOperator{\sign}{sign}
672
+ \DeclareMathOperator{\Tr}{Tr}
673
+
674
+ %%%-------------------------------------------------------------------------%%%
675
+ %% newcommand for table
676
+ \newcommand{\mr}[2]{\multirow{#1}{#2}}
677
+ \newcommand{\mc}[2]{\multicolumn{#1}{#2}}
678
+
679
+ %%%-------------------------------------------------------------------------%%%
680
+ %% Highlight a newly defined term
681
+ \newcommand{\newterm}[1]{{\textbf #1}}
@@ -1,9 +1,3 @@
1
- """Main module for PyEasyPhD core functionality.
2
-
3
- This module contains the core classes for processing academic papers,
4
- managing bibliographies, and converting between different formats.
5
- """
6
-
7
1
  __all__ = ["BasicInput", "PandocMdTo", "PythonRunMd", "PythonRunTex"]
8
2
 
9
3
  from .basic_input import BasicInput
@@ -0,0 +1,12 @@
1
+ __all__ = [
2
+ "run_article_md_daily_notes",
3
+ "run_article_tex_submit",
4
+ "run_beamer_tex_weekly_reports",
5
+ "run_search_for_files",
6
+ "run_search_for_screen",
7
+ ]
8
+
9
+ from .run_article_md import run_article_md_daily_notes
10
+ from .run_article_tex import run_article_tex_submit
11
+ from .run_beamer_tex import run_beamer_tex_weekly_reports
12
+ from .run_search_keywords import run_search_for_files, run_search_for_screen
@@ -0,0 +1,159 @@
1
+ import os
2
+ from typing import Any, Dict, List
3
+
4
+ from pyeasyphd.tools import Searchkeywords
5
+
6
+
7
+ def run_search_for_screen(
8
+ acronym: str,
9
+ year: int,
10
+ title: str,
11
+ path_spidered_bibs: str,
12
+ path_spidering_bibs: str,
13
+ path_conferences_journals_json: str,
14
+ ) -> None:
15
+ """
16
+ Run search for screen display with specific conference/journal parameters.
17
+
18
+ Args:
19
+ acronym: Conference/journal acronym to search for
20
+ year: Publication year to filter by
21
+ title: Paper title used as search keyword
22
+ path_spidered_bibs: Path to spidered bibliography files
23
+ path_spidering_bibs: Path to spidering bibliography files
24
+ path_conferences_journals_json: Path to conferences/journals JSON files
25
+ """
26
+ # Expand and normalize file paths
27
+ path_spidered_bibs = _expand_path(path_spidered_bibs)
28
+ path_spidering_bibs = _expand_path(path_spidering_bibs)
29
+ path_conferences_journals_json = _expand_path(path_conferences_journals_json)
30
+
31
+ # Configure search options
32
+ options = _build_search_options(
33
+ print_on_screen=True,
34
+ search_year_list=[str(year)],
35
+ include_publisher_list=[],
36
+ include_abbr_list=[acronym],
37
+ exclude_publisher_list=["arXiv"],
38
+ exclude_abbr_list=[],
39
+ keywords_type="Temp",
40
+ keywords_list_list=[[title]],
41
+ path_conferences_journals_json=path_conferences_journals_json,
42
+ )
43
+
44
+ # Execute searches across different bibliography sources
45
+ _execute_searches(options, "", path_spidered_bibs, path_spidering_bibs)
46
+
47
+
48
+ def run_search_for_files(
49
+ keywords_type: str,
50
+ keywords_list_list: List[List[str]],
51
+ path_main_output: str,
52
+ path_spidered_bibs: str,
53
+ path_spidering_bibs: str,
54
+ path_conferences_journals_json: str,
55
+ ) -> None:
56
+ """
57
+ Run search and save results to files with custom keywords.
58
+
59
+ Args:
60
+ keywords_type: Category name for the search keywords
61
+ keywords_list_list: Nested list of keywords to search for
62
+ path_main_output: Main output directory for search results
63
+ path_spidered_bibs: Path to spidered bibliography files
64
+ path_spidering_bibs: Path to spidering bibliography files
65
+ path_conferences_journals_json: Path to conferences/journals JSON files
66
+ """
67
+ # Expand and normalize file paths
68
+ path_main_output = _expand_path(path_main_output)
69
+ path_spidered_bibs = _expand_path(path_spidered_bibs)
70
+ path_spidering_bibs = _expand_path(path_spidering_bibs)
71
+ path_conferences_journals_json = _expand_path(path_conferences_journals_json)
72
+
73
+ # Configure search options
74
+ options = _build_search_options(
75
+ print_on_screen=False,
76
+ search_year_list=[],
77
+ include_publisher_list=[],
78
+ include_abbr_list=[],
79
+ exclude_publisher_list=["arXiv"],
80
+ exclude_abbr_list=[],
81
+ keywords_type=keywords_type,
82
+ keywords_list_list=keywords_list_list,
83
+ path_conferences_journals_json=path_conferences_journals_json,
84
+ )
85
+
86
+ # Execute searches across different bibliography sources
87
+ _execute_searches(options, path_main_output, path_spidered_bibs, path_spidering_bibs)
88
+
89
+
90
+ def _expand_path(path: str) -> str:
91
+ """Expand user home directory and environment variables in path."""
92
+ return os.path.expandvars(os.path.expanduser(path))
93
+
94
+
95
+ def _build_search_options(
96
+ print_on_screen: bool,
97
+ search_year_list: List[str],
98
+ include_publisher_list: List[str],
99
+ include_abbr_list: List[str],
100
+ exclude_publisher_list: List[str],
101
+ exclude_abbr_list: List[str],
102
+ keywords_type: str,
103
+ keywords_list_list: List[List[str]],
104
+ path_conferences_journals_json: str,
105
+ ) -> Dict[str, Any]:
106
+ """
107
+ Build search options dictionary with common configuration.
108
+
109
+ Args:
110
+ print_on_screen: Whether to display results on screen
111
+ search_year_list: List of years to filter search results
112
+ include_publisher_list: List of publishers to include
113
+ include_abbr_list: List of conference/journal abbreviations to include
114
+ exclude_publisher_list: List of publishers to exclude from search
115
+ exclude_abbr_list: List of conference/journal abbreviations to exclude from search
116
+ keywords_type: Category name for search keywords
117
+ keywords_list_list: Nested list of search keywords
118
+ path_conferences_journals_json: Base path for conferences/journals JSON files
119
+
120
+ Returns:
121
+ Dictionary containing configured search options
122
+ """
123
+ return {
124
+ "print_on_screen": print_on_screen,
125
+ "search_year_list": search_year_list,
126
+ "include_publisher_list": include_publisher_list,
127
+ "include_abbr_list": include_abbr_list,
128
+ "exclude_publisher_list": exclude_publisher_list,
129
+ "exclude_abbr_list": exclude_abbr_list,
130
+ "keywords_dict": {keywords_type: keywords_list_list},
131
+ "keywords_type_list": [keywords_type],
132
+ "full_json_c": os.path.join(path_conferences_journals_json, "conferences.json"),
133
+ "full_json_j": os.path.join(path_conferences_journals_json, "journals.json"),
134
+ }
135
+
136
+
137
+ def _execute_searches(
138
+ options: Dict[str, Any], path_main_output: str, path_spidered_bibs: str, path_spidering_bibs: str
139
+ ) -> None:
140
+ """
141
+ Execute searches across different bibliography sources.
142
+
143
+ Args:
144
+ options: Search configuration options
145
+ path_main_output: Base path for search results output
146
+ path_spidered_bibs: Path to spidered bibliography files
147
+ path_spidering_bibs: Path to spidering bibliography files
148
+ """
149
+ # Search in spidered bibliographies (Conferences and Journals)
150
+ for cj in ["Conferences", "Journals"]:
151
+ path_storage = os.path.join(path_spidered_bibs, cj)
152
+ path_output = os.path.join(path_main_output, "Search_spidered_bib", cj)
153
+ Searchkeywords(path_storage, path_output, options).run()
154
+
155
+ # Search in spidering bibliographies (Journals and Journals Early Access)
156
+ for je in ["spider_j", "spider_j_e"]:
157
+ path_storage = os.path.join(path_spidering_bibs, je)
158
+ path_output = os.path.join(path_main_output, "Search_spidering_bib", je)
159
+ Searchkeywords(path_storage, path_output, options).run()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyeasyphd"
3
- version = "0.3.2"
3
+ version = "0.3.4"
4
4
  description = "pyeasyphd"
5
5
  license = "GPL-3.0-or-later"
6
6
  authors = ["NextAI <nextartifintell@gmail.com>"]
File without changes
File without changes