From 3a4f76b867a45eb994cf92a02f45d54ebb3cbb34 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 1 Mar 2017 22:31:15 +0000 Subject: fnspe (1mar17) git-svn-id: svn://tug.org/texlive/trunk@43373 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/fnspe/README | 35 +- Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE | 7 - Master/texmf-dist/doc/latex/fnspe/fnspe.pdf | Bin 0 -> 177301 bytes Master/texmf-dist/doc/latex/fnspe/fnspe.tex | 481 +++++++++++++++++++++++ Master/texmf-dist/tex/latex/fnspe/fnspe.sty | 339 +++++++++------- 5 files changed, 687 insertions(+), 175 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/fnspe/README.TEXLIVE create mode 100755 Master/texmf-dist/doc/latex/fnspe/fnspe.pdf create mode 100755 Master/texmf-dist/doc/latex/fnspe/fnspe.tex (limited to 'Master/texmf-dist') 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 Binary files /dev/null and b/Master/texmf-dist/doc/latex/fnspe/fnspe.pdf 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}} + -- cgit v1.2.3