Les paradis artificiels

Noms d'arxiu amb espais en el latex2html

LaTeX, Unix, Perl — 13 Marš 2009, 23:46

LaTeX2HTML és un convertor que processa arxius .tex de LaTeX i genera pàgines web HTML. Està molt bé, però té un bug: quan es processa un arxiu amb espais en el nom o en la ruta té problemes i retorna un error:

texexpand V2002-2-1 (Revision 1.11)
texexpand: Error: More than one input file specified.
texexpand  failed: No such file or directory

He preparat un petit script en perl que rudimentàriament soluciona el problema fent un link des d'un directori temporal que no tingui espais en el nom, corrent el latex2html en aquell directori i movent els resultats cap al directori inicial. Espero que sigui útil.

Per utilitzar-lo n'hi ha prou amb guardar-lo en un directori des d'on es pugui exectuar. Jo, per exemple, el tinc al directori bin del meu home, ~/bin, i al ~/.bashrc hi tinc afegida la línia

export PATH=${PATH}:${HOME}/bin

Ho tinc en aquest ordre perquè en general sempre és més recomenable buscar els executables als directoris per defecte, com /bin, /usr/bin, etc. Llavors definint un alias

if [ -x $HOME/bin/latex2html ]; then
    alias latex2html="$HOME/bin/latex2html"
fi

n'hi ha prou per a que cada vegada que cridem el latex2html des de la consola ens executi el nostre petit script.


Screen rÓpid

Unix — 07 Marš 2009, 18:57

GNU screen és un petit programa que m'ha resultat molt útil aquesta última setmana. Ni tan sols sabia que existia, però necessitava fer córrer uns càlculs en un ordinador a través de ssh, desconnectar-me, tancar la consola i que els càlculs seguissin. Això és el que permet GNU Screen, un terminal multiplexer: pots córrer tantes aplicacions de consola com vulguis en una sola terminal, i inclús tancar-la, i els teus programes continuaran corrent. Encara que tanquis la teva sessió.

Hi ha un tutorial sobre screen molt útil, però per començar a utilitzar-lo ràpid ràpid simplement obre una consola i escriu

$ screen

Surt un missatge de benvinguda, amb el copyright, la llicència, etc. Entra espai o retorn i ja està, pots fer córrer un programa qualsevol. Si vols fer-ne córrer un altre a la mateixa terminal, apreta C-a c (és a dir, Ctrl+a i c), i crees una nova finestra. Pots fer córrer un altre programa, si vols. Així pots anar creant finestres noves, i moure't entre elles apretant C-a C-a. Si vols sortir de la sessió (però que els programes segueixin funcionant), entra C-a d o simplement tanca la finestra. Quan ho vulguis recuperar, obre de nou una terminal i entra

$ screen -r

Té moltes més cosetes, però amb això ja en tens prou per fer córrer uns quants programes a través de ssh sense patir per quan te n'has d'anar.


Error al compilar alguns paquets des de MacPorts 1.6

MacBook, Unix — 04 Marš 2009, 14:55

A l'instal·lar alguns paquets (com el gimp) per Mac OS X (10.5.6) des de MacPorts 1.6 la compilació falla perquè la variable $CC està buida. El bug està descrit a http://trac.macports.org/ticket/13930, però una solució ràpida és editar el macports.conf, que probablement estarà a /opt/local/etc/macports/macports.conf. Afegint

extra_env   CC

servirà. Sembla que el bug ja estarà arreglat per la versió 1.7 de MacPorts.


.vimrc per Mac OS X

LaTeX, MacBook, Unix — 18 Juliol 2008, 20:20

Porto ja uns dies jugant amb el meu nou MacBook i de moment n'estic ben content. De moment he evitat instal·lar-me Debian perquè sinó acabaria passant com amb el meu antic iBook G3 i no provaria què tal va aquest Leopard. No està gens malament, amb tot de pijadetes.

Però ahir va arribar el moment d'escriure en LaTeX. Vaig provar el TeXShop i no està malament, però acostumat al vim i a moure'm utilitzant el teclat se'm feia un xic pesat. Així que aprofitant que en el fons el Mac OS X és Unix m'he passat a la terminal i he obert el vim.

A diferència de la majoria de les distribucions de Linux, on per defecte ja hi ha moltes opcions activades, el vim de Mac ve sense gairebé res. Per no haver d'entrar cada vegada totes les opcions, només fa falta crear-se un arxiu .vimrc o (_vimrc si vols que es vegi des del Finder) amb les següents opcions:

set nocompatible    " use Vim defaults (much better!)
set bs=2            " allow backspacing over everything in insert mode
set viminfo='20,"50 "read/write a .viminfo file, don't store more than
                    " 50 lines of registers
set history=50      " keep 50 lines of command line history
set ruler           " show the cursor position all the time
syntax on           " switch syntax on
set hlsearch        " highlight the last used search pattern

I llavors es poden utilitzar altres opcions. Jo utilitzo

set textwidth=78

per a escriure fins a 78 caràcters per línia,

set fileencoding=latin1

per a utilitzar el nostre joc de caràcters (ISO-8859-1), i

filetype indent on
set expandtab
set tabstop=2
set shiftwidth=2
:retab

per a fer servir 2 espais enlloc del tabulador. A més, per escriure documents de LaTeX és molt útil el vim-latex, i llavors cal afegir les dues últimes línies del .vimrc:

filetype plugin on
set grepprg=grep -nH $*

Powered by LifeType