rafael
03-11-2012, 22: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.
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.