La Vita è Bella

Friday, January 05, 2007

Selective unlink script (to uninstall TeXLive)

In fact, to uninstall TeXLive should be very easy: "rm -Rf /usr/local/texlive", that's all.

But things are sometimes not so easy. If you've chosen to make symbolic links to your system path (/usr/bin) during the installation, like I had, then you have to unlink all the links TeXLive created.

It's hard to do that manually, so I wrote the following script. You just need to run it under your /usr/bin directory and it will unlink all links that pointed to /usr/local/texlive.

 1 #!/bin/sh
 2
 3 tlprefix="^/usr/local/texlive/"
 4
 5 for file in *; do
 6         if [ -L ${file} ]; then
 7                 link=`readlink ${file}`
 8                 tllink=`echo "${link}" | grep "${tlprefix}"`
 9                 if [ -n "${tllink}" ]; then
10                         echo "going to unlink \"${file}\" that links to \"${link}\"..."
11                         unlink ${file}
12                 fi
13         fi
14 done

It unlinked 240 symbolic links from my /usr/bin directory, horrible! I'll never choose the "make symbolic links to your system path" option again during the installation of TeXLive.



tags: , ,

23:59:57 by fishy - latex - Permanent Link

no comments yet - no trackbacks yet - karma: 38 [+/-]

Sunday, October 02, 2005

Makefile for LATEX

Update:TeXLive doesn't have it, but it have a tool texi2dvi with the same function (at least it also support -b and -p parameters).

You don't know how many times you should run the command latex, so it's hard to write a Makefile for LATEX

But I've found texify today. It can automatically calls the commands needed including latex/pdflatex, bibtex, etc., with needed times, and ships with almost all tex distributions.

Here's an example for my "Makefile" file (Note: don't forget to define RMRF, ACROREAD & PREVIEW for your environment):

LATEX = texify
PARAMS = -b
DVIPDF = dvipdfmx
MAINNAME = myarticle
SRCS = $(MAINNAME).tex \
	   chapter1.tex \
	   chapter2.tex
DVIFILE = $(MAINNAME).dvi
PDFFILE = $(MAINNAME).pdf

all: $(PDFFILE)

$(PDFFILE): $(DVIFILE)
	$(DVIPDF) $(DVIFILE)

$(DVIFILE): $(SRCS)
	$(LATEX) $(PARAMS) $(MAINNAME).tex

preview: $(DVIFILE)
	$(PREVIEW) $(DVIFILE)

read: $(PDFFILE)
	$(ACROREAD) $(PDFFILE)

clean:
	$(RMRF) *.toc *.out *.aux *.log *.bak

cleanall: clean
	$(RMRF) $(PDFFILE) $(DVIFILE)
	
.PHONY: clean cleanall all

For pdflatex files, beamer slides for example, use texify -p, here's the Makefile:

LATEX = texify -p
PARAMS = -b
MAINNAME = myarticle
SRCS = $(MAINNAME).tex \
	   chapter1.tex \
	   chapter2.tex
PDFFILE = $(MAINNAME).pdf

all: $(PDFFILE)

$(PDFFILE): $(SRCS)
	$(LATEX) $(PARAMS) $(MAINNAME).tex

read: $(PDFFILE)
	$(ACROREAD) $(PDFFILE)

clean:
	$(RMRF) *.toc *.out *.aux *.log *.bak

cleanall: clean
	$(RMRF) $(PDFFILE) $(DVIFILE)
	
.PHONY: clean cleanall all

If you need gbk2uni for Chinese support, change the line

	$(LATEX) $(PARAMS) $(MAINNAME).tex

into (Note: don't forget to define GBK2UNI):

	$(LATEX) $(PARAMS) $(MAINNAME).tex
	$(GBK2UNI) $(MAINNAME).out
	$(LATEX) $(PARAMS) $(MAINNAME).tex

That's it!



tags: , ,

06:09:36 by fishy - latex - Permanent Link

no comments yet - no trackbacks yet - karma: 16 [+/-]

May the Force be with you. RAmen