%% 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