PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei aus localtexmf in Projektordner kopieren



rafael
25-01-2012, 09:57
Ich habe meine Frage bereits bei der tex-gruppe gestellt, aber dort noch keine Antwort bekommen:
https://groups.google.com/group/de.comp.text.tex/browse_thread/thread/bb1dedbff6d63104?hl=de

Vielleicht weiß ja hier jemand Rat:

Problem: Ich habe ein Paket namens "mypackage" im localtexmf. Dieser Datei wird langfristig immer etwas abgeändert. Im aktuellen Projektordner steht in der Hauptdatei

\usepackage{mypackage}

Beim ersten Kompilieren würde ich gern automatisch die Datei mypackage.sty in aktuellen den Projektordner kopieren, damit latex zukünftig auf die nun im Projektordner fixierte mypackage.sty im zugreift.

Kann man da irgendetwas in der Art:

\begin{filecontents}{mypackage.sty}
\inputmyfile{mypackage.sty}
\end{filecontents}
basteln, ohne die Pfadangabe von mypackage zu benutzen?
Mit embedfile geht das ja auch, um Dateien an das pdf anzuhängen.

rais
25-01-2012, 21:46
Moin moin,


Kann man da irgendetwas in der Art:

\begin{filecontents}{mypackage.sty}
\inputmyfile{mypackage.sty}
\end{filecontents
basteln, ohne die Pfadangabe von mypackage zu benutzen?

mag sein, aber warum willst Du das via LaTeX angehen? Wäre ein Script nicht geeigneter für sowas? Etwa


#!/bin/bash
X=`kpsewhich $1`
if [ -z "$X" ]; then
echo "Datei $1 nicht gefunden."
else
if [ "$X" == "./$1" ]; then
echo "Datei $1 bereits im Arbeitsverzeichnis vorhanden."
else
cp $X .
fi
fi

Wenn Du unbedingt willst, kannst Du das Teil ja per \write18 aufrufen (-shell-enable nicht vergessen)

MfG

rafael
01-02-2012, 07:07
warum willst Du das via LaTeX angehen? Wäre ein Script nicht geeigneter für sowas? Etwa

ich kenne mich mit Scripten bislang überhaupt nicht aus. Aber wäre wohl eine Möglichkeit, die ich in Betracht ziehen sollte. Ist der Aufruf des Scriptes denn mit Latex möglich, oder muss ich das separat über die Kommandozeile machen? Da gibt es sicherlich wieder Abhängigkeiten zu Betriebssystem und Editor oder?

Vielen Dank.

rais
01-02-2012, 21:01
Ist der Aufruf des Scriptes denn mit Latex möglich, oder muss ich das separat über die Kommandozeile machen?

Um ein Skript -- oder sonstige Befehle, die über die Kommandozeile ausführbar wären -- aus LaTeX aufzurufen, gibt es den \write18{..}-Befehl.
Um \write18{..} zu erlauben, gibt es eine Option -shell-escape (TeXLive) bzw. -enable-write18 (MikTeX), wobei mir die Schreibweise unter MikTeX nicht klar ist, weil von mir nicht verwendet.


latex --help

sollte Dir anzeigen, welche Optionen von Deinem LaTeX-Programm unterstützt werden.


Da gibt es sicherlich wieder Abhängigkeiten zu Betriebssystem

Sicher, nicht alle Skriptsprachen sind auf jedem Betriebssystem verfügbar. Die, die ich hier verwendet habe, steht hinter dem #! in der ersten Zeile.
Wenn Du mit möglichst vielen Plattformen klarkommen willst, schau Dir Sprachen wie Perl an (makeglossaries des glossaries-Pakets basiert da glaub ich auch drauf).


und Editor oder?

Mir ist keine Abhängigkeit irgend eines Editors von irgend einer Skriptsprache (bzw. wenn denn ein Editor von irgend einer Skriptsprache abhängig ist, besitzt Du diese Skriptsprache bereits, so fraglicher Editor bei Dir läuft) -- oder umgekehrt -- bekannt. Die meisten Skriptsprachen nutzen schlicht _Text_ und können mit jedem x-beliebigen Texteditor erstellt/verändert werden.

BTW: und ist es wirklich eine so gute Idee, so viele [1] Kopien Deiner mypackage.sty in ebenso vielen Projektordnern zu halten?

[1] `viele', weil ich davon ausgehe, daß Du das nicht nur für zwei, drei Projekte haben willst -- da wäre ein entsprechender Kopierbefehl imho noch völlig ausreichend.

MfG