Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Grafik in tkiz-Umgebung mittels clip beschneiden

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.07.2010
    Beiträge
    135

    Grafik in tkiz-Umgebung mittels clip beschneiden

    Hallo,

    ich füge in eine tikzpicture-Umgebung mit fester Breite eine PDF-Datei mit variabler Breite ein (vorher: pdfcrop). Manche PDF-Dateien sind jedoch breiter als die mit der tikzpicture-Umgebung festgelegte Box.

    Wie kann ich denn mittels clip meine PDF-Dateien automatisch am rechten Ende der Box abschneiden, sofern sie breiter sind als die Box?

    Anbei ein Minimalbeispiel (ohne die PDF-Datei):

    Code:
    \documentclass[11pt,twoside,paper=a4]{scrbook}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    
    \usepackage[ngerman]{babel}
    
    \usepackage{calc}
    \usepackage{mathtools}
    
    \usepackage{tikz,pgf,pgfplots}
    
    \usepackage[outer=37mm,inner=20mm,bottom=23mm,top=20mm]{geometry}
    \geometry{papersize={170mm,240mm},total={124mm,185mm}}
    
    \tikzstyle{mybox} = [draw=black!100, fill=black!0, very thick,
        rectangle, inner sep=5pt]
    
    \makeatletter
    \newcommand{\dummy}[1]{%
    \dummy@i{#1}%
    }
    \def\dummy@i#1{%
    \vspace{2mm}%
    \hspace{3mm} %
    \begin{tikzpicture}%
    %\clip(?,?) rectangle (?,?); % <= Hier soll der Ausgabebereich beschnitten werden
    \node [
        mybox,
        text width=\columnwidth-35pt
      ]\bgroup%
    #1%
    \egroup;%
    \end{tikzpicture}%
    \par%
    }
    \makeatother
    
    \begin{document}
    \dummy{\includegraphics[scale=0.8]{PDF-Datei-pdf}}
    \end{document}
    Viele Grüße
    e271

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hi,

    schaue dir das Paket adjustbox an. Allerdings verstehe ich auch deine Frage nicht richtig

    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.07.2010
    Beiträge
    135

    Red face

    Danke für Deinen Tipp.

    Nochmal zu meinem Problem:
    Die tikzpicture-Umgebung erzeugt einen umrahmten Bereich, also quasi eine Framebox mit fester Breite.
    In diese Box kommt mittels includegraphics eine pdf-Datei. Diese wurde vorher auf der Kommadozeile mit pdfcrop beschnitten.

    Das Problem ist jetzt folgendes:
    Manche pdf-Dateien sind etwas zu breit für die Box und ragen rechts hinaus auf den Seitenrand.
    Darum möchte ich, dass alles, was rechts über die Box hinaus ragt, abgeschnitten wird.
    Ich möchte das aber nicht jedesmal als Option bei includegraphics angeben, sondern innerhalb der tikzpicture-Umgebung automatisieren.

    Ich hoffe, mein Anliegen ist jetzt etwas klarer

    Viele Grüße
    e271

  4. #4
    Registrierter Benutzer
    Registriert seit
    27.11.2007
    Beiträge
    375
    Hallo,

    gib doch einfach \includgraphics ein "clip=true" als Option mit (siehe graphicx Doku)...

    Christian.
    Ubuntu 16.04 -- TeX Live 2015 -- Emacs (AUCTeX, RefTeX)

  5. #5
    Registrierter Benutzer
    Registriert seit
    22.07.2010
    Beiträge
    135
    @tral
    Dadurch wird aber noch nichts beschnitten. Ich müsste dann vorher noch ein "trim" als Option setzen und dabei bei jeder Grafik berechnen, wie viel abgeschnitten werden muss.

  6. #6
    Registrierter Benutzer
    Registriert seit
    22.07.2010
    Beiträge
    135
    Ich habs hingekriegt:

    Hier die Ergänzungen/Änderungen:
    Code:
    ...
    \usepackage{adjustbox}
    
    \newsavebox\IBox %
    \newdimen\width %
    \newdimen\height %
    
    \makeatletter
    \newcommand{\dummy}[1]{%
    \dummy@i{#1}%
    }
    \def\dummy@i#1{%
    \vspace{2mm}%
    \hspace{3mm} %
    \savebox\IBox
    {%
    #1%
    }%
    \width=\wd\IBox %
    \height=\ht\IBox %
    \begin{tikzpicture}%
    
    \node [
        mybox,
        text width=\columnwidth-35pt
      ]\bgroup%
    \pgfmathparse{max(\width-\columnwidth,0)} %
    \clipbox{0pt 0pt \pgfmathresult pt 0pt}{#1}%
    %
    \egroup;%
    
    \end{tikzpicture}%
    \par%
    }
    \makeatother
    Und hier nochmal das komplette Beispiel:
    Code:
    \documentclass[11pt,twoside,paper=a4]{scrbook}
    
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    
    \usepackage[ngerman]{babel}
    
    \usepackage{calc}
    \usepackage{mathtools}
    
    \usepackage{tikz,pgf,pgfplots}
    \usepackage{adjustbox}
    
    \usepackage[outer=37mm,inner=20mm,bottom=23mm,top=20mm]{geometry}
    \geometry{papersize={170mm,240mm},total={124mm,185mm}}
    
    \tikzstyle{mybox} = [draw=black!100, fill=black!0, very thick,
        rectangle, inner sep=5pt]
    
    \newsavebox\IBox %
    \newdimen\width %
    \newdimen\height %
    
    \makeatletter
    \newcommand{\dummy}[1]{%
    \dummy@i{#1}%
    }
    \def\dummy@i#1{%
    \vspace{2mm}%
    \hspace{3mm} %
    \savebox\IBox
    {%
    #1%
    }%
    \width=\wd\IBox %
    \height=\ht\IBox %
    \begin{tikzpicture}%
    
    \node [
        mybox,
        text width=\columnwidth-35pt
      ]\bgroup%
    \pgfmathparse{max(\width-\columnwidth,0)} %
    \clipbox{0pt 0pt \pgfmathresult pt 0pt}{#1}%
    %
    \egroup;%
    
    \end{tikzpicture}%
    \par%
    }
    \makeatother
    
    \begin{document}
    \dummy{\includegraphics[scale=0.8]{PDF-Datei.pdf}}
    \end{document}

Lesezeichen

Berechtigungen

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