[cstex] změna jména výstupního souboru

Zdenek Wagner zdenek.wagner at gmail.com
Sat May 5 11:06:38 CEST 2012


Dne 4. května 2012 20:27 nonsense <nonsense at volny.cz> napsal(a):
> dobrý den,
>
> když LaTeXem zpracuje vstupní soubor, tak výstupní soubor obvykle získá
> jméno podle jména vstupního souboru.
> To najdu v makru \jobname
>
> Je nějaká možnost změnit jméno výstupního souboru uvnitř zpracovávaného
> LaTeXového zdroje ? Hodilo by se mi, kdybych mohl něco jako přejmenovat
> výstup překladu nastavením, modifikováním výstupního názvu souboru uvnitř
> zdroje.
>
Je a není... Přemýšlel jsem o tom, co vlastně tento požadavek znamená
ze systémového hlediska. Vy vlastně chcete přejmenovat soubor, který
je právě otevřen pro zápis, ale tak, aby "file handle" stále ukazovala
na ten soubor. Něco podobného dělá tento program v perlu:

#!/usr/bin/perl
open(HANDLE, '>Ferda.txt') || die "Cannot open file\n";
print HANDLE "Brouk\n";
rename('Ferda.txt', 'Mravenec.txt');
print HANDLE "Pytlik\n";
close HANDLE;

Musíte tedy použít takovou binárku TeXu, která podporuje \write18 a
provádění příkazů je povoleno v konfiguračním souboru. Pak pomocí
\write18 výstupní soubor přejmenujete. Výše uvedený program mi v
Linuxu funguje i v případě, že za string Brouk dám mezeru místo \n. Ve
Windows tohle asi nepůjde z principu.

Poznámka: zkusil jsem pouze tento program, nijak jsem netestoval, zda
hrozí riziko ztráty dosud nezapsaných bufferů, takže před použitím je
dobré to důkladně vyzkoušet.

Doporučení: Já bych se osobně do takových experimentů nepouštěl.
Snažil bych se předem zjistit požadované jméno souboru a pokud bych
nechtěl přejmenovat zdroják, udělal bych si link a texem kompiloval
ten link. Pokud by to bylo neschůdné, napsal bych si skript, který by
nejprve spustil tex. Ten by zjistil během zpracování požadované jméno
výstupního souboru a zapsal do nějakého souboru (např.
\jobname.rename). Skript by pak tento soubor přečetl a výstupní soubor
přejmenoval.

> Doufám, že jsem se v tom moc nezamotal..
>
> Děkuji za pozornost
> s
> přeji pěkný den
>
> L.Vlček
>
>
> _______________________________________________
> csTeX mailing list
> csTeX at cs.felk.cvut.cz
> http://lists.felk.cvut.cz/mailman/listinfo/cstex



-- 
Zdeněk Wagner
http://hroch486.icpf.cas.cz/wagner/
http://icebearsoft.euweb.cz




More information about the csTeX mailing list