diff options
author | Karl Berry <karl@freefriends.org> | 2016-06-06 23:08:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-06-06 23:08:53 +0000 |
commit | c8e15b68086c7c9b6fdfb816b8fe1c8e020a9989 (patch) | |
tree | f5ac385f33fbabe72a4fde0497624299887ed9b2 /Master/texmf-dist/tex/latex/linop | |
parent | 6257b52105585a7cdd3a20b33339c06c9ac4cb86 (diff) |
linop (6jun16)
git-svn-id: svn://tug.org/texlive/trunk@41304 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/linop')
-rw-r--r-- | Master/texmf-dist/tex/latex/linop/linop.sty | 99 |
1 files changed, 99 insertions, 0 deletions
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 |