The package EASYVECTOR

Enrico Bertolazzi

Department of Mechanics and Structures Engineering
University of Trento
via Mesiano 77, I - 38050 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

The package is loaded by means of 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 defines 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 as an index. 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 comma ``,'' is used as a separator between different indices, and the semi-colon ``;'' 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

It is possible to enforce vector mode also when using indices 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 to 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 old users (version $< 0.6$) the command \customindex is suppressed and the \newcustomvector is used instead.

The ``definevectors'' option

This option defines 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 it is common to use the notation $\AA[@,j]$ to denote the vector formed by the $j^{th}$ column of $\AA$. Note that $\AA$ is in vector format not in scalar format ($\AA[]$). We can use ``$\bullet$'' as an index in a vector forcing the vector mode by using @ as follows:


\[ \AA[@,j], \qquad \Balpha[i,j;@] \]

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

About this document ...

The package EASYVECTOR

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.61)

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 -transparent -local_icons -no_navigation -split 0 docvector

The translation was initiated by Enrico Bertolazzi on 2002-03-19


Enrico Bertolazzi 2002-03-19