The package EASYVECTOR

Enrico Bertolazzi

Laboratorio di Matematica Applicata e Meccanica Computazionale
Dipartimento di Ingegneria Meccanica e Strutturale
Università degli Studi di Trento
Mesiano, Trento, Italy

enrico.bertolazzi@ing.unitn.it

Abstract:

The EASYVECTOR package is a simple macro package that provides a C-like syntax for writing vectors or matrices.


Contents

Some examples with EASYVECTOR

Load the package in the usual way:

  \documentclass{article}
  .
  .
  \usepackage[spacesep,definevectors]{easyvector}
  .
  .
The package option spacesep means that the separator for the indices is the command \smallspace instead of ``,'' (comma).

The package option definevectors means that the command \aa,..., \zz and \AA,..., \ZZ are predefined as vectors. It also define the commands \Balpha, \Bbeta and so on, as bold greek vectors. The latex commands \aa, \AA, \gg, \ll, \ss, \SS, \tt are saved in the commands \oldxx where xx is the name of the old command.

Use of the \newvector command

The general syntax of \newvector command is

  \newvector[\cmda,\cmdb]{cmd}
or

  \newvector(a)[cmd]
In the first case, it creates the new command (macro) \cmd which executes \cmda when in scalar mode, and \cmdb when in vector mode. In the second case it creates a new command \cmd which substitutes the letter \mathit{a} when in scalar, mode and \mathbf{a} when in vector mode. Scalar mode is activated when \cmd is immediately followed by [. In scalar mode everything between [ and ] (with balancing) is assumed to be indices. For example the commands


\newvector[\alpha,\beta]{W}
\newvector[X,\mathbf{X}]{X}
\[ \W = (\W[i,j]), \qquad \X = (\X[i,j;k])\]

\begin{center}\vbox{\input{docvector.1}
}\end{center}

The structure of the [...] command is the following


  [i,j,...,k;x,y,...,z]
where i,j,...,k are subscripts and x,y,...,z are superscripts. The character ``,'' is used as a separator between different indices, and the character ``;'' separates subscripts and superscripts. There are no limits on the number of indices, and the code is reentrant, as the following example illustrates


\newvector(a)[av]
\newvector(b)[bv]
\[ \av = \pmatrix{ \av[1,1] & \av[1,2] \cr
                   \av[2,1] & \av[2,2] \cr}, \qquad
   \bv = \left\{ \bv[\gamma,\bv[i,j;k];a] \right\}
\]

\begin{center}\vbox{\input{docvector.2}
}\end{center}

Use of the ! command

In some circumstances it is useful to force vector mode also when using indices. It is possible by using the character ! before [


\newvector(z)[zzz]
\[ \zzz[1,2,3] \neq \zzz![1,2,3] \]

\begin{center}\vbox{\input{docvector.3}
}\end{center}

Use of the \newcustomvector command

In some circumstances the command \newcustomvector can be useful. Is is essentially the \newvector command with an extra argument that is a macro for manage the index part.


\def\myindex[#1,#2,#3]{_{#1_{#2}}^{#3}}
\newcustomvector[\mathtt{a},\mathbf{a}]{aaa}\myindex
\[ \aaa[1,2,3], \qquad \aaa[3,2,1], \qquad \aaa \]

\begin{center}\vbox{\input{docvector.4}
}\end{center}

Important: For the old user (version $< 0.6$) the command \customindex is suppressed and the \newcustomvector is used instead.

The ``definevectors'' option

This option define the following vectors for you:

  \aa,\bb,...,\zz    \AA,\BB,...,\ZZ
  \Balpha, \Bbeta, ..., \Bomega
for example


\[
  \Balpha[i,j], \quad \Balpha,
  \quad \BB[i,j], \quad \BB,
\]

\begin{center}\vbox{\input{docvector.5}
}\end{center}

The ``@'' convention

In linear algebra sometimes with the notation $\AA[@,j]$ we denote the vector formed by the $j^{th}$ column of $\AA$. Notice that $\AA$ is in vector format not in scalar format ($\AA[]$). We can use a ``$\bullet$'' as a index in a vector forcing the vector mode by using @ as follows index


\[
  \Balpha[i,j], \quad \Balpha,
  \quad \BB[i,j], \quad \BB,
\]

\begin{center}\vbox{\input{docvector.5}
}\end{center}

About this document ...

The package EASYVECTOR

This document was generated using the LaTeX2HTML translator Version 99.1 release (March 30, 1999)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -local_icons -no_navigation -split 0 docvector

The translation was initiated by Bertolazzi Enrico on 1999-10-22


Bertolazzi Enrico
1999-10-22