Raster über Bild legen, zum trimmen
Raster über Bild legen, zum trimmen
Die meisten Grafiken, die ich in LaTeX einfüge, sind A4 große PDF-Dateien, die ich direkt in LaTeX beschneide. Nur ist das immer eine schätz Arbeit, da die meisten Grafiken auch noch weiß Seitlich sind, sprich ich sehe nicht wo sie wirklich aufhören.
Wie kann ich auf eine Grafik ein Millimeter-Raster legen, damit ich die Grafik auf Anhieb richtig zuschneiden kann?
Wie kann ich auf eine Grafik ein Millimeter-Raster legen, damit ich die Grafik auf Anhieb richtig zuschneiden kann?
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Das geht mit allen Mitteln Linien zu erzeugen (picture, TikZ, PSTricks).
Vielleicht ist ja die Lösung in Wie kann ich mit TikZ auf Bildern zeichnen? hilfreich.
Wenn es aber bloß um den Wegschnitt weißen Randes geht, dann lohnt sich eventuell ein Blick auf pdfcrop.
Vielleicht ist ja die Lösung in Wie kann ich mit TikZ auf Bildern zeichnen? hilfreich.
Wenn es aber bloß um den Wegschnitt weißen Randes geht, dann lohnt sich eventuell ein Blick auf pdfcrop.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Ich verwende schon lange TikZ ...
Ich möchte nicht jedes mal ein extrem umständliches Konstrukt machen müssen, damit ich mal "schnell" etwas zu schneiden kann ...
Gibt es da nicht ein Makro/Befehl dafür?
Und ein, pdfcrop suche ich in den Fall nicht. Ich erstelle oft Berichte wo ich aus Programmen eben Diagramme und Abbildungen in Latex einbinden muss. Einmal die Schnittmaße eingestellt und schon passt das eig. für immer ... mit pdfcrop müsste ich ja jedes mal die Datei bearbeiten.
Ich möchte nicht jedes mal ein extrem umständliches Konstrukt machen müssen, damit ich mal "schnell" etwas zu schneiden kann ...
Gibt es da nicht ein Makro/Befehl dafür?
Und ein, pdfcrop suche ich in den Fall nicht. Ich erstelle oft Berichte wo ich aus Programmen eben Diagramme und Abbildungen in Latex einbinden muss. Einmal die Schnittmaße eingestellt und schon passt das eig. für immer ... mit pdfcrop müsste ich ja jedes mal die Datei bearbeiten.
Nur mit copy'n'paste ist es leider nicht gemacht.
onimage ist gut und sehr kompakt (wenn man es mal installiert hat) und TikZ kann auch das Gitter darstellen.
Nur möchte ich nicht ein x-belibiges Gitter, sondern Einteilungen in mm, cm oder px.
Und ich weiß wirklich nicht wie ich das machen soll.
onimage ist gut und sehr kompakt (wenn man es mal installiert hat) und TikZ kann auch das Gitter darstellen.
Nur möchte ich nicht ein x-belibiges Gitter, sondern Einteilungen in mm, cm oder px.
Und ich weiß wirklich nicht wie ich das machen soll.
\documentclass[ tikz, border=15pt, %convert={outext=.png,density=300,size=600}, convert=false, ]{standalone} \makeatletter \newif\ifpgf@nodescope@grid \tikzset{ nodescope grid/.is if=pgf@nodescope@grid, every nodescope grid node/.style={ shape=rectangle, font=\small\ttfamily, inner sep=+0pt, outer sep=+1pt, fill=white, overlay}, every nodescope node/.style={ shape=rectangle, inner sep=+0pt, outer sep=+0pt, draw=none, fill=none}} \def\tikz@nodescope@env{% \pgfutil@ifnextchar[\tikz@@nodescope@env{\tikz@@@nodescope@env{}[]}} \def\tikz@@nodescope@env[#1]{% \pgfutil@ifnextchar[{\tikz@@@nodescope@env{#1}}{\tikz@@@nodescope@env{#1}[]}} \def\tikz@@@nodescope@env#1[#2]#3{% \pgfutil@ifnextchar[{\tikz@@@@nodescope@env{#1}{#2}{#3}}{\tikz@@@@nodescope@env{#1}{#2}{#3}[]}} \def\tikz@@@@nodescope@env#1#2#3[#4]{% \tikz@scope@env[#4] \node[every nodescope node/.try, #1, alias=tikz@last@nodescope]{\includegraphics[#2]{#3}};% \pgftransformresetnontranslations \pgftransformshift{\pgfpointanchor{tikz@last@nodescope}{south west}}% \pgfsetxvec{\pgfpointdiff{\pgfpointanchor{tikz@last@nodescope}{south west}}{\pgfpointanchor{tikz@last@nodescope}{south east}}}% \pgfsetyvec{\pgfpointdiff{\pgfpointanchor{tikz@last@nodescope}{south west}}{\pgfpointanchor{tikz@last@nodescope}{north west}}}% \ifpgf@nodescope@grid \draw[help lines,xstep=.1,ystep=.1] (0,0) grid (1,1); \foreach \x in {0,1,...,10}{ \node[every nodescope grid node/.try, left, rotate=90] at (\x/10,0) {\ifnum\x=10\relax1.0\else0.\x\fi}; \node[every nodescope grid node/.try, left] at (0,\x/10) {\ifnum\x=10\relax1.0\else0.\x\fi}; } \fi } \tikzaddtikzonlycommandshortcutlet\tikz@orignodescope\nodescope \tikzaddtikzonlycommandshortcutlet\tikz@origendnodescope\endnodescope \tikzaddtikzonlycommandshortcutlet\tikz@origstartnodescope\startnodescope \tikzaddtikzonlycommandshortcutlet\tikz@origstopnodescope\stopnodescope \tikzaddtikzonlycommandshortcutlet\nodescope\tikz@nodescope@env \tikzaddtikzonlycommandshortcutlet\endnodescope\endscope \tikzaddtikzonlycommandshortcutlet\startnodescope\nodescope \tikzaddtikzonlycommandshortcutlet\stopnodescope\endnodescope \pgfutil@g@addto@macro\tikz@uninstallcommands{% \let\nodescope\tikz@orignodescope \let\endnodescope\tikz@origendnodescope \let\startnodescope\tikz@origstartnodescope \let\stopnodescope\tikz@origstopnodescope } \tikzdeclarecoordinatesystem{nodescope}{% \edef\pgf@temp{#1}% \expandafter\pgfutil@ifnextchar\expandafter x\expandafter\tikz@nodescope@split\expandafter\tikz@nodescope@split\pgf@temp\pgf@stop } \def\tikz@nodescope@split#1:#2\pgf@stop{% \begingroup \edef\pgf@temp{#1}% \pgftransformresetnontranslations \pgfsetxvec{\pgfpointdiff{\pgfpointanchor{#1}{south west}}{\pgfpointanchor{#1}{south east}}}% \pgfsetyvec{\pgfpointdiff{\pgfpointanchor{#1}{south west}}{\pgfpointanchor{#1}{north west}}}% \tikz@scan@one@point\tikz@nodescope@shift(#2)\relax \endgroup } \def\tikz@nodescope@shift#1{% \pgf@process{\pgfpointadd{#1}{\pgfpointanchor{\pgf@temp}{south west}}}% } \makeatother \begin{document} \begin{tikzpicture} \begin{nodescope}[draw][width=.9\textwidth]{test_bild}[nodescope grid] \end{nodescope} \end{tikzpicture} \end{document}
Vielleicht verstehe ich Dich ja falsch, aber mit TikZ kannst Du doch einfach ein grid mit der Schrittweite Deiner Wahl darüber legen?
Gruß
Elke
\documentclass[tikz,margin=1cm]{standalone} \usepackage{mwe}%für das Beispielbild \begin{document} \begin{tikzpicture}[gitter/.style={#1}] \node[ anchor=south west, inner sep=0pt,outer sep=0pt ](p){\includegraphics{example-image}}; \foreach \g in {% {step=1mm,very thin,red!40}% ,{step=5mm,thin},{step=1cm,thick}% ,{step=5cm,very thick,red!50!black}% }\draw[red,gitter/.expanded=\g](0,0)grid(p.north east); \end{tikzpicture} \end{document}
Elke
Danke, ich habe mich glaub ich von den nicht dokumentieren und extream komplizierten Beispiel blenden lassen, ich habe das mal neu aufgesetzt:
Nur wie bekomme ich die Zahlen an den Achsen hin?
Nach unten soll nicht negativ sein und in beiden Achsen soll die beschriftung bis zur letzten ganzen Zahl gehen. Wie geht das?
Dann würde ich das in ein Makro packen und dann in den ich die Schritte, Linienfarbe und die Datei als Variable setzte.
\documentclass[tikz,margin=1cm]{standalone} \usepackage{mwe} \begin{document} \begin{tikzpicture}[gitter/.style={#1}] \node[anchor=north west](p){\includegraphics{example-image}}; \foreach \x in {step=1cm} \draw[white,gitter/.expanded=\x](0,0) grid (p.south east); \foreach \x in {step=1cm} \draw (0,0) (p.north east) node[above]{$\x$}; %\foreach \x in {1,...,10} %\draw (\x,0) (\x,0) node[above]{$\x$}; \foreach \y in {-1,...,-10} \draw (0,\y) (0,\y) node[left] {$\y$}; \end{tikzpicture} \end{document}
Nach unten soll nicht negativ sein und in beiden Achsen soll die beschriftung bis zur letzten ganzen Zahl gehen. Wie geht das?
Dann würde ich das in ein Makro packen und dann in den ich die Schritte, Linienfarbe und die Datei als Variable setzte.
Warum lässt du beim Einfügen des Bildes die Nodeoptionen
weg? Soll der Nullpunkt des Gitters nicht in der linken oberen Ecke des Bildes liegen sondern außerhalb? Ändere mal in Deinem Code die Farbe des Gitters von white zu red, dann kannst Du das Problem sehen.
oder
Gruß
Elke
inner sep=0pt,outer sep=0pt
\documentclass[tikz]{standalone} \usepackage{mwe} \begin{document} \begin{tikzpicture}[gitter/.style={#1}] \node[anchor=north west, inner sep=0pt,outer sep=0pt% notwendig!! ](p){\includegraphics{example-image}}; \clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east); \foreach \x in {step=1cm} \draw[red,gitter/.expanded=\x,line width=2pt,opacity=0.5](0,0) grid (p.south east); \foreach \x in {1,...,30}\node[above] at (\x,0){\x}; \foreach \y in {1,...,30}\node[left] at (0,-\y){\y}; \end{tikzpicture} \end{document}
\documentclass[tikz]{standalone} \usepackage{mwe} \begin{document} \begin{tikzpicture} \node[anchor=north west, inner sep=0pt,outer sep=0pt% notwendig!! ](p){\includegraphics{example-image}}; \clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east); \draw[white,step=1cm](0,0) grid (p.south east); \foreach \x in {1,...,30}\node[above] at (\x,0){\x}; \foreach \y in {1,...,30}\node[left] at (0,-\y){\y}; \end{tikzpicture} \end{document}
Elke
Danke Elke,
ich hab das wohl viel zu kompliziert angegangen.
Die 'sep=0pt' habe ich einfach beim vereinachen gelöscht, habe da beim weißen Gitter keine Änderung gesehen
So funktioniert es quasi, ein paar Fragen sind aber immer noch offen:
- Jetzt wird nur bis 15cm die Beschriftung angezeigt. Ich kann das auch auf 99 ergänzen, aber gibt es keine Möglichkeit, dass immer soweit laufen zu lassen, bis auch das Gitter endet?
- die Beschriftung erfolgt jetzt immer in 1cm Schritten, wie lässt sich das auf z.B. 5mm Schritte (analog zum Gitter) ändern?
ich hab das wohl viel zu kompliziert angegangen.
Die 'sep=0pt' habe ich einfach beim vereinachen gelöscht, habe da beim weißen Gitter keine Änderung gesehen

\documentclass{scrartcl} \usepackage{tikz} \usepackage{mwe} \newcommand{\gridgraphics}[3][]{% \begin{tikzpicture} \node[anchor=north west,inner sep=0pt,outer sep=0pt](p){\includegraphics[#1]{#2}}; \clip([xshift=-1.5em,yshift=1.5em]p.north west)rectangle(p.south east); \draw[#3](0,0) grid (p.south east); \foreach \x in {1,...,15}\node[above] at (\x,0){\x}; \foreach \y in {1,...,15}\node[left] at (0,-\y){\y}; \end{tikzpicture} } \begin{document} \gridgraphics[trim=0cm 0cm 0cm 0cm, clip, scale=1]{example-image}{white,step=5mm}\\[5mm] \includegraphics[trim=0cm 0cm 0cm 0cm, clip, scale=1]{example-image} \end{document}
- Jetzt wird nur bis 15cm die Beschriftung angezeigt. Ich kann das auch auf 99 ergänzen, aber gibt es keine Möglichkeit, dass immer soweit laufen zu lassen, bis auch das Gitter endet?
- die Beschriftung erfolgt jetzt immer in 1cm Schritten, wie lässt sich das auf z.B. 5mm Schritte (analog zum Gitter) ändern?