scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


maximilianminimalis
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 14. Okt 2020, 14:03

scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Beitrag von maximilianminimalis »

Hallo zusammen,

bin neu und auf Empfehlung von Markus hier ...

Mir scheint's als übersprechen/überschreiben sich neuerdings die "contents-" Inhalte über Layergrenzen hinweg.

Der folgende Code funktionierte die letzten 1,5 Jahren fehlerfrei - neuerdings leider nicht mehr (der Inhalt des ersten Layers taucht neuerdings im zweiten/dritten Layer auf). Erklären kann ich mir dies leider nicht. Vielleicht/hoffentlich weiß jemand von Euch warum und kann mir weiterhelfen.

Vielen Dank!

Umgebung: TL2020 (Up2date).
Compiler: LuaLatex.
Editor: TexStudio 3.x

\RequirePackage{luatex85}
\documentclass[draft]{scrartcl}

\usepackage[%
	paperheight=294mm,
	paperwidth=210mm,
	%showcrop,
	%showframe,
	margin=0cm,
	noheadfoot,
	nomarginpar,]%
{geometry}

\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{blindtext}

\usepackage{tikz}
\usetikzlibrary{fadings}

\newcommand\fadingtext[3][]{%
	\begin{tikzfadingfrompicture}[name=fading letter]%
		\node[text=transparent!0,inner xsep=0pt,outer xsep=0pt,#1] {#3};
	\end{tikzfadingfrompicture}%
	\begin{tikzpicture}[baseline=(textnode.base)]%
		\node[inner sep=0pt,outer sep=0pt,{#1}](textnode){\phantom{#3}};
		\shade[path fading=fading letter,#2,fit fading=false]
		(textnode.south west) rectangle (textnode.north east);%
	\end{tikzpicture}%
}

%Hintergrundebenengestaltung mit tikz:
\tikzset{%
	seite/.style = {%
		text=black,
		shade,%shading=axis,shading angle=45,
		left color=green,
		right color=orange,
		middle color=brown,
		minimum height=294mm,
		minimum width=210mm,
		anchor=south west
	},
}

\usepackage{scrlayer}
\DeclareNewLayer[%
	background,
	align=tl,
	hoffset=0mm,
	voffset=0mm,
	width=\paperwidth,
	height=\paperheight,]%
{seite}

\DeclareNewLayer[%
	foreground,
	align=tl,
	hoffset=5mm,
	voffset=5mm,
	width=200mm,
	height=142mm,]%
{info}

\DeclareNewLayer[%
	foreground,
	align=tl,
	hoffset=5mm,
	voffset=152mm,
	width=200mm,
	height=65mm,]%
{nummer}

\DeclareNewLayer[%
	foreground,
	align=tl,
	hoffset=5mm,
	voffset=222mm,
	width=200mm,
	height=69mm,]%
{name}

%Hintergrundebenengestaltung anwenden:
\newcommand{\seite}{%
	\begin{tikzpicture}%
		\node (seite) [seite] {};%
	\end{tikzpicture}%
}
\ModifyLayer[contents=\seite]{seite}

%Inhalte den Vordergrundebenen zuweisen:
\newcommand{\info}{%
	\centering%
	\fadingtext[scale=1.0]{%
		%shading=axis, shading angle=45,
		left color=red,%
		right color=yellow,%
		middle color=blue}%
	{%
		\parbox{0.80\layerwidth}{%
			\noindent
			\blindtext[1]
		}%<-parbox
	}%<-fadingtext
	\par%<-wg. centering!
}
\ModifyLayer[contents=\info]{info}

\newcommand{\nummer}{%
	\centering
	\fadingtext[scale=1.0]{%<- funktioniert nicht [mehr]
		left color=red,%
		right color=yellow,%
		middle color=blue}%
	{%
		{\fontsize{40pt}{\baselineskip}\selectfont
			1234}%
	}%<-\fadingtext
	\par%<-wg. centering!
}
\ModifyLayer[contents=\nummer,]{nummer}

\newcommand{\name}{%
	\centering%
%	\fadingtext[scale=1.0]{%<- funktioniert [auch] nicht [mehr]
%		left color=red,%
%		right color=yellow,%
%		middle color=blue}%
	{%
		{\fontsize{40pt}{\baselineskip}\selectfont%
			oror}%
	}%
	\par%<-wg. centering!
}
\ModifyLayer[contents=\name,]{name}

\DeclareNewPageStyleByLayers{seitenStil}{%
	seite,%
	info,%
	nummer,%
	name,%
}
\pagestyle{seitenStil}

\begin{document}
\mbox{}%
\end{document}

Viele Grüße
MM


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Beitrag von u_fischer »

also ohne Bilder, die zeigen, wie es richtig aussieht und was nun falsch ist, und was der erste und was der zweite Layer ist, ist das eine ziemlich mühselig Frage.


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Beitrag von u_fischer »

Meine Kristallkugel sagt, dass du dieses Problem hast: https://tex.stackexchange.com/a/566619/2388

Mache deine fadings eindeutig, mit einem Zähler

\newcounter{fadingcnt}
\newcommand\fadingtext[3][]{\stepcounter{fadingcnt}%
	\begin{tikzfadingfrompicture}[name=fading letter\arabic{fadingcnt}]%
		\node[text=transparent!0,inner xsep=0pt,outer xsep=0pt,#1] {#3};
	\end{tikzfadingfrompicture}%
	\begin{tikzpicture}[baseline=(textnode.base)]%
		\node[inner sep=0pt,outer sep=0pt,{#1}](textnode){\phantom{#3}};
		\shade[path fading=fading letter\arabic{fadingcnt},#2,fit fading=false]
		(textnode.south west) rectangle (textnode.north east);%
	\end{tikzpicture}%
}

maximilianminimalis
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 14. Okt 2020, 14:03

Re: scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Beitrag von maximilianminimalis »

Der Counter-Trick funktioniert bestens. Danke sehr!


gast

Re: scrlayer contents Variableninhalte überschreiben/-sprechen/-lagern sich

Beitrag von gast »

maximilianminimalis hat geschrieben:
Mi 14. Okt 2020, 14:25

bin neu und auf Empfehlung von Markus hier ...

Wobei Markus auch darauf hingewiesen hat, dass scrlayer noch nie Layerinhalte an den definierten Layergrenzen abgeschnitten hat und das deshalb eher kein KOMA-Script sondern ein Problem mit dem Umgang mit TikZ/pgf ist … Allerdings dachte er dabei eher an Clipping als Fading, was Ulrike dankenswerter Weise als den besseren Weg erkannt und erklärt hat.

Allgemein sei daher der Umstand festgehalten, dass die Layer von scrlayer genau wie TeX-Boxen oder LaTeX's \parbox kein automatisches Clipping beinhalten.


Antworten