TeXování v Joe-editoru

Zde podrobněji popíšu, jaké používám prostředí pro práci s TeXem. Toto prostředí můžete zahlédnout na přednáškách. Sestává z textového editoru Joe, z nějž je spouštěn opakovaně TeX. Nic více. Editor Joe jsem si oblíbil pro jeho jednoduchost a účelnost. Editor Joe nepracuje zcela samostatně, ale vždy uvnitř nějakého terminálu, který je třeba spustit nejřív.

Editor Joe umožňuje spustit tzv. "build", což může být jakýkoli proces, o němž se předpokládá, že něco udělá. Dále má editor Joe možnost konfigurovat makra pro klávesové zkratky v konfiguračním souboru ".joerc". Já mám namapováno spuštění "build" procesu v novém okně na Ctrl-F7 a opakované spuštění už s otevřeným oknem na F7. Při Ctrl-F7 se to navíc zeptá na text řádku, který má být spuštěn, zatímco při F7 se už na nic neptá. Při prvním TeXování tedy zmáčknu Ctrl-F7 a případně upravím nabízený řádek ke spuštění, který si Joe editor pamatuje z minulého spuštění. Pak opakovaně TeXuji pomocí F7. To už se Joe editor na nic neptá a rovnou předchozí "build" řádek provede.

Konfigurace Ctrl-F7 a F7 vypadá v ".joerc" následovně:

:def opentexloop savenow,splitw,scratch,"/Log/",rtn,build,query,prevw
:def runtex savenow,nextw,build,rtn,prevw

opentexloop     ^[ [ 1 8 ; 5 ~  ^F7     ... Start TeX first
runtex          ^[ [ 1 8 ~      F7      ... Run TeX again

Řádek procesu build, který musím při Ctrl-F7 vyplnit nebo ho upravit, vypadá takto:

xtex pdfcsplain dokument

nebo (v mém případě daleko méně často):

xtex pdflatex dokument

nebo třeba:

xtex luatex -fmt pdfcsplain dokument

Základem je, že se vždy spustí skript xtex, který spustí TeXový proces na řádku následně napsaný. Tento skript navíc prozkoumá, zda už je spuštěn prohlížeč pdf výstupu xpdf. Když není, tak jej spustí. Když je spuštěn, tak mu vzkáže, že má obnovit zobrazení s nově vygenerovaným pdf výstupem. Když ale TeX skončí s chybou, následná činnost týkající se prohlížeče pdf výstupu se přeskočí.

PdfTeX bohužel do terminálu vypisuje na konci své činnosti obvykle dlouhý seznam všech vložených fontů, což je nezajímavá informace, kterou skript xtex potlačí pomocí grep -v. To jsem udělal proto, že výpis vložených fontů typicky způsobí odrolování důležité informace (například výpisu chyby), což je frustrující.

Skript xtex vypadá takto:

#!/bin/bash

if [ $# -lt 2 ] ; then
  echo "usage:   rnt tex-command main-file"
  exit 1
fi 

COMMAND=$1

if [ "$2" = "-fmt" ] ; then
  OPTIONS="-$2 $3"
  MAINFILE="$4"
else
  OPTIONS=""
  MAINFILE="$2"
fi
MAINFILEBASE=`echo $MAINFILE | cut -d. -f1`

echo $COMMAND $OPTIONS $MAINFILE 
echo x | $COMMAND $OPTIONS $MAINFILE | grep -v '/fonts/'
STATUS=${PIPESTATUS[1]}
if [ $STATUS -eq 0 ] ; then
   if ps aux | egrep '[x]'"pdf.real -remote $MAINFILEBASE " > /dev/null ; then
      xpdf -remote $MAINFILEBASE -reload
   else
     nohup xpdf -remote $MAINFILEBASE $MAINFILEBASE.pdf & sleep 0.2
     rm nohup.out
   fi
fi
exit $STATUS

Skritp xtex je pochopitelně třeba umístit někam, kam na něj dohlédne proměnná $PATH.

Pro Joe editor jsem si nakonfiguroval taktéž obarvení zdrojáků a některé další užitečné vlastnosti. Svůj uživatelský konfigurační soubor včetně konfiguračního stromu souborů (vše má být v $HOME uživatele) přikládám.

Jinak poznamenávám, že toto prostředí je použitelné ve vhodném terminálu unixového systému. Pokud nic takového na svém počítači neprovozujete, pak Vám jsou informace z této stránky pravděpodobně k ničemu.