In meine aktuelle Arbeit möchte ich ein Glossar integrieren. Ich schreibe die Arbeit in LaTeX mit Hilfe von TeXlipse (Eclipse Plugin).
Ich habe mich mal ein bisschen im TeX Catalogue umgesehen und habe das Glossaries-Paket gefunden (genaueres siehe Doku zu glossaries).
Das Problem ist, dass das Paket einen angepassten LaTeX-Buildprozess braucht: einen zusätzlichen makeindex Aufruf. Leider unterstützt das TeXlipse nicht und es lässt sich auch kein eigener Built-Prozess definieren (oder ich habe die Option nicht gefunden).
Hier meine Lösung:
Den pdflatex-Aufruf von TeXlipse durch ein eigenes Skript ersetzen, dass den makeindex-Aufruf miterledigt.
Dazu als erstes eine pdflatexAndMakeindex.bat mit folgendem Inhalt erstellen (Ich arbeite unter WinXP, ein passendes Skript sollte unter Linux & Co aber auch nicht viel anders aussehen):
rem build PDF file from given tex file and running makeindex
rem ***** make sure to be in the right directory
cd "%~dp1"
rem ***** name of tex file without ".tex"
set texSource=%~n1
rem ***** run pdflatex
pdflatex -interaction=nonstopmode "%texSource%.tex"
rem ***** build glossar
makeindex -q -s "%texSource%.ist" -t "%texSource%.glg" -o "%texSource%.gls" "%texSource%.glo"
Dann in Eclipse unter Window=>Preferences=>Texlipse=>Builder Settings den Pdflatex-Befehl editieren und folgendes angeben:
Program File:
Arguments: %input
Am besten auch gleich unter Window=>Preferences=>Texlipse=>Builder Settings=>Latex Temp Files die Endungen .ist, .glo, .gls, .glg der Glossar-Indexdateien hinzufügen.
Danach können die Befehle des Paketes benutzt und das Glossar erstellt werden.
Nachteile, die ich an dieser Lösung sehe:
- evtl. Fehler, wenn ein Dokument ohne Glossar erstellt wird (habe ich noch nicht getestet)
- da makeindex nach jedem pdflatex-Durchlauf aufgerufen wird (das können bei texlipse 3 pro built sein) vielleicht ein bisschen Overhead.
- overhead durch die zusätzliche Batch dazwischen
- Batchdatei muss evtl. angepasst werden, wenn weitere/andere Glossare genutzt werden. Genaueres verrät die Doku von glossaries.
Vorteile:
- TeXlipse kann wie gehabt weiterverwendet werden
- auch dass Analysieren der pdflatex-Ausgabe und Anzeigen der Fehler und Warnungen funktioniert weiterhin
Nachtrag: Diese Einstellungen gelten für jeweils einen Workspace. Wenn es also Probleme mit anderen Dokumenten geben sollte, einfach diese in einem anderen Workspace bearbeiten.
Diese Liste ist in nicht nach Präferenzen sortiert sondern einfach alphabetisch und wird von Zeit zu Zeit überarbeitet:
- Adblock Plus - blockt lästige Werbebanner. Ist dabei ressourcensparender als das “originale” Adblock.
- Check4Change - prüft eine Seite periodisch auf Veränderungen. Nützlich wenn mal wieder ein dienst überlastet ist oder man auf eine Veröffentlichung wartet.
- CustomizeGoogle - fügt Links zu weiteren Suchmaschinen in Googles Ergebnisliste ein, entfernt außerdem die Werbung auf Googles Seiten und in Gmail. Sehr nützlich ist auch das nachladen der Google-Ergebnisse im gleichen Fenster. Man braucht dann nur noch nach unten scrollen.
- DownloadHelper - Hilft beim herunterladen von eingebetteten Videos etc. etwa bei Youtube. Es werden auch Links zu nachgeladenen Inhalten angezeigt.
- DownThemAll - ein erweiterter Downloadmanger direkt in Firefox. Bietet auch die Möglichkeit alle Links einer Seite automatisch runterzuladen.
- ErrorZilla Mod - erweitert die Fehlerseite von Firefox u.a. um die Waybackmachine, Google Cache und Ping.
- Firebug - wer Webseiten erstellt wird FireBug lieben. Man kann damit eine aufgerufene Webseite in allen Bestandteilen inspizieren und bearbeiten(!). Hinweis: nur aktivieren, wenn man damit arbeitet, frisst sonst zu viele Ressourcen. Noch sehr viel umfangreicher als die Web Developer Extension, zusammen ein Dream Team.
- FireFTP - Ein FTP-Client direkt in FF
- Googlebar Lite - Suchfeld ist größer und Logo kleiner als beim Original, Dateigröße viel kleiner, ergo gefällt mir besser.
- Image Zoom - man kann über das Kontextmenü beliebige Bilder groß-zoomen, praktische Sache bei großen Auflösungen am Bildschirm.
- OpenBook - verändert den “Lesezeichen hinzufügen”-Dialog; Ordnerliste ist bereits geöffnet, letzter Ordner vorselektiert.
- Save Link in Folder - Man kann Favoritenordner definieren, die dann beim herunterladen von Dateien zur schnellen Auswahl zur Verfügung stehen. Praktisch wenn man Downloads vorsortiert (Software, Musik, Filme, …) und dadurch häufig zwischen den Ordnern wechselt.
- UrlbarExt - fügt weitere Buttons zur Adressleiste dazu u.a. Copy2Clipboard, TinyUrl, Up. Siehe auch den Artikel bei lifehacker.
- Web Developer Extension - Wer fürs Web entwickelt, wird diese Erweiterung lieben. Man erhält eine Toolbar, die vielfältige Möglichkeiten bietet: CSS der Seite anzeigen, DIV-Blöcke umranden, Tabellen anzeigen lassen, Browserfenster auf andere Auflösung verkleinern u.v.m. Quasi alles was man so braucht.
Firefox 3 bietet ja dynamische Bookmarkorder. Es lassen sich auch eigene Abfrage definieren. Wie das geht steht im mozillaZine Forum. Zwei nützliche, die ich selbst nutze sind:
liefert die unsortieren Bookmarks, die man durch Klicken auf den Stern in der Adresszeile erstellt. So kommt man an diese auch über das Lesezeichenmenü.
liefert die 20 neuesten Bookmarks (ausgenommen RSS-Feeds). Oft haben die letzten Bookmarks mit der aktuellen Arbeit zu tun - und so sind sie schnell verfügbar.
Bookmarklets sind kleine Javascripts, die anstelle eines Links in die Bookmarks eingetragen werden. Sie bieten nützliche Funktionen. Hier eine Auswahl der Bookmarklets, die ich gespeichert habe:
- Musik bei Last.fm - Goto Artist - öffnet die Markierung oder den eingegebenen Artist bei last.fm (nützlich um mal schnell in die Musik reinzuhören)
- Google Translate => Deutsch
- Bugmenot Bookmarklet
- TinyURL!
- Route in Google Maps - direkt Route zur markierten Adresse suchen (eigene Adresse im Script einsetzen)
- Route in Map24 - direkt Route zur markierten Adresse suchen (eigene Adresse im Script einsetzen)
- HTML 2 PDF - die aktuelle Seite als PDF speichern (geht nur mit öffentlichen URLs)
In einem anderen Post habe ich bereits Bookmarklets vorgestellt, die Flash MP3 Player in eine Seite einfügen.
Ich habe ein bisschen mit Ubuntu auf meinem eeePC herumgespielt und fand die GUI zur Konfiguration des Monitorausganges etwas unbefriedigend. Nach einem bisschen forschen ergab sich folgendes Script:
xrandr --output LVDS --off --output VGA --mode 1024x768
else
xrandr --output VGA --off --output LVDS --mode 800x600
fi
Es schaut erst nach, ob ein externer Monitor (”VGA”) angeschlossen ist. Wenn ja, schaltet es auf diesen um, wenn nicht wir der interne Bildschirm aktiv. Man muss das Skript also nur je einmal nach an- und abstöpseln des externen Monitors ausführen. Mehr Informationen gibt es im Ubuntu Forum.
Vor kurzem habe ich das XBMC Media Center entdeckt. Es läuft auch auf meinem eeePc wunderbar flüssig und ist super um meine MP3s über das Wlan abzuspielen. Leider verlangt es für die Coverdarstellung eine folder.jpg im Ordner. Meine ganzen Cover sind jedoch nach einem anderen Schema abgelegt: *_a.jpg für das Front-Cover, *_b.jpg für die Rückseite und *_cd.jpg entsprechend für die CD. Gesucht war also eine Möglichkeit aus den vorhandenen Covern schnell die folder.jpg zu generieren. Gleichzeitig habe ich mich dafür entschieden, die folder.jpg auf 256×256 Pixel zu beschränken um das Datenvolumen über das Wlan zu optimieren. Es geht ja auch nur um Thumbnails.
Die Lösung: Ein Commandozeilen-Einzeiler mit Hilfe von NConvert (muss im Pfad liegen), das die eigentliche Konvertierung übernimmt:
Kurze Erläuterung:
- das for … do sucht rekursiv vom aktuellen Verzeichnis alle *_a.jpg heraus
- das if not exist sorgt dafür, das vorhandene folder.jpg nicht neu generiert werden
- der nconvert Aufruf erzeugt ein neues folder.jpg, dabei wird nur verkleinert, nicht vergrößert, und alle Metadaten zwecks Dateigröße entfernt
- wie der Dateiname aus der Variable %i gebildet wird, verrät diese Übersicht
Wird der Speicher knapp oder möchte man aus anderen Gründen eine schnelle Übersicht, welche installierten Pakete am meisten Platz belegen, so hilft einem folgender Befehl:
Dieser schreibt alle installierten Pakete der Größe nach sortiert in eine Datei.
Ich bin auf eine Seite1 gestoßen, auf der ein paar nützlich Shortcuts und Befehle für den DOS-Promt (cmd.exe, Kommandozeile) vorgestellt werden. Mir ist die Kommandozeile wahrlich nicht fremd, aber diese Shortcuts kannte ich zum Großteil noch nicht. Sie funktionieren auf jeden Fall unter XP und Vista.
Damit stellt man ein, dass man mit der linken Maustaste Text markieren kann, der durch einen Tastendruck auf Enter/Return in die Zwischenablage übernommen wird. Text aus der Zwischenablage fügt man an der aktuellen Cursorposition mit einem Rechtsklick ein.
Viele kennen den Shortcut Pfeil hoch mit dem man durch die letzen Befehle blättern kann. F7 ist noch besser. Hier wird eine Liste der letzen Befehle angezeigt, die man nach Auswahl durch die Pfeiltasten mit Enter direkt ausführen kann.
Ergänzt dieses sogar noch. Merkt man sich die Befehlsnummer, so kann man diese nach drücken auf F9 direkt angeben und den Befehl ausführen. Super um mehrere Befehle im Wechsel oft auszuführen.
Die beiden nächsten Befehle sind optischer Art. Sie sind auch für die Batchprogrammierung interessant, da man damit den Batch-Prozessen ein individuelles Aussehen geben kann.
Dieser Befehl ändert die Farben im Dos-Fenster. Die Möglichen Farben verrät color /?. Will man diese dauerhaft für seine Dosfenster festlegen, so findet man passende Optionen in den Eigenschaften (siehe beim Quick-Edit-Modus).
Ändert den Titel des cmd-Fensters auf den angegebenen Text. Nützlich um Batch-Prozessen einen individuellen Titel zu geben um sie in der Taskleiste einfacher wiederzufinden. %time% wird dabei durch die aktuelle Zeit ersetzt.
Viele werden das auch schon mal erlebt haben: man will mal schnell jemand eine PDF-Datei schicken (z.B. eine mit LaTeX angefertigte Arbeit), doch diese ist durch die eingebundenen Bilder recht groß. Um die Dateigröße klein zu halten, würde man gerne in Kauf nehmen, dass die Bilder etwas stärker komprimiert werden. In Adobe Acrobat gibt es dafür eine spezielle Funktion, die sich “PDF optimieren” (oder so) nennt. Was macht man aber, wenn man kein Acrobat besitzt?
Im Netz bekommt man da im Wesentlichen 2 Ratschläge: Über einen PDF-Drucker neu ausdrucken (dabei gehen jedoch alle Bookmarks, Hyperlinks u.ä. verloren) oder für LaTeX einen zweiten Satz Bilder bereithalten (erheblicher Mehraufwand).
Ich habe mittlerweile eine andere Lösung gefunden: Ghostscript1. Ruft man GhostScript über die Kommandozeile auf (und nicht über irgendwelche Druck-Oberflächen) lässt sich mein Problem damit lösen. Das PDF wird neu erzeugt, dabei auch die Bilder komprimiert und alle Hyperlinks & Co bleiben erhalten.
Einzig negativ aufgefallen ist mir bisher nur, dass es bei manchen Bildern zu leichten Farbverfälschungen gekommen ist. Aber das lässt sich verschmerzen, da das Ziel ja eh eine verlustbehaftete Kompression war.
Ich habe dafür gleich mal eine Batch-Datei geschrieben (als gs_compress.bat abspeichern):
rem Define Variables
set gswin32c="C:\Programme\Ghostscript\gs8.54\bin\GSWin32c.exe"
set compressionprofile=screen
rem set compressionprofile=ebook
rem set compressionprofile=%2
set outputfilename=%~dpn1
set outputfilename=%outputfilename%_compressed_%compressionprofile%.pdf
rem Print welcome screen
echo.
echo =============================================
echo.
echo GhostView PDF Compress for %compressionprofile%
echo.
echo by: ikitz.de
echo.
echo =============================================
echo.
echo.
echo Recompress File (optimized for %compressionprofile%)...
echo.
echo.
echo Output: %outputfilename%
echo.
echo.
echo. =============================================
echo.
echo.
rem run ghostscript
%gswin32c% -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dPDFSETTINGS=/%compressionprofile% -sOutputFile="%outputfilename%" -c .setpdfwrite -f "%~f1"
echo.
echo.
echo Finished
Benutzung:
Einfach mit der gewünschten PDF als Parameter aufrufen (oder die Datei mit der Maus draufziehen, oder im Senden an-Menü verwenden, oder…). Es wird dann eine zweite PDF angelegt, deren Namen um “_compressed_PROFIL” ergänzt wird, das Original bleibt also erhalten.
Der Pfad zu Ghostscript muss gegebenfalls angepasst werden.
Die beiden Zeilen danach dienen dazu, das Kompressionsprofil auszuwählen, also entweder “screen” oder “ebook”. Will man flexibel bleiben nimmt man die dritte Zeile und gibt das Profil als zweiten Parameter der Batch an oder erstellt sich zwei Batchdateien mit beiden Varianten. (Hinweis: “screen” komprimiert stärker als “ebook” macht aber z.B. Bilder in LaTeX Beamer-Folien nahezu unbrauchbar)
Mir geht es häufig so, dass ich mich auf der Suche nach guter kostenloser Musik durch diverse Blogs und Webseiten klicke. Bevor man mehrere Tracks herunterlädt, möchte man sie natürlich erstmal probe hören. Also wird ein Song heruntergeladen, der Downloadordner auf der Festplatte geöffnet und der Song angespielt. Danach wird der Song entweder behalten oder gelöscht. Das ist ziemlich umständlich.
Einfacher geht es mit folgenden Bookmarklets1:
- PlayTagger (von Del.icio.us2 dort kann man das auch Live sehen. Ein sehr kleiner Player. Leider ohne große Kontrollmöglichkeiten und mit Del.icio.us-Link)
- JW Player (basiert auf dem PlayTagger-Bookmarklet wurde von mir aber so modifiziert, dass das Greasemonkeyscript “Inline Mp3 Player (JW version)”3 genutzt wird. Ergebnis ist ein erweiterter Player mit Seekbar)
- Make It Play (Erzeugt eine Leiste unten im Browserfenster, über die alle Links der Seite nacheinander angehört werden können. Quelle Grabb.it4)
Mein Favorit ist das zweite Bookmarklet. Aber da wo es das Design zu sehr zerstört, können die anderen beiden auch nützlich sein. Und zu guter letzt noch ein Link zu einer MP3, damit man das gleich mal Live ausprobieren kann (einfach obige Links anklicken): Eddie Elkins Orchestra - Who Cares (von Archive.org5)