DeclareNewLayer, \begin{spacing} im Content, Zeilenumbruch

Layout von Seiten, Rändern, Fusszeilen, usw, modifizieren


PaulMuaddib
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 16. Okt 2018, 14:55

DeclareNewLayer, \begin{spacing} im Content, Zeilenumbruch

Beitrag von PaulMuaddib »

Warum verursacht \begin{spacing} am Anfang des Content Felds einen Zeilenumbruch?
\documentclass[a4paper]{article}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage[ngerman]{babel}

\usepackage[draft=true]{scrlayer}

\usepackage[a4paper,includefoot,nohead,nomarginpar,twocolumn,showframe,
		top=11.5cm,bottom=2.2cm,left=1.8cm,right=1.8cm,
		columnsep=1.5cm]{geometry}


\newcommand{\green}[1]{
	\textcolor[RGB]{83,175,76}{#1}
}

\DeclareNewLayer[
        align=tl,
        hoffset=2cm,
        voffset=8cm,
        width=4cm,
        height=2\baselineskip,
        contents={
			\begin{spacing}{1.2}
				\green{\MakeUppercase{%
				test test test test test test
				test test test test test test}}
			\end{spacing}
		}
	]{test_layer}
		

\DeclareNewPageStyleByLayers{titlestyle}{test_layer}
\pagestyle{titlestyle}	

\begin{document}

Test

\end{document}

Gast

Beitrag von Gast »

Wenn Du \show\spacing in Deinem Dokument ausführst, erhältst Du
> \spacing=\long macro:
#1->\par \begingroup \setstretch {#1}.
l.36 \show\spacing
in der .log-Datei. Das heißt, dass \spacing{...} und damit auch \begin{spacing}{...}...\end{spacing} zu Beginn einen \par ausführen. Das kann zu einem neuen Absatz und damit einem Umbruch führen.

Wenn man das nicht möchte, kann man \setspace direkt nutzen.
\documentclass[a4paper]{article}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage[ngerman]{babel}

\usepackage[draft=true]{scrlayer}

\usepackage[a4paper,includefoot,nohead,nomarginpar,twocolumn,showframe,
      top=11.5cm,bottom=2.2cm,left=1.8cm,right=1.8cm,
      columnsep=1.5cm]{geometry}


\newcommand{\green}[1]{
   \textcolor[RGB]{83,175,76}{#1}
}

\DeclareNewLayer[
        align=tl,
        hoffset=2cm,
        voffset=8cm,
        width=4cm,
        height=2\baselineskip,
        contents={%
         \begingroup\setstretch{1.2}%
            \green{\MakeUppercase{%
            test test test test test test
            test test test test test test}}%
         \par\endgroup
      }
   ]{test_layer}
     

\DeclareNewPageStyleByLayers{titlestyle}{test_layer}
\pagestyle{titlestyle}  

\begin{document}

Test

\end{document}

Gast

Beitrag von Gast »

Der unerwünschte Leerraum kommt von den vergessenen %s in der Definition von \green. Die dort eingeführten Leerzeichen können sich im Blocksatz sehr weit dehnen, sodass die Illusion einer Einrückung entsteht.

Mit
\documentclass[a4paper]{article}
\usepackage{setspace}
\usepackage{xcolor}
\usepackage[ngerman]{babel}

\usepackage[draft=true]{scrlayer}

\usepackage[a4paper,includefoot,nohead,nomarginpar,twocolumn,showframe,
      top=11.5cm,bottom=2.2cm,left=1.8cm,right=1.8cm,
      columnsep=1.5cm]{geometry}

\newcommand{\green}[1]{%
  \textcolor[RGB]{83,175,76}{#1}}

\DeclareNewLayer[
        align=tl,
        hoffset=2cm,
        voffset=8cm,
        width=4cm,
        height=2\baselineskip,
        contents={%
         \begingroup\setstretch{1.2}%
            \green{\MakeUppercase{%
            test test test test test test
            test test test test test test}}%
         \par\endgroup
      }
   ]{test_layer}
     

\DeclareNewPageStyleByLayers{titlestyle}{test_layer}
\pagestyle{titlestyle}  

\begin{document}
Test
\end{document}
sollte es in Ordnung sein.

PaulMuaddib
Forum-Newbie
Forum-Newbie
Beiträge: 8
Registriert: Di 16. Okt 2018, 14:55

Beitrag von PaulMuaddib »

Dankeschön :D

Antworten