PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zweispaltiger Kasten mit Zeilennummerierung/Seitenumbruch



rafael
03-11-2012, 21:05
Hallo,

hab das Thema bereits vor ein paar Tagen in der Tex-group hier eingestellt:
https://groups.google.com/d/topic/de.comp.text.tex/SFKXpRm0gMs/discussion
Hab aber den Verdacht, dass es dort nicht hingehört, deshalb noch einmal die gleiche Frage:

Kann man eine Umgebung (notfalls auch Makro) erzeugen, bei der Text
(1) farbig unterlegt bzw. gerahmt,
(1) zweispaltig,
(2) mit optionalem Seitenumbruch und
(3) mit Zeilennummerierung
gesetzt werden?

Die naheliegende Kombination von framed, multicol und lineno funktioniert leider nicht, wenn die Textmenge einen Seitenumbruch erforderlich macht.


\documentclass[ngerman]{scrartcl}
\usepackage{blindtext,babel,multicol,xcolor}
\usepackage{lineno,framed}

\definecolor{shadecolor}{gray}{.6}

\newenvironment{mynumberedtext}
{%%%%shaded+multicol -> TeX capacity exceeded
\begin{shaded}
\begin{multicols}{2}
[\setlength{\columnsep}{2em}]
\resetlinenumber\modulolinenumbers[5]
%\begin{linenumbers}
}
{%
%\end{linenumbers}
\end{multicols}
\end{shaded}
}

\begin{document}
\begin{mynumberedtext}
\blindtext[6]
\end{mynumberedtext}
\end{document}

Vielleicht lässt sich auch mit tikz sowas erzeugen, ich früher mal folgenden Code benutzt (bei dem auch lokale Fußnoten gehen), bei dem man aber kein automatischer Seitenumbruch und auch keine Nummerierung funktionieren:
Link: http://www.mrunix.de/forums/archive/index.php/t-68150.html


\documentclass[parskip=half-]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{tikz}
\usepackage{multicol}

\newenvironment{Quote}%
{\begin{list}{}%
{\setlength\leftmargin{0.5\multicolsep}\setlength\ rightmargin{\leftmargin}}%
\item[]\ignorespaces}%
{\end{list}}

