Return | Music Archive Home

HOWTO install MusiXTeX under Linux/Unix

Table of Contents

1 Updating existing MusiXTeX software

Start by unpacking the latest version of the MusiXTeX distribution, for example musixtex-t112.zip

into a temporary directory, for example /usr/local/src/.

You need to know the locations of the MusiXTeX macros and METAFONT font sources. Use the command

kpsewhich musixtex.tex

to look up the directory storing the MusiXTeX macros. The output will be something like /usr/local/share/texmf/tex/generic/musixtex/musixtex.tex.

Use the command

kpsewhich musix20.mf

to look up the directory storing the MusiXTeX METAFONT

fonts sources. The output will be something like /usr/local/share/texmf/fonts/source/public/musixtex/musix20.mf

In the following text replace /usr/local/share/texmf/tex/generic/musixtex/ and /usr/local/share/texmf/fonts/source/public/musixtex/ with the actual pathes of musixtex.tex and musix20.mf resp.

1.1 MusiXTeX macros

From the subdirectory tex of the MusiXTeX distribution copy all files to /usr/local/share/texmf/tex/generic/musixtex/.

1.2 MusiXTeX bitmapped fonts

From the subdirectory mf of the MusiXTeX distribution copy all files to /usr/local/share/texmf/fonts/source/public/musixtex/. Use the command

kpsewhich musix20.tfm

to look up the directory storing the MusiXTeX font metric files. The output will be something like /usr/local/share/texmf/fonts/tfm/public/musixtex/musix20.tfm. Then either delete all files from the directory /usr/local/share/texmf/fonts/tfm/public/musixtex/ or copy all files from the directory tfm of the MusiXTeX distribution.

If you just delete the files from /usr/local/share/texmf/fonts/tfm/public/musixtex/ then they will be regenerated by TeX when you start processing your MusiXTeX source files.

1.3 MusiXTeX type 1 fonts

You should consider also installing Takanori Uchiyama's type 1 versions of the MusiXTeX fonts which allow you to generate high quality pdf output from your MusiXTeX sources. Begin by downloading and unpacking the font distribution musixps-unix.tar.gz .

To perform the unpacking say

tar -zxf musixps-unix.tar.gz

The result will be a new directory /usr/local/src/musixps-unix.

See unpacking tar archives. Then follow the instructions in the section “3. INSTALLATION” of the accompanying file README

1.4 Updating the TeX search path

In order to tell TeX where to look for the MusiXTeX files update the TeX file search database by saying as root

mktexlsr

or

texhash

2 Installing new MusiXTeX software

2.1 Setting up a “private” TEXMF tree

TeX macros and fonts coming with MusiXTeX are additions to the standard TeX distribution. In order to keep the MusiXTeX stuff independent of TeX you may want to create a directory structure separate from that of the base TeX installation. If for example TeX has been installed within the directory structure /usr/share/texmf then you could create a “private” structure /usr/local/share/texmf for storing all TeX macros and fonts belonging to MusiXTeX .

However, you must tell TeX where to search for files in /usr/share/texmf. This is done in the configuration file texmf.cnf the location of which you may look up by saying

kpsewhich texmf.cnf

the output of which will be something like /usr/share/texmf/web2c/texmf.cnf.

2.1.1 A “private” TEXMF tree for all users

