Seite 1 von 1

Wasserzeichen mit mehreren Grafiken

Verfasst: Sa 29. Dez 2018, 20:39
von Zwixx
Hallo,

ich habe ein kleines Designproblem und komme nicht wirklich weiter. Ich habe eine Wasserzeichen, was 2 verschiedene Bilder beinhaltet. Eines davon soll in der Mitte, das andere in den jeweiligen 4 Ecken der Seite dargestellt werden (hier einmal durch die Datei mit hohem scale dargestellt). Das Problem ist, das ich die Bilder nicht wirklich fix positionieren kann, sondern sie sobald das mittlere Bild da ist, diese nach aussen gedrückt werden. Auch ist das ganze mit der Positionierei sehr suboptimal gelöst. Gibt es da eine einfache Möglichkeit solche mehrfachen Bilder darzustellen? Alternative wäre es, die Bilder aus dem Rand noch einmal in das Bild des Hintergrundes zu integrieren. Jedoch würde dadurch das Bild in der Mitte exorbitant größer dadurch.

Davon abgesehen wird offenbar, sobald ich das Bild in der Mitte etwas verändere, alles drumherum total durcheinandergewürfelt.

Vielen Dank schonmal für eventuelle Ideen.
\documentclass[a4paper, oneside]{scrreprt} 
\usepackage{geometry} 
\usepackage[ngerman]{babel}
\usepackage{background}
\usepackage{blindtext}

\geometry{a4paper, top=10mm, left=10mm, right=10mm, bottom=10mm, headsep=10mm, footskip=12mm} 

\backgroundsetup{scale=1, angle=0, opacity=.8, color=black, 
	contents={
		\begin{picture}(0,0)
			\put(250,-300){\hbox{\includegraphics[scale=1]{kreis.png}}}
		\end{picture}
		\begin{picture}(0,0)
			\put(-180,300){\hbox{\includegraphics[scale=1]{kreis.png}}}
		\end{picture}
		\begin{picture}(0,0)
			\put(-180,-300){\hbox{\includegraphics[scale=1]{kreis.png}}}
		\end{picture}
		\begin{picture}(0,0)
			\put(180,300){\hbox{\includegraphics[scale=1]{kreis.png}}}
		\end{picture}
		\includegraphics[scale=4]{kreis.png}
	}
}

\begin{document}
	
	\Blindtext

\end{document}

Verfasst: Sa 29. Dez 2018, 22:39
von Bartman
Da ich mich mit der picture-Umgebung nicht auskenne, möchte ich eine Alternative mit pgf/TikZ zeigen:
\documentclass{scrreprt}
\usepackage{geometry} 
\usepackage[ngerman]{babel}
\usepackage{background}% lädt tikz
\usepackage{blindtext}

\geometry{margin=10mm, headsep=10mm, footskip=12mm, showframe}% Optionen zusammengefasst 

\pgfdeclareimage[width=6cm]{figure-a}{example-image-a}
\pgfdeclareimage[width=4cm]{figure-b}{example-image-b}

\backgroundsetup{
	scale=1,
	angle=0, 
	opacity=.8, 
	color=black, 
	contents={%
		\begin{tikzpicture}[remember picture, overlay]
		\node [below right=15mm] at (current page.north west) {\pgfuseimage{figure-b}};
		\node [below left=15mm]  at (current page.north east) {\pgfuseimage{figure-b}};
		\node [above right=15mm] at (current page.south west) {\pgfuseimage{figure-b}};
		\node [above left=15mm]  at (current page.south east) {\pgfuseimage{figure-b}};
		\node                    at (current page)            {\pgfuseimage{figure-a}};
		\end{tikzpicture}%
   }
}

\begin{document}
\Blindtext
\end{document}

Verfasst: Sa 29. Dez 2018, 23:19
von Zwixx
Danke für die Antwort.

Ich hatte in der Tat schon etwas ähnliches, jedoch hat dies (wie auch das Beispiel) nicht funktioniert. Ich hatte als Compiler XeLatex verwendet, weil mein Dokument auch erweiterte Unicode-Zeichen enthält. Offenbar passt da aber irgendwas nicht so ganz und er interpretiert dies dann anders. Es kommt dann ein kuddelmuddel in dem PDF heraus...

Zumindest weiss ich jetzt aber, woran es liegt.

Verfasst: So 30. Dez 2018, 10:38
von Gast
Ich glaube jetzt ehrlich gesagt nicht, dass es an XeLaTeX liegt. Aber du solltest zum einen \hbox ganz schnell vergessen und zum anderen, einfach alles in dieselbe picture-Umgebung packen:
\documentclass[a4paper, oneside]{scrreprt} 
\usepackage{geometry} 
\usepackage[ngerman]{babel}
\usepackage{background}
\usepackage{blindtext}

\geometry{a4paper, top=10mm, left=10mm, right=10mm, bottom=10mm, headsep=10mm, footskip=12mm} 

