Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Bilder aus Latex exportieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.09.2009
    Beiträge
    98

    Bilder aus Latex exportieren

    Hallo liebes Forum,

    habe meine Arbeit so gut wie fertig. Mein Betreuer will jetzt noch, dass alle in der Arbeit entahltenen Bilder in einen extra Ordner kopiert werden sollen. Sie sollen dann auch in der Form Abbildung_2.8.jpg bzw. Abbildung_2.8.pdf (so wie in der Arbeit) beschriftet sein.

    Habe dazu noch kein passendes Package oder Tool gefunden.

    Meine bisheriger Ansatze war \usepackage{preview}. Das macht allerdings nicht das was ich will:

    1. alle Bilder sind in einem PDF-File. Gut, da gibts eine Funktion alle Seiten als einzelne Datei entnehmen. Allerdings gibts dann wieder Aufwand die ganzen Dateien entsprechend zu beschriften.

    2. mit der option "graphics" holt er sich nur die Bilder, die per \inculdegraphics eingebunden werden. D.h. TikZ bleibt außen vor.

    3. mit der option "floats" wird nun auch TikZ berücksichtigt (so wie auch alle tables...) Allerdings ist da nun der caption-inhalt in den bildern. (und mit subfloat gibts dann auch noch Probleme ... )

    Alles nicht so dolle. Habe auch noch an Tex4HT gedacht. Das exportiert ja auch alle nicht html-konformen elemente in eine Datei. Allerdings baut es auf dvi-basis auf und da gibts wieder Probleme mit den packages die auf pdflatex aufbauen (v.a. tikz) ...

    Gibt auch noch ein package was auch in die ähnliche richtung geht: crop
    Damit kann man lt. beschreibung auch den Text "ausblenden". Allerdings wird nun auch nichts entsprechend beschriftet.

    So wie ich das sehe werd ich um manuelles herauschneiden der Bilder wohl nicht herumkommen, oder?


    Vielen Dank!

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Es ist mir nicht klar, was Du willst: Sollen alle Bild-Dateien in einen Ordner auf einem Server kopiert werden und dort den gleichen Namen haben wie in Deiner Arbeit? Das hätte dann nur am Rande mit LaTeX zu tun.

    Gruß,
    Alexander

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.09.2009
    Beiträge
    98
    Hallo,

    nein nichts mit Sever. Alles schön auf der heimischen Festplatte.

    Ich möchte folgendes:

    Alle Bilder, die mit einer figure-Umgebung in das Dokument gebracht worden sind, sollen nochmal separat als einzelne Bilddatei vorliegen. Und wenn innerhalb der figure umgebung ein subfloat Befehl ist, dann wäre es schön, wenn auch diese als einzelne Bilder exportiert werden würden.

    z.b. Ich habe als allererstes Bild eine Bild, welches mit tikz erstellt wurde. Es trägt die Beschriftung "Abbildung 2.1: Wichtiges Bild". Das nächste wurde per includegrahics eingebunden. Es trägt die Beschriftung "Abbildung 2.2: Auch wichtig". Das dritte Bild "Abbildung 3.1: Übersicht" enthält subfloats. Also z.b. "(a)" und "(b)"

    Jetzt sollen die Bilder exportiert werden.

    Das heißt: das was in Abbildung 2.1 mit Tikz gezeichnet wurde soll als einzelne Datei (mit einer möglichst engen BoundingBox) mit dem Namen "Abbildung 2.1.pdf" vorliegen. Vorzugsweise als pdf, eps oder svg (halt irgendein vektorgrafikformat). Das gleiche mit Abbildung 2.2. Bei Abbildung 3.1 wäre es nun auch schön, wenn es zwei Bilder erzeugen würde: "Abbildung 3.1 a.pdf" und "Abbildung 3.1 b.pdf"

    Es ist im Prinzip ein Latex-Problem, da nachher als pdf kein Programm mehr weiß, ob es nun eine figure umgebung oder nur includegraphics oder table oder eine minipage war.

    Da das ganze einiges an Aufwand ist, wäre es nun schön, wenn das automatisiert abläuft ...

  4. #4
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    vielleicht kann tatsächlich einer ein skript schreiben das dir alle dateien automatisch benennt. ich glaube aber fast nicht das das so einfach geht.

    für das tikz bild würde ich ein dokument in der form

    Code:
    \documentclass{article}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{tikz}
    \begin{document}
    \thispagestyle{empty}
    ...tikzcode...
    \end{document}
    erstellen. das resultierende pdf enthält nur die tikzgrafik die sich dann mit dem kommandozeilentool pdfcrop zuschneiden lässt, sodass nur die reine grafik übrig bleibt.

    gruss
    Mein Ball ist umgefallen

  5. #5
    Registrierter Benutzer
    Registriert seit
    03.03.2009
    Beiträge
    35
    Versteh das Problem nicht? Wenn Du die Bilder alle eingebunden hast, dann müssen sie ja schon irgendwo als Bilddateien liegen?

    Dann kopiere und benenn sie doch wie gewünscht um, mit dem Filebrowser Deiner Wahl oder in der Kommandozeile.

    Um das zu automatisieren würde mir nur ein Shell-Skript einfallen, aber da bist Du sicher schneller per Hand, bevor Du das geschrieben hast.

    Und Bilder wieder aus dem fertigen pdf extrahieren? Hm, nee...

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Die Bilder zu extrahieren ist so schwer nicht:

    \documentclass{article}
    \usepackage[active,tightpage]{preview}
    \usepackage{graphicx,tikz}
    \PreviewEnvironment{tikzpicture}
    \PreviewMacro[*[[!]{\includegraphics}
    \begin{document}
    abc

    \begin{tikzpicture}
    \draw[->,red] (0,0)--(1,0)--(1,1);
    \end{tikzpicture}


    \includegraphics[width=4cm]{tiger}
    \end{document}
    Aber das Zerlegen der pdf und die Benennung der einzelnen Bilder musst du dann mit irgendwas anderem machen. Falls es dir reicht, dass die Nummern direkt auf den Bildern sind, kannst du es mal mit \PreviewSnarfEnvironment{figure} versuchen.

    Ich würde aber zuerst einmal den Betreuer fragen, ob ihm klar ist, dass diverse Bilder gar nicht direkt vorliegen. Und dass Nummerierungen sich schnell ändern können.

    Btw: Das "saubere" Ausschneiden eines Bildes aus einer pdf-Seite ist i.A. gar nicht möglich. Meist wird dabei nur der umgebende Text ausgeblendet ist aber noch im Code vorhanden.

  7. #7
    Registrierter Benutzer
    Registriert seit
    10.09.2009
    Beiträge
    98
    @Waldschrat:
    Bilder die mit TiKz erstellt worden sind, liegen nicht als (Roh-)Bild vor.

    Aber ich meine mich zu erinnern, dass das tikz-package sogar von Haus aus eine solche exportfunktion mitbringt. Muss ich noch mal nachgucken. Ansonsten muss ich wohl noch jene Bilder z.b. nach o.g. Weg exportieren.

    Natürlich kann man das alles per Hand umbenennen. Aber eben genau DAS war das Problem, was ich halt automatisch machen lassen wollte. Hab mir aber schon gedacht, dass es dafür keine einfache, saubere Lösung geben wird, die insgesamt zügiger ist, als das händische Umbenennen ist. Naja, schade!

    @ulrike
    Du hast recht, mit Adobe Acrobat hab ich z.B. genau diese Ausschneidproblematik gehabt. Allerdings kann ich einen Rechner benutzen, auf dem Adobe Illustrator drauf ist. Meines Wissens nach geht das mit dem Programm. Aber ich muss da erst hinfahren... Für den Privatkauf ist es doch etwas preisintensiv.

    Vielen Dank euch allen

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Die Beschreibung der Exportfunktion von tikz findest du unter "Externalizing Graphics". Die ließe sich dazu nutzen, deinen Bilder automatisch die richtigen Namen zu geben (in \beginpgfgraphicnamed kann man sowas wie \thefigure benutzen). Aber du müsstest erstens jedes Bild mit einigem Code umgeben. Und zweitens ein paar Befehle schreiben, die die Liste der Bilder ausgibt (damit du die dann nötigen pdflatex-Läufe automatisieren kannst). So in etwa könnte es gehen (Hauptdatei heißt test.tex):

    Code:
    \documentclass{article}
    \usepackage{tikz,graphicx}
    \pgfrealjobname{test}
    
    \newwrite\bildliste
    \immediate\openout\bildliste=test-bildliste.bat
    \newcommand\addtobatchfile{%
     \immediate\write\bildliste{%
     pdflatex --jobname=fig-\thefigure\space test}}
    
    %\renewcommand\addtobatchfile{}
    \begin{document}
    
    \begin{figure}
    \stepcounter{figure}
    \beginpgfgraphicnamed{fig-\thefigure}
    \begin{tikzpicture}
    \draw[->,red] (0,0)--(1,0)--(1,1);
    \end{tikzpicture}
    \endpgfgraphicnamed
    \addtobatchfile
    \addtocounter{figure}{-1}
    
    \caption{ABC}
    \end{figure}
    
    \begin{figure}
    \stepcounter{figure}
    \beginpgfgraphicnamed{fig-\thefigure}
    \includegraphics[width=4cm]{rose}
    \endpgfgraphicnamed
    \addtobatchfile
    \addtocounter{figure}{-1}
    
    \caption{ABC}
    \end{figure}
    
    
    \immediate\closeout\bildliste
    \end{document}
    Wenn du die batch-Datei arbeiten lässt, ist eventuell sinnvoll, die \immediate\openout-Zeile zu kommentieren und \addtobatchfile auf 0 zu setzen. \thefigure muss natürlich im Dokument eindeutig sein. Wenn nicht, musst du noch \thechapter o.ä. hinzufügen.

  9. #9
    Registrierter Benutzer
    Registriert seit
    10.09.2009
    Beiträge
    98
    Hallo Ulrike,

    genau sowas hatte ich irgendwie in Erinnerung. Über den konkreten Befehl bin ich vorhin gerade erst gestolpert - und zwar durch ein älteres posting von dir http://www.meinews.net/pdf-t235801.html?

    Dein Quellcode scheint genau das zu machen, was ich gern möchte! Und auch vielen Dank für das vorausschauende Implementieren der Batch-Datei-Erstellung!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •