PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einbindung von aktuellen Paketen ohne Admin-Status



Münzi
22-10-2012, 15:08
Hallo,

ich schreibe jetzt an einem Institut meine Master-Thesis und benötige dafür unter anderem das Paket Siunitx. Leider verwendet die Firma eine alte Version von Texlive auf einer Ubuntu-Distribution und so sind einige Pakete nicht gerade up-to-date. Beispielsweise existiert von Siunitx nur die Version 1.3 statt die aktuelle 2.5j.

Da man in der EDV nicht begeistert ist auf meinem Rechner ein neueres Texlive zu installieren (verständlicherweise) und man auch keine Updates der Pakete durchführen kann, hilft nur alle benötigten Pakete in einen eigenen Ordner zu packen und dann über über eine Pfadangabe bei usepackage direkt einzubinden.

Nach etlichem suchen und versuchen das zum laufen zu bringen bitte ich euch nun um Hilfe. Wie kann ich Pakete (z. B. Siunitx) und deren Abhängigkeiten (z. B. l3-kernel) direkt einbinden ohne Admin-Rechte zu benutzen.

Was habe ich bereits gemacht:

1. Pakete von meinem Windows-PC auf einen USB-Stick kopiert und in einen Ordner in meinem Ubuntu-Home-Verzeichnis deponiert (~/texmf/).

2. Ich bin dieser Anleitung gefolgt, leider ohne Erfolg.
http://www.tex.ac.uk/cgi-bin/texfaq2html?label=privinst

3. Absolute Pfadeingabe in usepackage, also z. B.

\listfiles
\documentclass{scrartcl}
\usepackage{~/texmf/siunitx/siunitx.sty}
\sisetup{per-mode=fraction, fraction-function=\frac, locale=DE, qualifier-mode = space, list-final-separator = { \translate{und} },range-phrase = { \translate{-} }}
\begin{document}
\si{metre}
\end{document}
Ergebnis: Funktioniert nicht. Er findet wohl kein \begin{document}.

Aber

\listfiles
\documentclass{scrartcl}
\usepackage{/home/muenzberg/texmf/siunitx/siunitx}
\sisetup{per-mode=fraction, fraction-function=\frac, locale=DE, qualifier-mode = space, list-final-separator = { \translate{und} },range-phrase = { \translate{-} }}
\begin{document}
\si{metre}
\end{document}

findet zumindest die .sty-File. Allerdings sind nun die l3-Pakete (bzw. expl3) zu alt. Wie lade ich die nun zusätzlich noch nach. Aktuelle Versionen davon liegen unter ~/texmf/l3kernel und ~/texmf/packages.

Gibt es vielleicht eine Möglichkeit dem Computer einen Verzeichnisbaum vorzugeben, den er vor der Kompilierung nach vorhandenen Paketen durchsucht und dann von dort, statt aus dem /usr/share-Pfaden des Instituts zu laden?

Schon einmal vielen Dank für eure Mühen.

u_fischer
22-10-2012, 15:15
Gibt es vielleicht eine Möglichkeit dem Computer einen Verzeichnisbaum vorzugeben, den er vor der Kompilierung nach vorhandenen Paketen durchsucht und dann von dort, statt aus dem /usr/share-Pfaden des Instituts zu laden?

Normalerweise ist doch genau dafür der TEXMFHOME-Baum da. Was sagt denn
kpsewhich --var-value=TEXMFHOME?

Münzi
22-10-2012, 15:20
Hallo, danke für die schnelle Reaktion. Der Befehl gibt

/home/muenzberg/texmf

aus. Dort liegen dann auch alle Pakete, also z. B.

Siunitx.sty in /home/muenzberg/texmf/siunitx/ oder

booktabs.sty in /home/muenzberg/texmf/booktabs/.

Trotzdem greift er, wenn ich nur \usepackage{siunitx} nutze, automatisch auf die Dateien im usr/share-Verzeichnis zu.

u_fischer
22-10-2012, 15:23
Siunitx.sty in /home/muenzberg/texmf/siunitx/ oder

Falscher Pfad. Innerhalb des texmf-Baumes musst du dich an die normale Struktur halten. Also


Siunitx.sty in /home/muenzberg/texmf/tex/latex/siunitx/

Münzi
22-10-2012, 15:39
Dank dir, eine Minute bevor du geschrieben hast, ist mir das auch klar geworden. Ein dummer Fehler. Jetzt bleibt vorerst nur eine Fehlermeldung übrig:

