From c8e15b68086c7c9b6fdfb816b8fe1c8e020a9989 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 6 Jun 2016 23:08:53 +0000
Subject: linop (6jun16)

git-svn-id: svn://tug.org/texlive/trunk@41304 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/linop/linop.sty | 99 +++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/linop/linop.sty

(limited to 'Master/texmf-dist/tex/latex/linop/linop.sty')

diff --git a/Master/texmf-dist/tex/latex/linop/linop.sty b/Master/texmf-dist/tex/latex/linop/linop.sty
new file mode 100644
index 00000000000..f53938b4fab
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/linop/linop.sty
@@ -0,0 +1,99 @@
+%% linop.sty
+%% Copyright 2016 Johannes Weytjens
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+% 
+% The Current Maintainer of this work is Johannes Weytjens
+%
+% This work consists of the file linop.sty
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{linop}
+
+\RequirePackage{xparse}
+\RequirePackage{bm}
+
+% provide commands that can be easily be renewed to change the style
+\newcommand{\linopstyle}{\hat}
+\newcommand{\linopstylewide}{\widehat}
+\newcommand{\linopspacewide}{\>}
+\newcommand{\linopspacewidehc}{\:}
+\newcommand{\linopconjugate}{\dagger}
+\newcommand{\linopsubscript}{\mathstrut}
+\newcommand{\linopsuperscript}{\mathstrut}
+\newcommand{\linopsuperscripthc}{\mathstrut}
+
+% main commands
+\DeclareDocumentCommand{\op}{s O{\linopspacewide} m G{} G{} G{}}{%
+    \IfBooleanTF#1%
+    {\linopstylewide{#3}_{\linopsubscript#4}^{#2 #5^{#6}\linopsuperscript}}
+    {\linopstyle{#3}_{\linopsubscript#4}^{#5^{#6}\linopsuperscript}}
+}
+
+\DeclareDocumentCommand{\hc}{s O{\linopspacewidehc} m G{} G{} G{}}{%
+    \IfBooleanTF#1%
+    {\linopstylewide{#3}_{\linopsubscript#4}^{#2 \linopconjugate#5^{#6}\linopsuperscripthc}}
+    {\linopstyle{#3}_{\linopsubscript#4}^{\linopconjugate#5^{#6}\linopsuperscripthc}}
+}
+
+% options
+\DeclareOption{bold}{%
+    \renewcommand{\linopstyle}{\mathbf}
+    \renewcommand{\linopstylewide}{\linopstyle}
+    \renewcommand{\linopspacewide}{}
+    \renewcommand{\linopspacewidehc}{}
+    
+}
+
+\DeclareOption{bmbold}{%
+    \renewcommand{\linopstyle}{\bm}
+    \renewcommand{\linopstylewide}{\linopstyle}
+    \renewcommand{\linopspacewide}{}
+    \renewcommand{\linopspacewidehc}{}
+}
+
+\DeclareOption{wide}{%
+    \@ifpackagewith{linop}{bold}{\PackageWarning{linop}{The wide option will override the bold option. You probably want to choose one but not both.}}{}
+    \renewcommand{\linopstyle}{\widehat}
+}
+
+\DeclareOption{nohat}{%
+    \renewcommand{\linopstyle}{}
+    \newcommand{\linopstylewide}{}
+}
+
+\DeclareOption{star}{%
+    \renewcommand{\linopconjugate}{*}
+}
+
+\DeclareOption{compact}{%
+    \renewcommand{\linopsubscript}{}
+    \renewcommand{\linopsuperscript}{\phantom{\dagger}}
+    \renewcommand{\linopsuperscripthc}{}
+}
+
+\DeclareOption{square}{%
+    \DeclareDocumentCommand{\op}{s O{\linopspacewide} m O{} O{} O{}}{%
+        \IfBooleanTF#1%
+        {\linopstylewide{#3}_{\linopsubscript#4}^{#2 #5^{#6}\linopsuperscript}}
+        {\linopstyle{#3}_{\linopsubscript#4}^{#5^{#6}\linopsuperscript}}
+    }
+
+    \DeclareDocumentCommand{\hc}{s O{\linopspacewidehc} m O{} O{} O{}}{%
+        \IfBooleanTF#1%
+        {\linopstylewide{#3_{\linopsubscript#4}^{#2 \linopconjugate#5^{#6}\linopsuperscripthc}}}
+        {\linopstyle{#3}_{\linopsubscript#4}^{\linopconjugate#5^{#6}\linopsuperscripthc}}
+    }
+}
+
+\ProcessOptions\relax
+
+\endinput
-- 
cgit v1.2.3

