Anzeige:
Ergebnis 1 bis 5 von 5

Thema: \newcommand um screenshots einzufügen - Kommentare?

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Lüneburg
    Beiträge
    35

    \newcommand um screenshots einzufügen - Kommentare?

    Hallo,
    ich bezeichne mich noch als Latex-Anfänger, fange aber gerade mit meine Diplomarbeit an, muss mich deswegen jetzt stärker hiermit auseinandersetzen.

    Für zahlreiche Screenshots habe ich mir jetzt folgenden Befehl geschrieben - und bin schon fast stolz drauf:
    Code:
    % ===================================================
    % mein Screenshot-Befehl
    % ===================================================
    % Input: 4 Parameter
    % #1 = Name des Bildes, ohne Extension, muss im richtigen Pfad sein (../screenshots)
    % #2 = Caption zum Bild, taucht so auch im Abbildungsverzeichnis auf...
    % #3 = Quellenangabe - mit \citet{ ... } angeben, steht nicht im Abbildungsverzeichnis
    % #4 = Positionierung entsprechend des WrapFig-Pakets   --- Placement is one of r, l, i, o, R, L, I, O, for right, left,  inside, outside, (here / FLOAT).
    % #5 = Größen-Anteil auf der Seite
    
    \newcommand{\screenshot}[5]
    {
    \begin{wrapfigure}{#4}{#5\linewidth}
     	\includegraphics[width=#5\textwidth]{../screenshots/#1}
      	\caption[#2]{#2 (Quelle: #3)}
    \end{wrapfigure}
    }
    %%%%%  End of Screenshot ;-)
    Mit dem Aufruf
    Code:
    \screenshot{Bild1}{Testbild-Beschriftung}{\citet{Mustermann:1234uq}}{O}{0.7}
    klappt auch alles wunderbar.

    Ein-zwei-drei kleine Sachen sind da aber noch:
    - Wie bekomme ich automatisch ein Label hin, z.B. Grafik1 ... ??
    - (Ich dachte, vielleicht könnte ich irgendwas mit einem Counter machen... oder so)
    - Ich hätte gerne einen Rahmen um die Screenshots, bzw. würde es gerne mal ausprobieren. Geht da nur Minipage? (da muss man schon wieder ne größenangabe machen..
    - es sind doch eine menge angaben, die man machen muss. wie könnte ich z.B. bei fehlender Zitatangabe #3 ganz auf den Quellenhinweis verzichten, oder bei fehlender Größenangabe eine Standardgröße einstellen...
    - bestimmt irgendwas mit "If" - traue ich mich aber noch nicht...

    So, ich freue mich über Eure Kommentare und Anregungen...
    hein
    gerade Diplomarbeit: web 2.0 und Umweltpoltik - Chancen und Risiken für Umwelt-NGOs... - mein bisher grösstes LaTex-Projekt ;-)

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von heinbloed Beitrag anzeigen
    - Wie bekomme ich automatisch ein Label hin, z.B. Grafik1 ... ??
    - (Ich dachte, vielleicht könnte ich irgendwas mit einem Counter machen... oder so)
    Du könntest dafür den Abbildungszähler nehmen, also nach der \caption
    Code:
    \label{fig:\thefigure}
    -- der Haken an der Sache ist, daß sich Deine Marken so verschieben können, wenn Du mal einen \screenshot vor einem anderen einfügst. Besser wäre eine symbolische Auflösung, vllt nach dem Bildnamen? Dann solltest Du jedes Bild nur einmalig per \screenshot darstellen...
    Zitat Zitat von heinbloed Beitrag anzeigen
    - Ich hätte gerne einen Rahmen um die Screenshots, bzw. würde es gerne mal ausprobieren. Geht da nur Minipage? (da muss man schon wieder ne größenangabe machen..
    \fbox{...}
    Zitat Zitat von heinbloed Beitrag anzeigen
    - es sind doch eine menge angaben, die man machen muss. wie könnte ich z.B. bei fehlender Zitatangabe #3 ganz auf den Quellenhinweis verzichten, oder bei fehlender Größenangabe eine Standardgröße einstellen...
    - bestimmt irgendwas mit "If" - traue ich mich aber noch nicht...
    \newcommand erlaubt einen optionalen Parameter für das neue Makro:
    Code:
    \newcommand\bla[2][default]{...}
    :
    \bla{blubb}% #1=default, #2=blubb
    \bla[anders]{blubb} % #1=anders, #2=blubb
    Wenn Du die Reihenfolge änderst, also Parameter #1 als Quelle auswertest und #3 als Bildnamen, dann könnte das etwa so aussehen:
    Code:
    \newcommand{\screenshot}[5][\empty]{%
      \begin{wrapfigure}{#4}{#5\linewidth}
        \includegraphics[width=#5\textwidth]{../screenshots/#3}
        \ifx#1\empty%
          \caption{#2}%
        \else%
          \caption[#2]{#2 (Quelle: #1)}%
        \fi%
        \label{fig:#3}%<--\ref{fig:<Bildname>}
      \end{wrapfigure}
    }
    der Aufruf ändert sich dann entsprechend:
    Code:
    \screenshot{caption}{Bild}{Positionierung}{Bruchteil f. Breite}
    %bzw.
    \screenshot[Quelle]{caption}{Bild}{Positionierung}{Bruchteil f. Breite}
    Wenn Du Positionierung/Bruchteil auch optional haben willst, dann schau hier mal nach "mehrere optionale Parameter" oder so ähnlich.

    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    An der Stelle noch ein kleiner Tipp:

    Zitat Zitat von heinbloed Beitrag anzeigen
    \caption[#2]{#2 (Quelle: #3)}
    Parameter an optionale Argumente am besten immer mit zusätzlichen geschweiften Klammern übergeben, also so:

    \caption[{#2}]{#2 (Quelle: #3)}

    Ansonsten bekommt man Probleme, wenn #2 eckige Klammern beinhaltet.

    Liebe Grüße,
    Axel

  4. #4
    Registrierter Benutzer
    Registriert seit
    10.01.2005
    Beiträge
    979
    Hi Heinbloed,

    Zitat Zitat von heinbloed Beitrag anzeigen
    Wie bekomme ich automatisch ein Label hin, z.B. Grafik1 ... ??
    Die Frage ist, ob Du überhaupt Labels brauchst? Labels sind nur dazu da, um die Grafik mit \ref{label} im Text referenzieren zu können, also um z.B. "siehe Bild 23" sagen zu können. Wenn Du das nicht brauchst, brauchst Du auch keine Labels definieren.

    Zitat Zitat von rais Beitrag anzeigen
    Du könntest dafür den Abbildungszähler nehmen
    finde ich keine gute Idee, wie Du selber hinterher ausführst, hat man hinterher keine Kontrolle, wie denn das Label wirklich heißt und wenn man im Text auf die Grafik verweist, muss man \ref auch ändern, wenn eine Grafik zwischengeschoben wurde. Ist also weniger hilfreich.

    Besser wäre es, den Dateinamen als Label zu benutzen.


    Salnic

  5. #5
    Registrierter Benutzer
    Registriert seit
    29.09.2006
    Ort
    Lüneburg
    Beiträge
    35

    Danke erstmal ...

    Also, Euch allen vielen Dank,
    ich habe mein Macro jetzt so angepasst - und es funktioniert super. Bisher.
    Code:
    \newcommand\screenshot[5][\empty]
    {
    \begin{wrapfigure}{#4}{#5\linewidth}
     	\includegraphics[width=#5\textwidth]{../screenshots/#3}
      	\ifx#1\empty%
          		\caption{#2}%
       	\else%
          		\caption[{#2}]{#2 (Quelle: #1)}%
        	\fi%
    	\end{wrapfigure}
    }
    Statt einen weiteren Parameter aufzunehmen, hab ich einfach einen zweites Makro definiert "screenshotbox", der mir den Screenshot in einem Rahmen darstellt....

    jetzt kann ich mich wieder neuen problemen zuwenden...
    Danke
    gerade Diplomarbeit: web 2.0 und Umweltpoltik - Chancen und Risiken für Umwelt-NGOs... - mein bisher grösstes LaTex-Projekt ;-)

Lesezeichen

Berechtigungen

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