PDFTex beschwert sich über eine zu alte Version einiger Dateien aus dem Oberdiek-Package-Bundle.

Angenommen ich möchte mein Windows-Latex (mit Miktex oder Texlive) auf den Rechner hier übertragen (ich vermute nämlich, dass noch viel mehr Abhängigkeiten verletzt werden), also alle wichtigen Pakete und Funktionen. Liegen die Pakete, die ich dafür benötige dann alle nur im Texmf-Ordner oder sind noch andere Ordner zur Synchronisation wichtig. Wenn noch andere Ordner benötigt werden, muss ich diese dann trotzdem in den texmf-Ordner kopieren oder werden unter Home neue Ordner benötigt?

klops
22-10-2012, 15:45
Warum installierst Du nicht einfach ein komplettes aktuelles Original-TeX-Live 2012 in einem Verzeichnis, in dem Du schreiben darfst? Wenn Du das machst, kannst Du das auch einfach per tlmgr aktuell halten. Es ist zwar etwas lästig, ggf. die Pfade bei der Installation anpassen zu müssen, statt einfach die Voreinstellungen zu verwenden, aber machbar sollte es sein. Ich habe das mal vor wenigen Jahren für AFAIR TeX Live 2009 gemacht.

Münzi
22-10-2012, 15:56
Warum installierst Du nicht einfach ein komplettes aktuelles Original-TeX-Live 2012 in einem Verzeichnis, in dem Du schreiben darfst?

Weil man das hier nicht so gern sehen wird. Man ist bereit mir zuzugestehen, dass ich bestimmte Pakete brauche und die in meinem Home-Ordner beherberge. Ich bin bereit das so auszulegen, dass ich alle Pakete neu brauche.

Ein zweites, unabhängiges System allerdings geht dann vermutlich etwas zu weit (und frisst auch einiges an Speicherplatz). Daher würde ich wenn dann maximal ein System auf einem USB-Stick laufen lassen. Den kann ich wenigstens abziehen, wenn was ist. Nachweisbar ist es natürlich trotzdem.

u_fischer
22-10-2012, 16:09
Ein zweites, unabhängiges System allerdings geht dann vermutlich etwas zu weit (und frisst auch einiges an Speicherplatz).

Naja, in meinem (unvollständigen) TeXLive nimmt der bin-Ordner keine 10% des Speicherplatzes ein. Und die Binaries ändern sich zwar nicht so viel und so schnell wie die Pakete, aber auch hier gibt es immer mal wieder Bugs + Korrekturen. Wenn du also nicht nur ein paar Pakete aktueller haben willst, sondern damit anfängst im Wesentlichen alles zu aktualisieren, dann solltest du bei den Binaries nicht aufhören.

Münzi
22-10-2012, 16:10
Ist wohl auch richtig. Ich werde mal ein wenig probieren und mich bestimmt dann noch mal melden.

Münzi
22-10-2012, 16:35
Ich habe gerade versucht Texlive 2012 auf meinen USB-Stick (Pfad: /media/44C7-B05F/Programme/Texlive) zu installieren. Die Installation bricht immer ab.


bin/i386-linux/a2ping: Cannot create symlink to `../../texmf-dist/scripts/a2ping/a2ping.pl': Operation not permitted

Woran kann das liegen? Ich werde jetzt mal die Minimalinstallation durchführen und dann versuchen den Rest nachzuladen.

Edit: Leider ist die Minimalinstallation auch fehlgeschlagen. Anscheinend fehlen die Rechte um einen symbolischen Link anzulegen. Bleibt wohl vorerst nur die Lösung entweder auf einem anderen Rechner mit Root-Rechten portable zu installieren und dann hier zu nutzen oder alles benötigte an Paketen zu kopieren. Dazu noch einmal die Frage, auch wenn es natürlich nur eine Notlösung ist:

In welchen Ordnern liegen Pakete oder ähnliches was wichtig für Pakete sein kann? Gibt es da etwas das außerhalb von texmf liegt und wenn ja wo, sowie wohin muss das dann kopiert werden.

Vielen Dank schon jetzt, auch nochmal an die fleißigen Bienchen, die bereits geholfen haben.

rstuby
22-10-2012, 18:09
Könnte der Fehler beim Stick daran liegen, dass der Stick mit FAT32 formatiert ist und es da keine symlinks gibt? Kannst du ihn mal mit ntfs formatieren und dann noch mal versuchen?

Münzi
22-10-2012, 18:29
Könnte der Grund sein. Wusste zwar gar nicht, dass auf dem Stick nicht NTFS drauf ist, aber gut. Habe einen anderen ausprobiert und bisher läuft es.

rstuby
22-10-2012, 18:42
Sticks und Karten haben meistens FAT32. NTFS ist auch nicht unbedingt besser, Linux hatte damit lange Zeit Probleme. Aber es kann eben Links und Dateirechte.

Münzi
22-10-2012, 18:46
Ja ich weiß, aber ich hatte hier jetzt nicht die Rechte um den Stick auf Ext3 zu formatieren. War froh, dass ich überhaupt noch einen mit habe. ;-)

So neues Feld, jetzt wo die Installation auf den Stick funktioniert muss ich ja irgendwie dem Tex-Editor (Kile) sagen welches PDFLatex er verwenden soll (die 2012er-Version vom Stick). Bei Texmaker oder Texniccenter unter Windows war das ganz einfach, aber bei Kile habe ich nichts gefunden.

Kile ist nun leider der einzige Texeditor, der hier installiert ist.

klops
23-10-2012, 06:43
Trag mal das Binary-Verzeichnisses des Sticks vorn in PATH ein (ja, das kann man auch als Benutzer) und starte kile dann auch der Shell, in der dieses Environment exportiert wurde.

BTW: Ist tatsächlich kein emacs (+auctex) installiert? Admins haben ja normalerweise eine Präferenz für entweder vi oder emacs. emacs verwendet ganz sicher das (pdf)(la)tex, das via PATH gefunden wird. Bei kile vermute ich das zwar auch, bin aber nicht sicher (und habe auf meinem Smartphone natürlich weder eine TeX-Installation noch kile, um das auszuprobieren).

rstuby
23-10-2012, 06:49
Kile auch. Damit hatte ich schon mehrfach zu tun. Es gibt keine mir bekannte Möglichkeit, in Kile selber einen anderen Pfad zu setzen, was ich sehr schade finde, da ich im Unterschied zu dir dieses Programm liebe und es es als einziges KDE-Programm unter Mate weiterbenutze (außer Okular, welches ich benutze, weil es mit Kile Synctex-fähig ist und evince nicht).

klops
23-10-2012, 06:59
Für evince habe ich übrigens vor Monaten einen (nicht mehr ganz neuen) synctex-Patch gefunden (nur jetzt gerade finde ich ihn nicht, die Internetverbindung hier in der Straßenbahn ist einfach nur saumäßig). Allerdings war es mir selbst auch zu viel Theater evince selbst zu kompilieren. Leider scheint der von jemandem gewesen zu sein, der selbst kompilieren als normal empfindet und keinen Drang hat, den Patch mainstream zu vertreten und ggf. zu pflegen. Ich finde es immer ein wenig schade, wenn gute Ideen dadurch nicht ihr Potential entfalten können.

rstuby
23-10-2012, 07:06
Schade, wenn das einfach ginge, wäre ich daran interessiert, da evince manche Sachen (z.B. Noten bei geringer Auflösung) sehr viel besser darstellt.

Münzi
23-10-2012, 09:03
Trag mal das Binary-Verzeichnisses des Sticks vorn in PATH ein (ja, das kann man auch als Benutzer) und starte kile dann auch der Shell, in der dieses Environment exportiert wurde.

Kannst du das etwas genauer ausführen? Musste das Eintragen in Path bisher nie machen und habe dementsprechend keine wirkliche Ahnung wovon du sprichst. Asche auf mein Haupt ;-)


BTW: Ist tatsächlich kein emacs (+auctex) installiert? Admins haben ja normalerweise eine Präferenz für entweder vi oder emacs. emacs verwendet ganz sicher das (pdf)(la)tex, das via PATH gefunden wird. Bei kile vermute ich das zwar auch, bin aber nicht sicher (und habe auf meinem Smartphone natürlich weder eine TeX-Installation noch kile, um das auszuprobieren).

Stimmt, emacs ist auch drauf, aber das fand ich dann doch recht unübersichtlich. Bin halt hauptsächlich Tex-Editoren wie Texniccenter oder Texstudio gewöhnt.

klops
23-10-2012, 11:04
Je nach Ubuntu-Version werden unterschiedliche Shells verwendet. Starte einfach mal ein Terminal und probiere darin (ich verwende hier mal PHP statt CODE, weil es zwar nicht exakt aber doch besser passt):

PATH="$HOME/texmf/bin/i386-linux/:$PATH" kile
Natürlich musst Du den Teil vor dem Doppelpunkt innerhalb der Anführungszeichen durch das entsprechende Binary-Verzeichnis ersetzen. Wenn das funktioniert, kannst Du einfach einen alias definieren. Näheres dazu ist in jeder besseren Linux-Einführung zu finden.

emacs+auctex sind ein sehr mächtiger LaTeX-Editor, der weit weniger schwer zu bedienen ist, als die meisten meinen. Das wichtigste Tastenkürzel dabei ist C-c C-c (das ist emacs-Schreibweise für Strg+C und noch einmal Strg+C). Trotzdem ist das nicht für jeden das Richtige. Manche kommen mit Kile einfach besser zurecht und das macht ist nicht tragisch und stört mich nicht im geringsten.

Münzi
23-10-2012, 17:53
Hallo Klops,

hab es probiert aber leider ohne Erfolg. Er hat das Texlive aus dem usr/share-Verzeichnisbaum verwendet. Woran kann das liegen?

Vielen Dank und lieben Gruß
Münzi

klops
24-10-2012, 07:33
Ohne Dir über die Schulter zu schauen, kann ich Dir das nicht genau sagen. Ich kann noch vermuten, dass die Dateien im Binary-Verzeichnis nicht ausführbar sind. Das kann beispielsweise dann sein, wenn USB-Sticks aus Sicherheitsgründen grundsätzlich mit noexec gemounted werden.

PS: Ich habe gerade mal getestet:

touch "echo Das ist gar nicht pdftex >&2;exit 1" > pdflatex
chmod u+x pdflatex
PATH="$PWD:$PATH" kile
Dabei wird ebenfalls nicht das pdflatex aus dem aktuellen Verzeichnis, sondern das systemweite pdflatex verwendet.

Ich kann aber in Kile im Menü "Einstellungen → Kile einrichten …" im Reiter "Werkzeuge → Erstellen" auf "pdflatex" klicken und dann rechts im Reiter "Allgemein" hinter Befehl den kompletten Pfad auf das von mir gewünschte pdflatex eintragen. Dann wird das auch genommen.

rstuby
24-10-2012, 07:35
Oh, auch von mir danke für den Hinweis auf diese Einstellungsmöglichkeit! Meine Suche danach war bisher immer erfolglos.

klops
24-10-2012, 07:42
@rstuby: Was mich irritiert ist, dass selbst wenn ich den Pfad dort nicht eintrage und über "Einstellungen → Systemeinstellung überprüfen …" die Einstellungen überprüfen lasse, dort das pdflatex aus $PWD angezeigt wird. Wenn ich dann aber einen pdflatex-Lauf mache, wird es von kile trotzdem nicht genommen. Erst, wenn pdflatex mit Pfad in den Einstellungen eingetragen ist, wird das auch verwendet. Mir ist schleierhaft, was kile an der Stelle tatsächlich macht.

Münzi
24-10-2012, 07:48
Cool Klops, bist ein Held. Ich werd mir das nachher gleich mal anschauen. Jetzt muss ich aber erstmal noch ne halbe Stunde für eine Prüfung lernen. ;-)

Münzi
24-10-2012, 14:48
Hi Klops,

es funktioniert! Du bist ein Held!!! Solltest du mal in Magdeburg sein geb ich dir ein Bier dafür aus ;-)

Gruß Münzi

klops
24-10-2012, 16:23
Du bist ein Held!!! Solltest du mal in Magdeburg sein geb ich dir ein Bier dafür aus
Danke, aber ich mache Dir einen anderen Vorschlag. Bei den Pfadfindern gibt es den Leitsatz: Jeden Tag eine gute Tat. Eine kleine gute Tat, ist tatsächlich fast jeden Tag möglich, beispielsweise dass ein Autofahrer mir heute morgen als ich bei Nebel auf meinem Rad vor mich hin gefroren habe, seine Vorfahrt abgetreten hat. Und ich habe die Hoffnung, dass gute Taten sowohl die Menschen positiv beeinflussen, die sie erfahren, als auch die Menschen, die sie begehen.

Münzi
24-10-2012, 17:07
Schöner Gedanke und ich helfe auch immer gern wo ich kann. Leider reicht mein Latex-Wissen meist nicht hier fürs Forum aus oder ich bin zu langsam und einer von euch "Cracks" hat das Problem schon gelöst. ;-)

Aber vielleicht brauchst du ja mal Hilfe bei Matlab. :D

Gruß Münzi

P.s.: Thread kann von meiner Seite aus geschlossen werden.