%Befehl für Box ohne Seitenumbruch
%drei obligatorische Argumente: Linienstärke, Titel, Inhalt
\newcommand\Ungeteilt[3]{\noindent%
\begin{tikzpicture}[line width=#1]
\pgfmathparse{\textwidth-\pgflinewidth-\multicolsep}
\node(N)[preaction={fill,opacity=0.1}]%
[draw,text width=\pgfmathresult pt,text justified,inner sep=0.5\multicolsep,outer sep=0pt]%
{\vspace*{0.5\baselineskip}\begin{multicols}{2}#3\ end{multicols}};
\path (N.north west)+(1,0)node[draw,fill=white,anchor=west,rectangle,rounded corners=2mm]{#2};
\end{tikzpicture}}

%Befehl für Box mit genau einem Seitenumbruch
%ein optionales Argument: Längenkorrektur der Box auf der ersten Seite
%drei obligatorische Argumente: Linienstärke, Titel, Inhalt
\newcommand\Geteilt[4][1pt]{\noindent%
\begin{tikzpicture}[remember picture, overlay,line width=#2]
\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemarg in+\textwidth-0.5\pgflinewidth}
\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\he adheight+\topmargin+\textheight+0.5\pgflinewidth+# 1}
\path(current page.north west)+(\x,-\y)coordinate(B);
\coordinate(O)at (0.5\pgflinewidth,-0.5\pgflinewidth);
\fill[opacity=0.08](O)rectangle(B);
\draw(B-|O)--(O)-|(B)--(B);
\path (O)+(1,0)node[draw,fill=white,anchor=west,rectangle,rounded corners=2mm]{#3};
\end{tikzpicture}%
\begin{Quote}
\begin{multicols}{2}
#4
\end{multicols}
\end{Quote}
\vspace*{-2\baselineskip}
\begin{tikzpicture}[remember picture, overlay,line width=#2]
\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemarg in+\textwidth-0.5\pgflinewidth}
\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\he adheight+\topmargin-0.5\pgflinewidth}
\path(current page.north west)+(\x,-\y)coordinate(B);
\coordinate(O)at (0.5\pgflinewidth,0.5\pgflinewidth);
\fill[opacity=0.1](O)rectangle(B);
\draw(B-|O)--(O)-|(B)--(B);
\end{tikzpicture}}


\begin{document}

\Ungeteilt{1pt}{langer Titel}{\blindtext[1]}

\blindtext

\Geteilt{1pt}{Titel}{\foreach \i in {1,...,4}{\blindtext}}

\blindtext

\Ungeteilt{1pt}{langer Titel}{\blindtext[1]}

\end{document}


Ich habe im Netz einen Ansatz für gerahmte Texte mit Seitenumbruch gefunden, der bei mir allerdings fehlerhaft kompiliert, so dass ich nicht weiß, wie brauchbar er ist und ob dann noch die zweispaltigkeit und Zeilennummerierung klappen:
Link: http://de.comp.text.tex.narkive.com/0QbzOx2Z/farbige-ovalbox-mit-textfeld-in-kopflinie-evtl-mehrseitig


%<------------------------------------------->%
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{ifthen}
\RequirePackage{tikz}
\RequirePackage{framed}
\RequirePackage{xcolor}

\usetikzlibrary{shapes,calc}

\tikzset{infobox/.style={rectangle,fill=infobox!50, rounded corners,
text justified}}

\definecolor{infobox}{rgb}{1,.75,.25}

\makeatletter

\newenvironment{infobox}[1][\empty]%
{\def\FrameCommand{\***@box{#1}}
\def\FirstFrameCommand{\***@boxT{#1}}
\def\MidFrameCommand{\***@boxM}
\def\LastFrameCommand{\***@boxL}
\MakeFramed{\FrameRestore}}
{\endMakeFramed}


\newcommand{\***@box}[3][]{
\setbox1=\vbox{\noindent #3}
\setbox3=\hbox{#2}
\setbox4=\hbox{}
\setbox2=\hbox{}
\ht2=\ht1\dp2=\dp1\wd2=\wd1
\ht4=\ht3\dp4=\dp3\wd4=\wd3
\begin{tikzpicture}
\node(box){\copy2};
\ifthenelse{\equal{#2}{\empty}}
{
\fill[infobox, sharp corners] (box.south east)[rounded
corners]--(box.north east) -- (box.north west)[sharp corners] --
(box.south west) --cycle;
\draw[rounded corners, very thick, draw=infobox] (box.south
east)--(box.north east) -- (box.north west) -- (box.south west) --cycle;
}
{
\node (titel) [text=black, anchor=south east] at (box.north east)
{\box4};

\fill[fill=infobox, sharp corners, draw=infobox, very
thick](box.north east)[rounded corners] -- (titel.north east) --
(titel.north west)%[sharp corners]
-- (titel.south west) -- ++(-1mm,0pt)[sharp corners] -- cycle;
\node at (titel.center)[anchor=center]{\box3};

\fill[infobox] (box.south east)[sharp corners]--(box.north
east)[rounded corners] -- (box.north west) -- (box.south west) --cycle;
\draw[rounded corners, draw=infobox, very thick] (box.south
east)[sharp corners]--(box.north east)[rounded corners] -- (box.north
west) -- (box.south west)--cycle;
}

\node at (box.center) [anchor=center, #1]{\box1};

\end{tikzpicture}
}

\newcommand{\***@boxT}[3][]{
\setbox1=\vbox{\noindent #3}
\setbox3=\hbox{#2}
\setbox4=\hbox{}
\setbox2=\hbox{}
\ht2=\ht1\dp2=\dp1\wd2=\wd1
\ht4=\ht3\dp4=\dp3\wd4=\wd3
\begin{tikzpicture}
\node(box){\copy2};
%Titelbox
\ifthenelse{\equal{#2}{\empty}}
{
\fill[infobox, sharp corners] (box.south east)[rounded
corners]--(box.north east) -- (box.north west)[sharp corners] --
(box.south west) --cycle;
\draw[rounded corners,very thick, draw=infobox] (box.south
east)--(box.north east) -- (box.north west) -- (box.south west);
}
{
\node (titel) [text=black, anchor=south east] at (box.north east)
{\box4};
\fill[fill=infobox, sharp corners, draw=infobox, very
thick](box.north east)[rounded corners] -- (titel.north east) --
(titel.north west)%[sharp corners]
-- (titel.south west) -- ++(-1mm,0pt)[sharp corners] -- cycle;

\node at (titel.center)[anchor=center]{\box3};

\fill[infobox, sharp corners] (box.south east)[sharp
corners]--(box.north east)[rounded corners] -- (box.north west)[sharp
corners] -- (box.south west) --cycle;
\draw[rounded corners, draw=infobox, very thick] (box.south
east)[sharp corners]--(box.north east)[rounded corners] -- (box.north
west) -- (box.south west);
}

\node at (box.center) [anchor=center, #1]{\box1};

\end{tikzpicture}
}

\newcommand{\***@boxL}[2][]{
\setbox1=\vbox{#2}
\setbox2=\hbox{}
\ht2=\ht1\dp2=\dp1\wd2=\wd1
\begin{tikzpicture}%[remember picture]
\node(box){\box2};
\fill[infobox] (box.north west)[rounded corners] -- (box.south west)
-- (box.south east)[sharp corners] -- (box.north east) --cycle;
\draw[draw=infobox, very thick] (box.north west)[rounded corners] --
(box.south west) -- (box.south east)[sharp corners] -- (box.north east);
\node at(box.center)[anchor=center]{\box1};
\end{tikzpicture}
}

\newcommand{\***@boxM}[2][]{
\begin{tikzpicture}
\node(box)[infobox, sharp corners, #1]{#2};
\draw[very thick, draw=infobox] (box.south east)--(box.north east);
\draw[very thick, draw=infobox] (box.south west)--(box.north west);
\end{tikzpicture}
}

\makeatother
\begin{document}

\begin{infobox}[Titel]
\begin{tabular}{cc}
blskdfk&sdfkljejrlkjf\\
efrgjelrjfj&wjljwlejrl
\end{tabular}

\Blindtext[10]
\end{infobox}

\end{document}

Sollte es bessere Ansätze geben, bin für jeden Hinweis dankbar.

rafael
06-11-2012, 16:29
Kein Tip oder Hinweis?

esdd
06-11-2012, 17:19
Hallo,

in dem aus dem mrunix-Archiv kopierten Code sind Leerzeichen drin, die ein Kompilieren verhindern, z.B. steht da \he adheight. Der originale und für das damalige Problem funktionierende Code findet sich hier (http://www.mrunix.de/forums/showpost.php?p=313183&postcount=11). Allerdings gelten trotzdem die dort genannten und von dir erwähnten Einschränkungen. Es hilft dir also nicht.

Den Code von de.comp.text.tex ... kannst du zum Laufen bringen, wenn du die in den Befehlen verwendeten drei Sterne in Buchstaben änderst (im gesamten Dokument einheitlich). Aber ich glaub nicht, dass das weiter hilft.

Hinzu kommt, dass die Zeilennummern beim Paket lineno außerhalb des Textkörpers in den Rand gesetzt werden. Bei mir klappt nicht mal die Kombination von framed und lineno ohne Zweispaltigkeit und Seitenumbruch, denn es fehlen dann die Zeilennummern.

Gruß
Elke

rafael
11-11-2012, 20:17
Den Code von de.comp.text.tex ... kannst du zum Laufen bringen, wenn du die in den Befehlen verwendeten drei Sterne in Buchstaben änderst (im gesamten Dokument einheitlich). Aber ich glaub nicht, dass das weiter hilft.

Danke, hat funktioniert, aber es half tatsächlich nicht.



Hinzu kommt, dass die Zeilennummern beim Paket lineno außerhalb des Textkörpers in den Rand gesetzt werden. Bei mir klappt nicht mal die Kombination von framed und lineno ohne Zweispaltigkeit und Seitenumbruch, denn es fehlen dann die Zeilennummern.


Hm, das ist wirklich verflixt.
Ich habe ein eigenes Paket geschrieben, das genau die Anforderungen erfüllt.
Es stellt die Umgebung \begin{mytextblock}[Optionen]Text\end{mytextblock} zur Verfügung.
Die Optionen bestehen aus Formateinstellungen und Textfeldern, die dann platziert werden.
Da sich lineno immer an die Seitenränder hält, ist die Bearbeitung extrem eingeschränkt. Damit man die Kästen auch in der Größe anpassen kann, brauche ich ein Paket, das die Seitenränder (\textwidth usw.) lokal verändert (und nicht für die ganze Seite).
Ich habe trotz langer Suche keins gefunden. Die Befehle aus changepage sind entweder nicht lokal oder ändern nicht die Seitenränder (was auch für die addmargin Umgebung aus dem Komascript gilt).

Wer also einen Tip hat, wie Seitenränder leicht angepasst werden können, dem sei gedankt. Die Implementierung dieser Sache würde das Paket mytextblock-rr sehr flexibel machen.


\documentclass[ngerman]{scrartcl}
\usepackage{babel}
\usepackage{blindtext}
\usepackage[utf8]{inputenc}
%%%%zur genauen Platzierung
%\usepackage[showframe]{geometry}
%\usepackage{showframe}
\usepackage{filecontents}

\begin{filecontents}{mytextblock-rr.sty}
\ProvidesPackage{mytextkasten-rr}[2012/11/11 v0.2 package for typesetting nice textblocks with optional linenumbering, multicolumn and pagebreaks]
%%%Dieses Paket stellt die Umgebung \begin{mytextblock}[<options>]Text inside the block\end{mytextblock} zur Verfügung.
%%%Das Beispiel deomonstriert die Verwendung
%%%Achtung mitunter sind mehrere Latexdurchgänge notwendig (da die labels immer erst im nächsten Durchgang verarbeitet werden können)

\usepackage{xkeyval}
%\usepackage[table]{xcolor}
\usepackage{lineno}
\usepackage{tikz}
\usepackage{calc,xifthen}
\usepackage{multicol}
\usepackage{changepage}
\usepackage{refcount}%not used in the current version
\usepackage{everypage}

\newcounter{mytextblockcounter}

\newcommand{\myisemptycheck}[3]{%like ifthenelse
\ifthenelse{\isempty{#1}\OR\equal{#1}{}\OR\equal{ }{#1}}{#2}{#3}}


%%lets define some keys
\define@cmdkey{mytextblock}{ID}{}
\define@cmdkey{mytextblock}{title}[]{}
\define@cmdkey{mytextblock}{source}[]{}
\define@cmdkey{mytextblock}{beforehook}{}
\define@cmdkey{mytextblock}{einleitung}{}
\define@cmdkey{mytextblock}{aftertexthook}{}
\define@cmdkey{mytextblock}{afterallhook}{}
\define@cmdkey{mytextblock}{pagelayout}{}
\define@cmdkey{mytextblock}{linethickness}{}
\define@cmdkey{mytextblock}{fillcolor}{}
\define@key{mytextblock}{columnsep}{\setlength{\co lumnsep}{#1}}
\define@cmdkey{mytextblock}{linenumbersep}{}
\newlength{\mytextblockrightstretch}
\newlength{\mytextblockleftstretch}
\define@key{mytextblock}{rightstretch}{\setlength{ \mytextblockrightstretch}{#1}}
\define@key{mytextblock}{leftstretch}{\setlength{\ mytextblockleftstretch}{#1}}
\newlength{\mytextblockinnerframesep}
\define@key{mytextblock}{innerframesep}{\setlength {\mytextblockinnerframesep}{#1}}

\define@boolkey{mytextblock}{insidemytextblock}{}
\define@boolkey{mytextblock}{framed}{}
\define@boolkey{mytextblock}{shaded}{}
\define@boolkey{mytextblock}{linenumbering}{}
\define@boolkey{mytextblock}{multicol}{}
\define@cmdkey{mytextblock}{multicols}{}

\define@cmdkey{mytextblock}{sourcefont}[]{}
\define@cmdkey{mytextblock}{titlefont}[]{}
\define@cmdkey{mytextblock}{einleitungfont}{}

%%%%%%Presettings
\presetkeys{mytextblock}{%
ID={k-\themytextblockcounter}
,title={}
,source={}
,beforehook={}
,einleitung={}
,aftertexthook={}
,afterallhook={}
,pagelayout={}
,insidemytextblock={true}
,linethickness={1pt}
,innerframesep={3pt}
,rightstretch={0cm}
,leftstretch={0cm}
,columnsep={13pt}
,linenumbersep={3pt}
,fillcolor={}%momentan noch nicht implementiert
,multicol=true
,multicols=2
,framed=true
,shaded=false
,linenumbering=true
,sourcefont={\footnotesize\raggedright}
,titlefont={\large\bfseries}
,einleitungfont={\slshape}
}{}

\newenvironment{mytextblocknumberQuote}%
{\begin{list}{}%
{\setlength\rightmargin{\mytextblockinnerframesep} %
\setlength\leftmargin{\multicolsep+\cmdKV@mytextbl ock@linethickness}
\setlength{\partopsep}{0pt}
\setlength{\topsep}{0pt}%
\setlength{\itemsep}{0pt}%
}
\item[]\ignorespaces}%
{\end{list}}

%%%%%Koordinaten am Anfang und Ende des Textblock
\newcommand{\mytextblockCatchCoordinateontop}{%
\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness]%
\coordinate (\cmdKV@mytextblock@ID topleftFP) at (-.5\pgflinewidth-\mytextblockinnerframesep,\pgflinewidth);%
\coordinate (\cmdKV@mytextblock@ID toprightFP) at (\textwidth+\pgflinewidth+\mytextblockinnerframese p,\pgflinewidth);%
\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemarg in-.5\pgflinewidth-\mytextblockinnerframesep}%
\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\he adheight+\topmargin+\textheight}%
\path (current page.north west)+(\x,-\y)coordinate (\cmdKV@mytextblock@ID pagebottomleftFP);%
\path (\cmdKV@mytextblock@ID pagebottomleftFP)+(\textwidth+\pgflinewidth+2\myte xtblockinnerframesep,0)coordinate(\cmdKV@mytextblo ck@ID pagebottomrightFP);%
\coordinate (\cmdKV@mytextblock@ID titleplacingFP) at (1,0);%
\end{tikzpicture}%
}%

\newcommand{\mytextblockCatchCoordinateonbottom}{%
\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness,baseline=-.8\baselineskip]%
\coordinate(\cmdKV@mytextblock@ID bottomleftLP) at (-\mytextblockinnerframesep-.5\pgflinewidth,-\pgflinewidth);
\coordinate(\cmdKV@mytextblock@ID bottomrightLP) at (\textwidth+1\pgflinewidth+\mytextblockinnerframes ep,-\pgflinewidth);%
\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemarg in-\mytextblockinnerframesep-1\pgflinewidth}
\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\he adheight+\topmargin-\pgflinewidth}%
\path(current page.north west)+(\x,-\y)coordinate(\cmdKV@mytextblock@ID pagetopleftLP);%
\path(\cmdKV@mytextblock@ID pagetopleftLP)+(\textwidth+2\mytextblockinnerframe sep+2\pgflinewidth,0)coordinate(\cmdKV@mytextblock @ID pagetoprightLP);%
\end{tikzpicture}%
}

%%%%%%%%%%unser hübscher Textblock
\newenvironment{mytextblock}[1][]{%
\refstepcounter{mytextblockcounter}%
\setkeys{mytextblock}{#1}%
\label{\cmdKV@mytextblock@ID}%
%%%Koordinateneinfangen
\par\noindent\bigskip%
\mytextblockCatchCoordinateontop%
%%%%Kasten und frame setz
\ifthenelse{\equal{\pageref{\cmdKV@mytextblock@ID} }%
{\pageref{\cmdKV@mytextblock@ID-end}}}%
{}%Titel wird erst am Ende gesetzt
{\makeFramOrShadeatOnefirstpage
}
%%Der Text beginnt
\par\noindent%
\ifthenelse{\isempty{\cmdKV@mytextblock@einleitung }}{}{{\par\noindent\cmdKV@mytextblock@einleitungfo nt\cmdKV@mytextblock@einleitung\par\vspace{.5\base lineskip}}}%
\ifKV@mytextblock@linenumbering\begin{mytextblockn umberQuote}\else\begin{mytextblockQuote}\fi
\ifKV@mytextblock@multicol\begin{multicols}{\cmdKV @mytextblock@multicols}
[\vspace*{-\multicolsep}]
\else\fi
\ifKV@mytextblock@linenumbering
\resetlinenumber\modulolinenumbers[5]%
\setlength{\linenumbersep}{\cmdKV@mytextblock@line numbersep}
\setlength{\linenumberwidth}{8pt}
\begin{linenumbers}%
\else\fi
}
{%
\ifKV@mytextblock@linenumbering%
\end{linenumbers}%
\else\fi%
\ifKV@mytextblock@multicol%
\end{multicols}\vspace*{-.8\baselineskip}%
\else\fi%
\ifKV@mytextblock@linenumbering\end{mytextblocknum berQuote}\else\end{mytextblockQuote}\fi%
\myisemptycheck{\cmdKV@mytextblock@source}{}%
{\rule{\textwidth}{.5pt}\par\noindent{\cmdKV@mytex tblock@sourcefont\cmdKV@mytextblock@source}}%
\myisemptycheck{\cmdKV@mytextblock@aftertexthook}{ }{\par\noindent\cmdKV@mytextblock@aftertexthook}%
\par\noindent%
%%Position
%%%%Koordinaten bestimmen
\mytextblockCatchCoordinateonbottom
%%%Rahmen setzen
\ifthenelse{\equal{\pageref{\cmdKV@mytextblock@ID} }{\pageref{\cmdKV@mytextblock@ID-end}}}%
{\makeFramOrShadeomOnepage%
}%
{\makeFramOrShadeonLastpage%
}%
\label{\cmdKV@mytextblock@ID-end}
\KV@mytextblock@insidemytextblockfalse%
}%

%%%alle Rahmen und Shattierungen
\newcommand{\makeFramOrShadeomOnepage}{%
\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness]
\ifKV@mytextblock@shaded\fill[opacity=.08] (\cmdKV@mytextblock@ID topleftFP) rectangle (\cmdKV@mytextblock@ID bottomrightLP);\else\fi%
\ifKV@mytextblock@framed\path[draw] (\cmdKV@mytextblock@ID topleftFP) rectangle (\cmdKV@mytextblock@ID bottomrightLP);
\node at (\cmdKV@mytextblock@ID titleplacingFP)[draw,above=0mm,fill=white,rectangle,anchor=west,ro unded corners=2mm] (title)
{{\cmdKV@mytextblock@titlefont\cmdKV@mytextblock@t itle}};%
\else\fi
\end{tikzpicture}
}

\newcommand{\makeFramOrShadeatOnefirstpage}{%
\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness]
\ifKV@mytextblock@shaded%
\fill[opacity=0.08](\cmdKV@mytextblock@ID topleftFP)rectangle(\cmdKV@mytextblock@ID pagebottomrightFP);%
\else\fi%
\ifKV@mytextblock@framed%
\path[draw](\cmdKV@mytextblock@ID pagebottomleftFP)--(\cmdKV@mytextblock@ID topleftFP)--(\cmdKV@mytextblock@ID toprightFP)--(\cmdKV@mytextblock@ID pagebottomrightFP);%
\node at (\cmdKV@mytextblock@ID titleplacingFP)[draw,above=0mm,fill=white,rectangle,anchor=west,ro unded corners=2mm] (titel)%
{{\cmdKV@mytextblock@titlefont\cmdKV@mytextblock@t itle}};%
\else%
\fi
\end{tikzpicture}
}

\newcommand{\makeFramOrShadeonLastpage}{%
\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness]
\ifKV@mytextblock@shaded\fill[opacity=0.1](\cmdKV@mytextblock@ID bottomleftLP) rectangle (\cmdKV@mytextblock@ID pagetoprightLP);\else\fi
\ifKV@mytextblock@framed\draw(\cmdKV@mytextblock@I D pagetoprightLP)--(\cmdKV@mytextblock@ID bottomrightLP)--(\cmdKV@mytextblock@ID bottomleftLP)--(\cmdKV@mytextblock@ID pagetopleftLP);\else\fi
\end{tikzpicture}
}

\newcommand{\makeFrameOrShadebetweenpages}{%
\AddEverypageHook{%
\ifKV@mytextblock@insidemytextblock
\ifthenelse{\equal{\pageref{\cmdKV@mytextblock@ID} }{\thepage}\OR\equal{\pageref{\cmdKV@mytextblock@I D-end}}{\thepage}}
{}%erste oder letzte Seite
{\begin{tikzpicture}[remember picture,overlay,line width=\cmdKV@mytextblock@linethickness]%
\pgfmathsetlengthmacro\x{1in+\hoffset+\oddsidemarg in-.5\pgflinewidth-\mytextblockinnerframesep}%
\pgfmathsetlengthmacro\y{1in+\voffset+\headsep+\he adheight+\topmargin}%
\path[draw] (current page.north west)+(\x,-\y)coordinate (\cmdKV@mytextblock@ID page\thepage topleft);%
\path[draw] (\cmdKV@mytextblock@ID page\thepage topleft)+(\textwidth+1\pgflinewidth+2\mytextblocki nnerframesep,0)coordinate (\cmdKV@mytextblock@ID page\thepage topright);%
\path[draw] (\cmdKV@mytextblock@ID page\thepage topright)+(0,-\textheight)coordinate(\cmdKV@mytextblock@ID page\thepage bottomright);%
\path[draw] (\cmdKV@mytextblock@ID page\thepage topleft)+(0,-\textheight)coordinate(\cmdKV@mytextblock@ID page\thepage bottomleft);%
\ifKV@mytextblock@framed%
\path [draw](\cmdKV@mytextblock@ID page\thepage topleft)--(\cmdKV@mytextblock@ID page\thepage bottomleft);%
\path [draw](\cmdKV@mytextblock@ID page\thepage topright)--(\cmdKV@mytextblock@ID page\thepage bottomright);%
\else%
\fi%
\ifKV@mytextblock@shaded%
\fill[opacity=0.08](\cmdKV@mytextblock@ID page\thepage topleft)rectangle(\cmdKV@mytextblock@ID page\thepage bottomright);%
\else%
\fi%
\end{tikzpicture}%
}%
\else%
\fi%
}%
}%
\makeFrameOrShadebetweenpages%
%%%%%%%%%%%ENde
\endinput
\end{filecontents}


\usepackage{mytextkasten-rr}

\begin{document}
Der Kasten \ref{T-Beispiel} erstreckt sich von Seite \pageref{T-Beispiel} bis \pageref{T-Beispiel-end}, dort befinden sich in Zeile \ref{frag} drei xxx auf Seite \pageref{frag}

\begin{mytextblock}%Demonstration mit Standardeinstellung und den Textfeldern
[ID={T-Beispiel}
,title={Ein langer langer und überlanger Titel mit etwas mehr}
,beforehook={Hier kann man sich mit Latexcode einhäcken}
,einleitung={Das ist der Einleitungstext, mit dem man etwas über den kommenden Text sagen kann, er ist Standardmäßig schräggestellt. Die Formatierung kann mit {einleitungfont=\string\bfseries} geändert werden}
%,aftertexthook={Dieser Text steht im Anschluss}
,source={Hier wird die Quelle eingegeben, die auch mal ein bisschen länger sein kann und am besten über den cite Befehl funktioniert.}
,shaded=true
,multicol=true
,linenumbering=true
]
\blindtext[1]\linelabel{frag}xxx\blindtext[1]
\end{mytextblock}
%
\begin{mytextblock}%Demonstration mit Standardeinstellung und den Textfeldern
[ID={T-2}
,title={Ein langer langer und überlanger Titel mit etwas mehr}
,beforehook={Hier kann man sich mit Latexcode einhäcken}
,einleitung={Das ist der Einleitungstext, mit dem man etwas über den kommenden Text sagen kann, er ist Standardmäßig schräggestellt. Die Formatierung kann mit {einleitungfont=\{...\}} geändert werden}
%,aftertexthook={Dieser Text steht im Anschluss}
,source={Hier wird die Quelle eingegeben, die auch mal ein bisschen länger sein kann und am besten über den cite Befehl funktioniert.}
,framed=true
,shaded=false
,innerframesep={1pt}
,columnsep={18pt}
,linenumbersep={5pt}
,linethickness={3pt}
]
\blindtext[5]
\blindtext
\end{mytextblock}

Text \ref{T-2} beginnt auf Seite \pageref{T-2}
\begin{mytextblock}%Demonstration mit Standardeinstellung und den Textfeldern
[ID={T-3}
,title={Ein langer langer und überlanger Titel mit etwas mehr}
,beforehook={Hier kann man sich mit Latexcode einhäcken}
,einleitung={Das ist der Einleitungstext, mit dem man etwas über den kommenden Text sagen kann, er ist Standardmäßig schräggestellt. Die Formatierung kann mit {einleitungfont=\{...\}} geändert werden}
%,aftertexthook={Dieser Text steht im Anschluss}
,source={Hier wird die Quelle eingegeben, die auch mal ein bisschen länger sein kann und am besten über den cite Befehl funktioniert.}
,framed=true
,multicols=3
,shaded=false
,innerframesep={6pt}
]
\blindtext[6]
\blindtext
\end{mytextblock}
\tikz[remember picture,overlay]{\node at (T-2pagetoprightLP) [anchor=west,rectangle]{zum Einhecken};}

\end{document}