Below follows an excerpt from a teTeX installation texmf.cnf containing some commented out (`%' = comment) examples of adding “private” search directory structures for TeX . If you have root root priviliges you may edit texmf.cnf as shown below by defining the environment variable TEXMFLOCAL and setting the overall environment variable TEXMF to incorporate TEXMFLOCAL.


     % The main tree, which must be mentioned in $TEXMF, below:
     TEXMFMAIN = /usr/share/texmf
     
     %   TEXMFLOCAL = /usr/share/texmf.local
     TEXMFLOCAL = /usr/local/share/texmf
     
     % If defined, teTeX's texconfig stores modifications here (instead of the
     % TEXMFMAIN tree).
     %   VARTEXMF = /usr/share/texmf-var
     
     % User texmf trees can be catered for like this...
     %   HOMETEXMF = $HOME/texmf
     
     % Now, list all the texmf trees. If you have multiple trees you can
     % use shell brace notation, like this:
     %   TEXMF = {$HOMETEXMF,!!$TEXMFLOCAL,!!$TEXMFMAIN}
     % The braces are necessary.  If you set VARTEXMF, you also have to
     %   - list $VARTEXMF in the TEXMF definition;
     %   - make sure that $VARTEXMF precedes $TEXMFMAIN in the TEXMF definition.
     TEXMF = {!!$TEXMFLOCAL,!!$TEXMFMAIN}

When you have finished editing texmf.cnf say as root

mktexlsr

or

texhash

to update the TeX file search database to reflect the new TEXMFLOCAL directory structure.

2.1.2 A “private” TEXMF tree for single users

On some unix machines the global TeX configuration file texmf.cnf may have defined an environment variable HOMETEXMF as $HOME/texmf and made it part of the environment TEXMF. In that case you'll be able to establish your own “private” TEXMF tree by creating a directory texmf in your home directory. You should also initially add the directories $HOME/texmf/tex and $HOME/texmf/fonts for storing TeX

files and METAFONT font definitions resp.

You may install all files belonging to MusiXTeX within your “local” texmf directory structure. Don't forget to make these - and other files added to $HOME/texinf - known to the TeX

file search database by saying

mktexlsr $HOME/texmf

or

texhash $HOME/texmf

If the global TeX environment HOMETEXMF has not been defined you should ask the system administrator to do so. Alternatively you may define your own TeX environment variables TEXINPUTS (search path for TeX files) and MFINPUTS (search path for METAFONT font definitions). If you're using sh as your shell interpreter add this line to your configuration file $HOME/.profile (or to $home/.bash_profile if you're using bash)


     TEXINPUTS=".:$HOME/texmf/tex//"
     MFINPUTS=".:$HOME/texmf/fonts//"
     export TEXINPUTS MFINPUTS

If you're using csh or tcsh add this line to your configuration file $HOME/.login

     setenv TEXINPUTS ".:$HOME/texmf/tex//"
     setenv MFINPUTS ".:$HOME/texmf/fonts//"

The two slashes after the path names cause TeX to search all directories under $HOME/texmf.

2.2 MusiXTeX macros

Start by unpacking the latest version of the MusiXTeX distribution, for example musixtex-t112.zip into a temporary directory, for example /usr/local/src/.

In your “private” TEXMF tree create a directory tex/generic/musixtex. Copy all files from the subdirectory tex of the MusiXTeX distribution to tex/generic/musixtex.

2.3 MusiXTeX bitmapped fonts

In your “private” TEXMF tree create a directory fonts/source/musixtex. Copy all files from the subdirectory mf of the MusiXTeX distribution to fonts/source/musixtex.

2.4 MusiXTeX type 1 fonts

You should consider also installing Takanori Uchiyama's type 1 versions of the MusiXTeX fonts which allow you to generate high quality pdf output from your MusiXTeX sources. In order to do so download and unpack the fonts distribution musixps-unix.tar.gz . In your “private” TEXMF tree create a directory fonts/type1/musixtex. Then follow the instructions from point 3 of section “3. INSTALLATION” of the accompanying file README.

2.5 Updating the TeX search path

In order to tell TeX where to look for the MusiXTeX files you must update the TeX file search database of your “private” TEXMFLOCAL by saying

mktexlsr /usr/local/share/texmf

or

texhash /usr/local/share/texmf

where /usr/share/texmf must be replaced with the actual path of your “private” TEXMFLOCAL directory structure.

2.6 Setting up a local PATH environment

If you're doing a single user MusiXTeX installation you need to install executable files belonging to MusiXTeX so that your shell interpreter may look them up in the program search path PATH. If it does not already exists then create a directory bin in your home directory for storing executable files. Check whether the PATH environment includes this directory by saying

echo $PATH

If the output contains something like

:/home/christian/bin:/usr/local/bin:

then your shell interpreter will first look for executable files in your own bin directory.

If /home/christian/bin doesn't show up you need to add $HOME/bin to the PATH environment. If you're using sh as your shell interpreter add this line to your configuration file $HOME/.profile (or to $home/.bash_profile if you're using bash)


     PATH="$PATH:$HOME/bin"
     export PATH

If you're using csh or tcsh add this line to your configuration file $HOME/.login

     setenv PATH "$PATH:$HOME/bin"

2.7 The MusiXTeX program musixflx

Processing MusiXTeX sourcefiles requires a program musixflx that must be compiled from a c-source file musixflx.c found in the directory systems/c-source of the MusiXTeX distribution.

The compilation is done by saying

gcc musixflx.c -o musixflx

The resulting binary executable file musixflx must be copied to a directory listed in your environment PATH, for example /usr/local/bin or $HOME/bin. See Setting up a local PATH environment.

2.8 The MusiXTeX manual

In your “private” TEXMF tree create a directory doc/musixtex. Copy all files from the subdirectory doc of the MusiXTeX distribution to doc/musixtex. The MusiXTeX manual has been compiled into the file musixdoc.dvi which you may view on screen with the program xdvi.

In order to generate a pdf version of the manual say

pdflatex musixdoc.tex

musixflx musixdoc.tex

pdflatex musixdoc.tex

To get a reasonable result out of using the command pdflatex type 1 fonts must be installed. See MusiXTeX type 1 fonts. If you have only bitmapped fonts installed you should use the command latex instead. The result will be a postscript document. You may also generate a postscript manual from the file musixdoc.dvi by saying

dvips musixdoc.dvi -o musixdoc.ps

3 Installing PMX

3.1 Compiling the pmxab- and scor2prt sources

3.1.1 Compiling the FORTRAN source files

pmxab is frequently updated and published with FORTRAN source file in a zip archive, for example pmx2510.zip while scor2prt can be found in the most recent major release, for example pmx2504.zip

Download the most recent PMX source distribution, for example pmx2510.zip into a temporary directory, for example /usr/local/src/pmx-2510 and unzip it.

You need to perform a few edits of both fortran sources. Initially copy the FORTRAN source, say pmxab.for to a file with the extension .f, say pmxab.f. In pmxab.f locate the lines containing references to getarg. That'll be something like


             call getarg(1,jobname,idum) ! May need to replace this w/ next line
     c        call getarg(1,jobname)

Do as indicated in the comment text `May need to replace this w/ next line' so that the lines now look like this

     c        call getarg(1,jobname,idum) ! May need to replace this w/ next line
             call getarg(1,jobname)

There are two such pairs of lines in pmxab.f and one in scor2prt.f The letter `c' in front of the line makes the whole line a comment which doesn't become compiled.
3.1.1.1 Compiling with g77

On some unix computers it may be sufficient to compile the FORTRAN sources edited as above described with the FORTRAN compiler g77 coming with the gcc c-compiler. In fact g77 translates the FORTRAN into C, then compiles the C-source with gcc, but all this happens transparently. To use this method say

g77 pmxab.f -o pmxab

and

g77 scor2prt.f -o scor2prt

3.1.1.2 Compiling with f2c

Some users have encountered problems with a g77-compiled pmxab. In that case you'll have to do the compilation in two separate steps, 1. converting the FORTRAN sources to C sources and 2. compiling the resulting C sources.

In order to do this you must make sure that the utility to convert FORTRAN sources to C sources, f2c is installed on your computer. For some types of linux there are rpm distributions of f2c available. To install an rpm distribution say as root

rpm -i f2c-19991109-2.i386.rpm

Otherwise you'll have to install f2c from the source distribution which you may download from ftp://netlib.bell-labs.com/netlib/f2c

To perform the FORTRAN-to-C conversion say

f2c pmxab.f -Nx400 -Nn802

and then

gcc pmxab.c -lf2c -lm -o pmxab

Perform the same two steps with scor2prt.f.

3.1.2 Installing pmxab and scor2prt

The resulting binary executable files pmxab and scor2prt must be copied to a directory listed in your environment PATH, for example /usr/local/bin. If you're doing a single user installation you should copy pmxab and scor2prt to $HOME/bin. See Setting up a local PATH environment.

3.2 Installing the PMX MusiXTeX macros

If you have created a “private” TEXMFLOCAL directory structure then copy the file pmx.tex from the PMX source distribution to the directory where you store the MusiXTeX macros. See Setting up TEXMFLOCAL. Otherwise copy pmx.tex to any suitable directory within the TEXMF directory structure, for example /usr/local/share/texmf/tex/generic/musixtex/.

Don't forget to update the TeX file search database by saying as root

mktexlsr

or

texhash

3.3 The PMX manual

Pdf versions of the PMX manual and reference card are available as pmx250.pdf

and ref250.pdf .

4 Installing M-Tx

4.1 Compiling the prepmx source

You need to download and install the Open Source Pascal compiler FreePascal in order to compile the M-Tx source files.

Download the M-Tx source distribution mtxP060.zip into a temporary directory, for example /usr/local/src//mtx-060 and unzip it.

Compile the Pascal source files by saying

make

Afterwards copy the compiled program, prepmx, to a directory within your PATH environment, eg. /usr/local/bin. If you're doing a single user installation you should select an install directory like $HOME/bin. See Setting up a local PATH environment.

4.2 The M-Tx manual

A pdf version of the M-Tx manual is available as mtxdoc.pdf

5 musixlyr

Processing MusiXTeX -, PMX- and M-Tx source files involving lyrics requires the musixlyr macros to be installed. In a temporary directory, for example /usr/local/src/ create a directory Musixlyr. Download the distribution archive musixlyr21c.tgz

to that directory and unpack it. See unpacking tar archives.

5.1 Installing the musixlyr macros

If you have created a “private” TEXMFLOCAL directory structure then copy the file musixlyr.tex from the musixlyr distribution to the directory where you store the MusiXTeX macros. See Setting up TEXMFLOCAL. Otherwise copy musixlyr.tex to any suitable directory within the TEXMF directory structure, for example /usr/local/share/texmf/tex/generic/musixtex/.

5.2 The musixlyr manual

In order to generate a pdf version of the manual say

pdflatex mxlyrdoc.tex

musixflx mxlyrdoc.tex

pdflatex mxlyrdoc.tex

To get a reasonable result out of using the command pdflatex type 1 fonts must be installed. See MusiXTeX type 1 fonts. If you have only bitmapped fonts installed you should use the command latex instead. The result will be a postscript document. You may also generate a postscript manual from the file mxlyrdoc.dvi by saying

dvips mxlyrdoc.dvi -o mxlyrdoc.ps




2007-05-14, Christian Mondrup, Werner Icking Music Archive