\backgroundsetup{scale=1, angle=0, opacity=.8, color=black, 
   contents={
      \begin{picture}(0,0)
         \put(180,-300){\makebox(0,0)[c]{\includegraphics[scale=.1]{example-image}}}
         \put(-180,300){\makebox(0,0)[c]{\includegraphics[scale=.1]{example-image}}}
         \put(-180,-300){\makebox(0,0)[c]{\includegraphics[scale=.1]{example-image}}}
         \put(180,300){\makebox(0,0)[c]{\includegraphics[scale=.1]{example-image}}}
         \put(0,0){\makebox(0,0)[c]{\includegraphics[scale=.4]{example-image}}}
      \end{picture}
   }
}

\begin{document}
   
   \Blindtext

\end{document}
Das funktioniert bei mir mit pdflatex, xelatex oder lualatex wie erwartet. Natürlich geht das auch mit deinem Kreis (erschwert dann aber die Verwendung von Overleaf):
\documentclass[a4paper, oneside]{scrreprt} 
\usepackage{geometry} 
\usepackage[ngerman]{babel}
\usepackage{background}
\usepackage{blindtext}

\geometry{a4paper, top=10mm, left=10mm, right=10mm, bottom=10mm, headsep=10mm, footskip=12mm} 

\backgroundsetup{scale=1, angle=0, opacity=.8, color=black, 
   contents={
      \begin{picture}(0,0)
         \put(180,-300){\makebox(0,0)[c]{\includegraphics[scale=1]{kreis}}}
         \put(-180,300){\makebox(0,0)[c]{\includegraphics[scale=1]{kreis}}}
         \put(-180,-300){\makebox(0,0)[c]{\includegraphics[scale=1]{kreis}}}
         \put(180,300){\makebox(0,0)[c]{\includegraphics[scale=1]{kreis}}}
         \put(0,0){\makebox(0,0)[c]{\includegraphics[scale=4]{kreis}}}
      \end{picture}
   }
}

\begin{document}
   
   \Blindtext

\end{document}
Bei Verwendung einer picture-Umgebung ist es übrigens oft sinnvoll \unitlength zu setzen. Alternativ kann das Paket picture hilfreich sein, mit dem man direkt Längen angeben kann:
\documentclass[a4paper, oneside]{scrreprt} 
\usepackage{geometry} 
\usepackage[ngerman]{babel}
\usepackage{background}
\usepackage{blindtext}
\usepackage{picture}

\geometry{a4paper, top=10mm, left=10mm, right=10mm, bottom=10mm, headsep=10mm, footskip=12mm} 

\backgroundsetup{scale=1, angle=0, opacity=.8, color=black, 
   contents={
      \begin{picture}(0,0)
         \put(.5\paperwidth,-.5\paperheight){\makebox(0,0)[rb]{\includegraphics[scale=1]{kreis}}}
         \put(-.5\paperwidth,-.5\paperheight){\makebox(0,0)[lb]{\includegraphics[scale=1]{kreis}}}
         \put(-.5\paperwidth,.5\paperheight){\makebox(0,0)[lt]{\includegraphics[scale=1]{kreis}}}
         \put(.5\paperwidth,.5\paperheight){\makebox(0,0)[rt]{\includegraphics[scale=1]{kreis}}}
         \put(0,0){\makebox(0,0)[c]{\includegraphics[scale=4]{kreis}}}
      \end{picture}
   }
}

\begin{document}
   
   \Blindtext

\end{document}
Hier sieht man außerdem wie praktisch die picture-Version von \makebox tatsächlich ist.

Verfasst: So 30. Dez 2018, 10:40
von Gast
PS: Zur Erklärung, was mit deinen mehreren picture-Umgebungen schief geht, sei auf https://komascript.de/signifikanteLeerzeichen verwiesen. Du hast da nämlich zwischen den Umgebungen Leerzeichen durch nicht auskommentierte Zeilenenden. Da nützt es dann wenig, wenn die Umgebungen selbst weder Breite noch Höhe haben.

Verfasst: Mo 31. Dez 2018, 03:13
von Zwixx
Wie gesagt, ich hatte das Beispiel von Bartman in XeLatex probiert, was dann aber vollkommen durcheinander gekommen ist und nur Müll anzeigte. Die geiche Variante mit pdfLatex hat einwandfrei funktioniert. So habe ich es jetzt auch gelöst, da ich daran einige Zeit mit den verschiedensten Varianten (auch der von Bartman) experimentiert habe und nichts ging.

Aber danke für die Hinweise, das mit dem auskommentieren von Leerzeichen war mir so nicht bewusst und ist erstmal verwirrend.

Ich werde mir aber auf jeden Fall die anderen Varianten einmal genauer ansehen.

Das Zeichenproblem habe ich einfach mit einer eigenen Definition des Unicode-Zeichens umgangen. Zum Glück war es nur ein Zeichen, was ich recht schnell hinzufügen konnte.

Verfasst: Mo 31. Dez 2018, 10:55
von Gast
Missverständnis: Ich glaube nicht, dass das Problem bei deinem Originalbeispiel an xelatex lag. Bei Bartmans Beispiel gibt es mit xelatex in der Tat Probleme, das jedoch anders gelagert ist. Mit lualatex, der anderen Unicode-Engine, geht es aber und liefert das gleiche Ergebnis wie mit pdflatex.

Generell dürfte bei Verwendung von pgf/tikz lualatex oftmals eine gute Idee sein. Spätestens, wenn man pgfplots verwendet, geht sonst schon einmal gerne der Speicher aus. Manches geht auch nur mit lualatex.