summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-03-01 22:31:15 +0000
committerKarl Berry <karl@freefriends.org>2017-03-01 22:31:15 +0000
commit3a4f76b867a45eb994cf92a02f45d54ebb3cbb34 (patch)
tree91078daf50eca1c8412fd25ca19b432157086452 /Master/texmf-dist
parenta27782c0a2594f4f1c8f2c7b3c2b78d19fd760cd (diff)
fnspe (1mar17)
git-svn-id: svn://tug.org/texlive/trunk@43373 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/fnspe/README35
-rw-r--r--Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE7
-rwxr-xr-xMaster/texmf-dist/doc/latex/fnspe/fnspe.pdfbin0 -> 177301 bytes
-rwxr-xr-xMaster/texmf-dist/doc/latex/fnspe/fnspe.tex481
-rw-r--r--Master/texmf-dist/tex/latex/fnspe/fnspe.sty339
5 files changed, 687 insertions, 175 deletions
diff --git a/Master/texmf-dist/doc/latex/fnspe/README b/Master/texmf-dist/doc/latex/fnspe/README
index 4ecf6cf421e..84dc0c3fd28 100644
--- a/Master/texmf-dist/doc/latex/fnspe/README
+++ b/Master/texmf-dist/doc/latex/fnspe/README
@@ -1,19 +1,18 @@
-README for fnspe.sty
-
-fnspe 1.0
-Created by Michal Zeman
-Updated February 27, 2017
-
-E-mail comments and suggestions to: michalzemaster@gmail.com
-GIT contribution: https://bitbucket.org/Zemaster/fnspe-latex-package
-
-This material is subject to the LaTeX Project Public License.
-See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html for
-the details of that license.
-
-This package is primary intended for students of FNSPE CTU in Prague
-but many other students or scientists can found this package as useful.
-
-This package implements different standards of tensor notation,
-interval notation and complex notation. Further many macros and
+README for fnspe.sty
+
+fnspe 1.1b
+Created by Michal Zeman
+Updated February 28, 2017
+
+E-mail comments and suggestions to: michalzemaster@gmail.com
+GIT contribution: https://bitbucket.org/Zemaster/fnspe-latex-package
+
+This material is subject to the LaTeX Project Public License.
+See https://www.latex-project.org/lppl/ for the details of that license.
+
+This package is primary intended for students of FNSPE CTU in Prague
+but many other students or scientists can found this package as useful.
+
+This package implements different standards of tensor notation,
+interval notation and complex notation. Further many macros and
shortcuts are added, e.q. for spaces, operators, physics unit, etc. \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE b/Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE
deleted file mode 100644
index 8f771caf4d9..00000000000
--- a/Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE
+++ /dev/null
@@ -1,7 +0,0 @@
-The following files have been removed in the TeX Live installation of
-the current package, typically due to duplication, lack of space, or
-missing source code. You can find these files on CTAN at
- http://mirror.ctan.org/macros/latex/contrib/fnspe
-If questions or concerns, email tex-live@tug.org.
-
- fnspe.pdf
diff --git a/Master/texmf-dist/doc/latex/fnspe/fnspe.pdf b/Master/texmf-dist/doc/latex/fnspe/fnspe.pdf
new file mode 100755
index 00000000000..df0ee007330
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fnspe/fnspe.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fnspe/fnspe.tex b/Master/texmf-dist/doc/latex/fnspe/fnspe.tex
new file mode 100755
index 00000000000..c64cc357a53
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fnspe/fnspe.tex
@@ -0,0 +1,481 @@
+% fnspe 1.1b
+% This material is subject to the LaTeX Project Public License.
+% See https://www.latex-project.org/lppl/ for the details of that license.
+%
+% Useful commands for FNSPE students
+%
+% Created by Michal Zeman
+% Updated on February 28, 2017
+% Uploaded on February 28, 2017
+
+\documentclass{article}
+\usepackage[arrowtensor,oldcomplex]{zefnspe}
+\usepackage{hyperref}
+\begin{document}
+ \section*{Options}
+
+ In this package there are three types of options (examples and differences will be shown further)
+ \begin{enumerate}
+ \item for interval notation
+ \begin{itemize}
+ \item \texttt{isointerval} for using standardized format of interval described in \textbf{ISO 31-11}
+ \item \texttt{isoointerval} for using standardized alternative format of interval described in \textbf{ISO 31-11}
+ \item \texttt{fnspeinterval} for using special notation used at FNSPE CTU in Prague
+ \end{itemize}
+ \item for tensor notation (now for vectors and matrices)
+ \begin{itemize}
+ \item \texttt{isotensor} for using standardized format of tensor
+ \item \texttt{undertensor} for using underline notation of tensor
+ \item \texttt{arrowtensor} for using arrow notation of tensor
+ \end{itemize}
+ \item for complex notation (real and complex part)
+ \begin{itemize}
+ \item \texttt{isocomplex} for using standardized format of complex and real part
+ \item \texttt{oldcomplex} for using old \LaTeX{} default format of complex and real part
+ \end{itemize}
+ \end{enumerate}
+
+ \section*{Macros}
+ \subsection*{Interval}
+ Let $a$ and $b$ be real numbers.
+
+ \subsubsection*{Closed interval}
+ Using of macro
+ \begin{lstlisting}
+ \ci{a}{b}
+ \end{lstlisting}
+ as \textbf{c}losed \textbf{i}nterval.
+
+ \begin{itemize}
+ \item \texttt{isointerval}
+ \begin{equation*}
+ \left[ a , b \right]
+ \end{equation*}
+ \item \texttt{isoointerval} (same as for \texttt{isointerval})
+ \begin{equation*}
+ \left[ a , b \right]
+ \end{equation*}
+ \item \texttt{fnspeinterval}
+ \begin{equation*}
+ \left< a , b \right>
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Opened interval}
+ Using of macro
+ \begin{lstlisting}
+ \oi{a}{b}
+ \end{lstlisting}
+ as \textbf{o}pened \textbf{i}nterval.
+
+ \begin{itemize}
+ \item \texttt{isointerval}
+ \begin{equation*}
+ \left] a , b \right[
+ \end{equation*}
+ \item \texttt{isoointerval}
+ \begin{equation*}
+ \left( a , b \right)
+ \end{equation*}
+ \item \texttt{fnspeinterval} (same as for \texttt{isoointerval})
+ \begin{equation*}
+ \left( a , b \right)
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Right closed interval}
+ Using of macro
+ \begin{lstlisting}
+ \rci{a}{b}
+ \end{lstlisting}
+ as \textbf{r}ight \textbf{c}losed \textbf{i}nterval.
+
+ \begin{itemize}
+ \item \texttt{isointerval}
+ \begin{equation*}
+ \left] a , b \right]
+ \end{equation*}
+ \item \texttt{isoointerval}
+ \begin{equation*}
+ \left( a , b \right]
+ \end{equation*}
+ \item \texttt{fnspeinterval}
+ \begin{equation*}
+ \left( a , b \right>
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Left closed interval}
+ Using of macro
+ \begin{lstlisting}
+ \lci{a}{b}
+ \end{lstlisting}
+ as \textbf{l}eft \textbf{c}losed \textbf{i}nterval.
+
+ \begin{itemize}
+ \item \texttt{isointerval}
+ \begin{equation*}
+ \left[ a , b \right[
+ \end{equation*}
+ \item \texttt{isoointerval} (same as for \texttt{isointerval})
+ \begin{equation*}
+ \left[ a , b \right)
+ \end{equation*}
+ \item \texttt{fnspeinterval}
+ \begin{equation*}
+ \left< a , b \right)
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Using in text}
+ All these macros can be used directly in text (thanks to the command \textit{ensuremath}). Therefore one can use this syntax
+ \begin{lstlisting}
+ Let $x$ be in \ci{a}{b}
+ \end{lstlisting}
+ which casts: Let $x$ be in \ci{a}{b}.
+
+ \subsection*{Tensor}
+ Let $x$ be vector and $A$ be matrix.
+
+ \subsubsection*{Vector}
+ Using of macro
+ \begin{lstlisting}
+ \vec{x}
+ \end{lstlisting}
+ as \textbf{vec}tor.
+
+ \begin{itemize}
+ \item \texttt{isotensor} - small letter with italic boldface
+ \begin{equation*}
+ \bm{\mathrm{x}}
+ \end{equation*}
+ \item \texttt{undertensor}
+ \begin{equation*}
+ \underline{x}
+ \end{equation*}
+ \item \texttt{arrowtensor}
+ \begin{equation*}
+ \vec x
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Matrix}
+ Using of macro
+ \begin{lstlisting}
+ \mat{x}
+ \end{lstlisting}
+ as \textbf{mat}rix.
+
+ \begin{itemize}
+ \item \texttt{isotensor} - capital letter with italic boldface
+ \begin{equation*}
+ \bm{\mathrm{A}}
+ \end{equation*}
+ \item \texttt{undertensor}
+ \begin{equation*}
+ \underline{\underline{A}}
+ \end{equation*}
+ \item \texttt{arrowtensor}
+ \begin{equation*}
+ \mat{A}
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Using in text}
+ All these macros can be used directly in text (thanks to the command \textit{ensuremath}). Therefore one can use this syntax
+ \begin{lstlisting}
+ Let \vec{x} be real.
+ \end{lstlisting}
+ which casts: Let \vec{x} be real.
+
+ \subsection*{Complex}
+ Let $z \in \compn$.
+
+ \subsubsection*{Real part}
+ Using of macro
+ \begin{lstlisting}
+ \Re{x}
+ \end{lstlisting}
+ as \textbf{Re}al.
+
+ \begin{itemize}
+ \item \texttt{oldcomplex}
+ \begin{equation*}
+ \Re\left\{z\right\}
+ \end{equation*}
+ \item \texttt{isocomplex}
+ \begin{equation*}
+ \mathrm{Re}\; z
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Imaginary part}
+ Using of macro
+ \begin{lstlisting}
+ \Im{x}
+ \end{lstlisting}
+ as \textbf{Im}aginary.
+
+ \begin{itemize}
+ \item \texttt{oldcomplex}
+ \begin{equation*}
+ \Im\left\{z\right\}
+ \end{equation*}
+ \item \texttt{isocomplex}
+ \begin{equation*}
+ \mathrm{Im}\; z
+ \end{equation*}
+ \end{itemize}
+
+ \subsubsection*{Using in text}
+ All these macros can be used directly in text (thanks to the command \textit{ensuremath}). Therefore one can use this syntax
+ \begin{lstlisting}
+ Let $x$ equal to \Re{z}.
+ \end{lstlisting}
+ which casts: Let $x$ equal to $\mathrm{Re}\;z$.
+
+ \subsection*{Subscript}
+ In scientific \LaTeX{} text with two or more character should be in roman style (not italic as default), due to one can use prefix ! which make the word after it in roman style. Using of macro
+ \begin{lstlisting}
+ A_{!unique}
+ \end{lstlisting}
+ which leads to
+ \begin{equation*}
+ A_{!unigue}
+ \end{equation*}
+ instead of classic
+ \begin{equation*}
+ A_{unique}
+ \end{equation*}
+
+ \subsection*{Special sets of numbers}
+
+ \subsubsection*{Natural number}
+ Macro
+ \begin{lstlisting}
+ \natun
+ \end{lstlisting}
+ as \textbf{natu}ral \textbf{n}umber leads to
+ \begin{equation*}
+ \natun
+ \end{equation*}
+
+ \subsubsection*{Integers}
+ Macro
+ \begin{lstlisting}
+ \inte
+ \end{lstlisting}
+ as \textbf{inte}regers leads to
+ \begin{equation*}
+ \inte
+ \end{equation*}
+
+ \subsubsection*{Rational number}
+ Macro
+ \begin{lstlisting}
+ \ratin
+ \end{lstlisting}
+ as \textbf{rati}onal \textbf{n}umber leads to
+ \begin{equation*}
+ \ratin
+ \end{equation*}
+
+ \subsubsection*{Real number}
+ Macro
+ \begin{lstlisting}
+ \realn
+ \end{lstlisting}
+ as \textbf{real} \textbf{n}umber leads to
+ \begin{equation*}
+ \realn
+ \end{equation*}
+
+ \subsubsection*{Complex number}
+ Macro
+ \begin{lstlisting}
+ \compn
+ \end{lstlisting}
+ as \textbf{comp}ex \textbf{n}umber leads to
+ \begin{equation*}
+ \compn
+ \end{equation*}
+
+ \subsubsection*{Using in text}
+ All these macros can be used directly in text (thanks to the command \textit{ensuremath}). Therefore one can use this syntax
+ \begin{lstlisting}
+ Let $n$ be in \natun
+ \end{lstlisting}
+ which casts: Let $n$ be in \natun.
+
+ \subsection*{Derivative}
+ It is derived from \textit{physics} package. The manual is \href{http://mirrors.ctan.org/macros/latex/contrib/physics/physics.pdf}{here}.
+
+ \subsection*{Operator}
+ Partially derived from \textit{physics} package.
+
+ \subsubsection*{Gradient}
+ Macro
+ \begin{lstlisting}
+ \grad
+ \end{lstlisting}
+ as \textbf{grad}ient leads to
+ \begin{equation*}
+ \grad
+ \end{equation*}
+
+ \subsubsection*{Divergence}
+ Macro
+ \begin{lstlisting}
+ \div
+ \end{lstlisting}
+ as \textbf{div}ergence leads to
+ \begin{equation*}
+ \div
+ \end{equation*}
+
+ Derived from \textit{physics} package, old mean of this command as math symbol from dividing has alias as
+ \begin{lstlisting}
+ \divisionsymbol
+ \end{lstlisting}
+ which cast
+ \begin{equation*}
+ \divisionsymbol
+ \end{equation*}
+
+ \subsubsection*{Rotation}
+ In English literature as \textbf{curl} operator has macro
+ \begin{lstlisting}
+ \rot
+ \end{lstlisting}
+ as \textbf{rot}ation and leads to
+ \begin{equation*}
+ \rot
+ \end{equation*}
+
+ One can also use \textit{physics} package command
+ \begin{lstlisting}
+ \curl
+ \end{lstlisting}
+
+ \subsubsection*{Laplacian}
+ Macro
+ \begin{lstlisting}
+ \lapl
+ \end{lstlisting}
+ as \textbf{lapl}acian leads to
+ \begin{equation*}
+ \lapl
+ \end{equation*}
+
+ One can also use \textit{physics} package notation
+ \begin{equation*}
+ \laplacian
+ \end{equation*}
+ which is cast by macro
+ \begin{lstlisting}
+ \laplacian
+ \end{lstlisting}
+
+ \section*{Degree}
+ Macro
+ \begin{lstlisting}
+ \degree
+ \end{lstlisting}
+ as \textbf{degree} leads to \degree. Can be used without math mode.
+
+ \section*{Physics unit}
+ \subsubsection*{Variable unit}
+ Macro
+ \begin{lstlisting}
+ \varun{m}{kg}
+ \end{lstlisting}
+ as \textbf{var}iable \textbf{un}it leads to
+ \begin{equation*}
+ \varun{m}{kg}
+ \end{equation*}
+
+ This macro can be used directly in text (thanks to the \textit{ensure} function). Therefore one can use
+ \begin{lstlisting}
+ where \varun{m}{kg} is the mass.
+ \end{lstlisting}
+ which casts: where \varun{m}{kg} is the mass.
+
+ \subsubsection*{Unit}
+ Macro
+ \begin{lstlisting}
+ m\unit{kg}
+ \end{lstlisting}
+ as \textbf{unit} leads to
+ \begin{equation*}
+ m\unit{kg}
+ \end{equation*}
+ This macro looks as
+ \begin{lstlisting}
+ \;\mathrm{kg}
+ \end{lstlisting}
+ the space before the roman characters is very important in science publications.
+
+ \subsection*{Expected value}
+ Macro
+ \begin{lstlisting}
+ \expv{x}
+ \end{lstlisting}
+ as \textbf{exp}ected \textbf{v}alue leads to
+ \begin{equation*}
+ \expv{x}
+ \end{equation*}
+
+ \section*{Shortcuts}
+ \subsubsection*{One half}
+ Macro
+ \begin{lstlisting}
+ \hlf
+ \end{lstlisting}
+ as \textbf{h}a\textbf{lf} leads to
+ \begin{equation*}
+ \hlf
+ \end{equation*}
+
+ \subsubsection*{One over }
+ Macro
+ \begin{lstlisting}
+ \oover{x}
+ \end{lstlisting}
+ as \textbf{o}ne \textbf{over} leads to
+ \begin{equation*}
+ \oover{x}
+ \end{equation*}
+
+ \section*{Spaces}
+ \subsubsection*{Horizontal space}
+ Macro
+ \begin{lstlisting}
+ \hem[width]
+ \end{lstlisting}
+ as \textbf{h}space\{\textbf{em}\} leads to horizontal space of specific width (multiples of em). Special case is 1em
+ \begin{lstlisting}
+ \mathrm{text}\hem\mathrm{text}
+ \end{lstlisting}
+ which leads to
+ \begin{equation*}
+ \mathrm{text}\hem\mathrm{text}
+ \end{equation*}
+ or shortcut form space with 2em width
+ \begin{lstlisting}
+ \mathrm{text}\htem\mathrm{text}
+ \end{lstlisting}
+ which casts
+ \begin{equation*}
+ \mathrm{text}\htem\mathrm{text}
+ \end{equation*}
+
+ \subsection*{Implies with em spaces}
+ Macro
+ \begin{lstlisting}
+ \impem
+ \end{lstlisting}
+ as \textbf{implies} with \textbf{em} spaces leads to
+ \begin{equation*}
+ \mathrm{text}\impem\mathrm{text}
+ \end{equation*}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/fnspe/fnspe.sty b/Master/texmf-dist/tex/latex/fnspe/fnspe.sty
index 1a394e1c927..409e1d11624 100644
--- a/Master/texmf-dist/tex/latex/fnspe/fnspe.sty
+++ b/Master/texmf-dist/tex/latex/fnspe/fnspe.sty
@@ -1,150 +1,189 @@
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{fnspe}[2017/02/27 Package for FNSPE CTU in Prague made by Michal Zeman]
-
-\RequirePackage{xstring}
-\RequirePackage{bm}
-
-\RequirePackage{amsmath}
-\RequirePackage{amsfonts}
-\RequirePackage{mathrsfs}
-\RequirePackage{amsthm}
-\RequirePackage{amssymb}
-\RequirePackage{xcolor}
-\RequirePackage{listings}
-\RequirePackage{physics}
-
-\newif\if@isointerval\@isointervalfalse
-\DeclareOption{isointerval}{
- \@isointervaltrue
-}
-
-\newif\if@isoointerval\@isoointervalfalse
-\DeclareOption{isoointerval}{
- \@isoointervaltrue
-}
-
-\newif\if@fnspeinterval\@fnspeintervalfalse
-\DeclareOption{fnspeinterval}{
- \@fnspeintervaltrue
-}
-
-\newif\if@isotensor\@isotensorfalse
-\DeclareOption{isotensor}{
- \@isotensortrue
-}
-
-\newif\if@undertensor\@undertensorfalse
-\DeclareOption{undertensor}{
- \@undertensortrue
-}
-
-\newif\if@arrowtensor\@arrowtensorfalse
-\DeclareOption{arrowtensor}{
- \@arrowtensortrue
-}
-
-\newif\if@oldcomplex\@oldcomplexfalse
-\DeclareOption{oldcomplex}{
- \@oldcomplextrue
-}
-
-\newif\if@isocomplex\@isocomplexfalse
-\DeclareOption{isocomplex}{
- \@isocomplextrue
-}
-
-\ProcessOptions\relax
-
-\lstset
-{
- language=[LaTeX]TeX,
- breaklines=true,
- basicstyle=\tt\scriptsize,
- morekeywords = [28]{ci,oi,lci,rci,rest,dif, hlf, degree, hem, htem, oover, realn, inte, ratin, compn, natun, impem, rot, dive, grad, lapl, varun, unit, expv, norm, abs, pder, tder,mat,curl,laplacian,divisionsymbol},
- keywordstyle=\color{blue},
- identifierstyle=\color{magenta},
-}
-
-%\catcode`_=\active
-
-%\newcommand_[1]{\IfSubStr{#1}{!}{\sb{\mathrm{\StrBehind{#1}{!}}}}{\sb{#1}} }
-
-\mathcode`\_=\string"8000
-\catcode`\_=12
-
-\begingroup
-\catcode`\_=\active
-\gdef_#1{\IfSubStr{#1}{!}{\sb{\mathrm{\StrBehind{#1}{!}}}}{\sb{#1}} }
-\endgroup
-\mathcode`\_=\string"8000
-\catcode`\_=12
-
-\if@arrowtensor
-\else
-\renewcommand{\vec}[1]{\ensuremath{\if@undertensor \underline{#1} \else \bm{\mathrm{\MakeLowercase{#1}}} \fi}}
-\fi
-
-\newcommand{\mat}[1]{\ensuremath{\if@undertensor \underline{\underline{#1}} \else \if@arrowtensor \overset{\leftrightarrow}{#1} \else \bm{\mathrm{\MakeUppercase{#1}}} \fi \fi}}
-
-%\newcommand{\pder}[3][]{\ensuremath{\frac{\partial^#1 #2}{\partial #3^#1}}} \pdv
-
-\newcommand*{\tder}[3][]{\dv[#1]{#2}{#3}} %\dv
-
-\newcommand{\oi}[2]{\ensuremath{\if@fnspeinterval \left( #1 , #2 \right) \else \if@isoointerval \left( #1 , #2 \right) \else \left] #1 , #2 \right[ \fi \fi}}
-
-\newcommand{\ci}[2]{\ensuremath{\if@fnspeinterval \left< #1 , #2 \right> \else \left[ #1 , #2 \right] \fi}}
-
-\newcommand{\rci}[2]{\ensuremath{\if@fnspeinterval \left( #1 , #2 \right> \else \if@isoointerval \left( #1 , #2 \right] \else \left] #1 , #2 \right] \fi \fi}}
-
-\newcommand{\lci}[2]{\ensuremath{\if@fnspeinterval \left< #1 , #2 \right) \else \if@isoointerval \left[ #1 , #2 \right) \else \left[ #1 , #2 \right[ \fi \fi}}
-
-%\newcommand{\rest}[2]{\ensuremath{\left.#1\right|_{#2}}}
-
-\newcommand{\dif}[1]{\ensuremath{\mathrm d #1}}
-
-\newcommand{\hlf}{\ensuremath{\frac{1}{2}}}
-
-\newcommand{\degree}{\ensuremath{{}^{\circ}}}
-%\newcommand{\deg}{\degree}
-
-\newcommand{\hem}[1][1]{\ensuremath{\hspace{#1em}}}
-\newcommand{\htwoem}{\ensuremath{\hspace{2em}}}
-\newcommand{\htem}{\ensuremath{\htwoem}}
-
-\newcommand{\oover}[1]{\ensuremath{\ensuremath{\frac{1}{#1}}}}
-
-\newcommand{\realn}{\ensuremath{\mathbb{R}}}
-\newcommand{\compn}{\ensuremath{\mathbb{C}}}
-\newcommand{\inte}{\ensuremath{\mathbb{Z}}}
-\newcommand{\ratin}{\ensuremath{\mathbb{Q}}}
-\newcommand{\natun}{\ensuremath{\mathbb{N}}}
-
-\newcommand{\impem}{\ensuremath{\hem \Rightarrow \hem}}
-
-\newcommand{\rot}{\ensuremath{\curl}}
-%\newcommand{\dive}{\ensuremath{\nabla \cdot}}
-%\newcommand{\grad}{\ensuremath{\nabla}}
-\newcommand{\lapl}{\ensuremath{\Delta}} %\laplacian
-
-\newcommand{\varun}[2]{\ensuremath{\left[#1\right]=\mathrm{#2}}}
-\newcommand{\unit}[1]{\ensuremath{\;\mathrm{#1}}}
-\newcommand{\expv}[1]{\ensuremath{\left<#1\right>}}
-
-%\newcommand{\norm}[1]{\ensuremath{\left|\left|#1\right|\right|}}
-%\newcommand{\abs}[1]{\ensuremath{\left|#1\right|}}
-
-\if@oldcomplex
-\renewcommand{\Re}{\mathfrak{Re}}
-\else
-\renewcommand{\Re}{\mathrm{Re}\;}
-\fi
-
-\if@oldcomplex
-\renewcommand{\Im}{\mathfrak{Im}}
-\else
-\renewcommand{\Im}{\mathrm{Im}\;}
-\fi
-
-%\newcommand{\maxv}[1]{\vec{\mathcal{#1}}}
-%\newcommand{\maxs}[1]{\mathcal{#1}}
-
+% fnspe 1.1b
+% This material is subject to the LaTeX Project Public License.
+% See https://www.latex-project.org/lppl/ for the details of that license.
+%
+% Useful commands for FNSPE students
+%
+% Created by Michal Zeman
+% Updated on February 28, 2017
+% Uploaded on February 28, 2017
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{fnspe}[2017/02/27 Package for FNSPE CTU in Prague made by Michal Zeman]
+
+\RequirePackage{xstring}
+\RequirePackage{bm}
+
+\RequirePackage{amsmath}
+\RequirePackage{amsfonts}
+\RequirePackage{mathrsfs}
+\RequirePackage{amsthm}
+\RequirePackage{amssymb}
+\RequirePackage{xcolor}
+\RequirePackage{listings}
+\RequirePackage{physics}
+\RequirePackage{tikz} % For arrow and dots in \xvec
+
+\newif\if@isointerval\@isointervalfalse
+\DeclareOption{isointerval}{
+ \@isointervaltrue
+}
+
+\newif\if@isoointerval\@isoointervalfalse
+\DeclareOption{isoointerval}{
+ \@isoointervaltrue
+}
+
+\newif\if@fnspeinterval\@fnspeintervalfalse
+\DeclareOption{fnspeinterval}{
+ \@fnspeintervaltrue
+}
+
+\newif\if@isotensor\@isotensorfalse
+\DeclareOption{isotensor}{
+ \@isotensortrue
+}
+
+\newif\if@undertensor\@undertensorfalse
+\DeclareOption{undertensor}{
+ \@undertensortrue
+}
+
+\newif\if@arrowtensor\@arrowtensorfalse
+\DeclareOption{arrowtensor}{
+ \@arrowtensortrue
+}
+
+\newif\if@oldcomplex\@oldcomplexfalse
+\DeclareOption{oldcomplex}{
+ \@oldcomplextrue
+}
+
+\newif\if@isocomplex\@isocomplexfalse
+\DeclareOption{isocomplex}{
+ \@isocomplextrue
+}
+
+\ProcessOptions\relax
+
+\newlength\xvec@height%
+\newlength\xvec@depth%
+\newlength\xvec@width%
+\newcommand{\xvec}[1]{%
+ \ifmmode%
+ \settoheight{\xvec@height}{$#1$}%
+ \settodepth{\xvec@depth}{$#1$}%
+ \settowidth{\xvec@width}{$#1$}%
+ \else%
+ \settoheight{\xvec@height}{#1}%
+ \settodepth{\xvec@depth}{#1}%
+ \settowidth{\xvec@width}{#1}%
+ \fi%
+ \raisebox{.2ex}{\raisebox{\xvec@height}{\rlap{%
+ \kern.05em% (Because left edge of drawing is at .05em)
+ \begin{tikzpicture}[scale=1]
+ \pgfsetroundcap
+ \draw (.05em,.01)--(\xvec@width-.05em,0.01);
+ \draw (\xvec@width-.05em,0.01)--(\xvec@width-.2em, .155em);
+ \draw (\xvec@width-.05em,0.01)--(\xvec@width-.2em,-.125em);
+ %
+ \end{tikzpicture}%
+ }}}%
+ #1%
+}
+
+\lstset
+{
+ language=[LaTeX]TeX,
+ breaklines=true,
+ basicstyle=\tt\scriptsize,
+ morekeywords = [28]{ci,oi,lci,rci,rest,dif, hlf, degree, hem, htem, oover, realn, inte, ratin, compn, natun, impem, rot, dive, grad, lapl, varun, unit, expv, norm, abs, pder, tder,mat,curl,laplacian,divisionsymbol},
+ keywordstyle=\color{blue},
+ identifierstyle=\color{magenta},
+}
+
+%\catcode`_=\active
+
+%\newcommand_[1]{\IfSubStr{#1}{!}{\sb{\mathrm{\StrBehind{#1}{!}}}}{\sb{#1}} }
+
+\mathcode`\_=\string"8000
+\catcode`\_=12
+
+\begingroup
+\catcode`\_=\active
+\gdef_#1{\IfSubStr{#1}{!}{\sb{\mathrm{\StrBehind{#1}{!}}}}{\sb{#1}} }
+\endgroup
+\mathcode`\_=\string"8000
+\catcode`\_=12
+
+%\let\stdvec\vec
+\if@arrowtensor
+\renewcommand{\vec}[1]{\xvec{#1}}
+\else
+\renewcommand{\vec}[1]{\ensuremath{\if@undertensor \underline{#1} \else \bm{\mathrm{\MakeLowercase{#1}}} \fi}}
+\fi
+
+\newcommand{\mat}[1]{\ensuremath{\if@undertensor \underline{\underline{#1}} \else \if@arrowtensor \overset{\leftrightarrow}{#1} \else \bm{\mathrm{\MakeUppercase{#1}}} \fi \fi}}
+
+%\newcommand{\pder}[3][]{\ensuremath{\frac{\partial^#1 #2}{\partial #3^#1}}} \pdv
+
+\newcommand*{\tder}[3][]{\dv[#1]{#2}{#3}} %\dv
+
+\newcommand{\oi}[2]{\ensuremath{\if@fnspeinterval \left( #1 , #2 \right) \else \if@isoointerval \left( #1 , #2 \right) \else \left] #1 , #2 \right[ \fi \fi}}
+
+\newcommand{\ci}[2]{\ensuremath{\if@fnspeinterval \left< #1 , #2 \right> \else \left[ #1 , #2 \right] \fi}}
+
+\newcommand{\rci}[2]{\ensuremath{\if@fnspeinterval \left( #1 , #2 \right> \else \if@isoointerval \left( #1 , #2 \right] \else \left] #1 , #2 \right] \fi \fi}}
+
+\newcommand{\lci}[2]{\ensuremath{\if@fnspeinterval \left< #1 , #2 \right) \else \if@isoointerval \left[ #1 , #2 \right) \else \left[ #1 , #2 \right[ \fi \fi}}
+
+%\newcommand{\rest}[2]{\ensuremath{\left.#1\right|_{#2}}}
+
+\newcommand{\dif}[1]{\mathrm d #1}
+
+\newcommand{\hlf}{\frac{1}{2}}
+
+\newcommand{\degree}{\ensuremath{{}^{\circ}}}
+%\newcommand{\deg}{\degree}
+
+\newcommand{\hem}[1][1]{\hspace{#1em}}
+\newcommand{\htwoem}{\hspace{2em}}
+\newcommand{\htem}{\htwoem}
+
+\newcommand{\oover}[1]{\ensuremath{\frac{1}{#1}}}
+
+\newcommand{\realn}{\ensuremath{\mathbb{R}}}
+\newcommand{\compn}{\ensuremath{\mathbb{C}}}
+\newcommand{\inte}{\ensuremath{\mathbb{Z}}}
+\newcommand{\ratin}{\ensuremath{\mathbb{Q}}}
+\newcommand{\natun}{\ensuremath{\mathbb{N}}}
+
+\newcommand{\impem}{\hem \Rightarrow \hem}
+
+\newcommand{\rot}{\curl}
+%\newcommand{\dive}{\ensuremath{\nabla \cdot}}
+%\newcommand{\grad}{\ensuremath{\nabla}}
+\newcommand{\lapl}{\Delta} %\laplacian
+
+\newcommand{\varun}[2]{\ensuremath{\left[#1\right]=\mathrm{#2}}}
+\newcommand{\unit}[1]{\;\mathrm{#1}}
+\newcommand{\expv}[1]{\left<#1\right>}
+
+%\newcommand{\norm}[1]{\ensuremath{\left|\left|#1\right|\right|}}
+%\newcommand{\abs}[1]{\ensuremath{\left|#1\right|}}
+
+\if@oldcomplex
+\renewcommand{\Re}{\ensuremath{\mathfrak{Re}}}
+\else
+\renewcommand{\Re}{\ensuremath{\mathrm{Re}\;}}
+\fi
+
+\if@oldcomplex
+\renewcommand{\Im}{\ensuremath{\mathfrak{Im}}}
+\else
+\renewcommand{\Im}{\ensuremath{\mathrm{Im}\;}}
+\fi
+
+%\newcommand{\maxv}[1]{\vec{\mathcal{#1}}}
+%\newcommand{\maxs}[1]{\mathcal{#1}}
+