PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Textbox-Erstellung



Maverick
14-01-2009, 11:36
Hallo!

Weiß jemand, wo der Fehler hier liegt, dass die Box nicht angezeigt wird?



%% Minimalbeispiel
\documentclass{article}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}

\newcommand{\mnote}[1]{\marginnote{\tiny{\textit{#1}}}}
\newlength{\myBoxWidth}
\setlength{\myBoxWidth}{\textwidth}
\addtolength{\myBoxWidth}{-4mm}
%% --> Setzt eine Merke-Textbox zusammen mit einer Randnotiz "Wichtig!".
\newcommand{\myBox}[2]
{%
\vskip\baselineskip\bgroup
\noindent
\setlength{\fboxrule}{1pt}%
\parbox{\myDefBoxWidth}{{\underline{\scshape#1}\\# 2 }}%
\mnote{Wichtig!}\par
\vskip\baselineskip\egroup
}
%
%% Dokumentenbeginn
\begin{document}
\noindent\myBox{Merke}
{\blindtext}
\end{document}

Festus
14-01-2009, 11:47
Benutzt du bei der parbox in der Mybox-Def. nicht den falschen Wert?


\parbox{\myBoxWidth}

statt


\parbox{\myDefBoxWidth}

Maverick
14-01-2009, 11:50
Oh Danke!

Habe ich übersehen. Nur ist jetzt das Problem, dass die mnote nicht mittig zur Box angezeigt wird, sondern kommt ganz am unteren Rand zu liegen. Die Randnotiz "manuell" zu verschieben, ist auch keine Lösung (\mnote{Text}[-Wert] ...

Hast du eine Idee?

Festus
14-01-2009, 12:01
Hmm,

vielleicht die mnote in 'ne centering-Umgebung packen?


{%
\vskip\baselineskip\bgroup
\noindent
\setlength{\fboxrule}{1pt}%
\parbox{\myDefBoxWidth}{{\underline{\scshape#1}\\# 2 }}%
\centering\mnote{Wichtig!}\par
\vskip\baselineskip\egroup
}

Is nur 'n Versuch und hat vielleicht Sytaxfehler, aber irgendwie in der Richtung geht's vielleicht. Vielleicht eher mit \begin{center} ... \end{center}, obwohl das, glaub ich, vertikale Freiräume erzeugt, was ja wohl nicht so erwünscht ist.

Gruß, Festus

Maverick
14-01-2009, 12:07
Nein, das funktioniert nicht.

Mit marginpar (statt marginnote) würde es gehen, nur kann ich marginpar nicht verwenden. Ich habe im übrigen Text nur marginnote. Bei marginpar kommen die Randnotizen zu weit an Rand hinaus. Das passt optisch nicht mehr zusammen.

mechanicus
14-01-2009, 12:11
Hallo,

Alternativ mit Minipage

%% Minimalbeispiel
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
%\marginnote
\newcommand{\mnote}[1]{{\tiny{\textit{#1}}}}
\newlength{\myBoxWidth}
\setlength{\myBoxWidth}{\textwidth}
\addtolength{\myBoxWidth}{-4mm}
%% --> Setzt eine Merke-Textbox zusammen mit einer Randnotiz "Wichtig!".
\newcommand{\myBox}[2]
{%
\vskip\baselineskip\bgroup
\noindent
\setlength{\fboxrule}{3pt}
\hbox{
\begin{minipage}{\myBoxWidth}\underline{\scshape#1 }\newline #2 \end{minipage}
\hspace{1em}
\begin{minipage}{2cm}\mnote{Wichtig!} \end{minipage}}\par
\vskip\baselineskip\egroup
}
%
%% Dokumentenbeginn
\begin{document}
\section{foo}
\blindtext\marginnote{\tiny{\textit{Wichtig!}}}
\myBox{Merke}
{\blindtext}
\blindtext
\end{document}

Gruß
Marco

Maverick
14-01-2009, 12:26
Wiederum großen Dank!

Ich habe jetzt noch eine Farbe reingepackt. Sieh dir mal das Ergebnis bitte an.


%% Minimalbeispiel
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color}
%\marginnote
\newcommand{\mnote}[1]{{\tiny{\textit{#1}}}}
\newlength{\myBoxWidth}
\setlength{\myBoxWidth}{\textwidth}
\addtolength{\myBoxWidth}{-4mm}
%% --> Setzt eine Merke-Textbox zusammen mit einer Randnotiz "Wichtig!".
\newcommand{\myBox}[2]
{%
\vskip\baselineskip\bgroup
\noindent
\setlength{\fboxrule}{3pt}
\fcolorbox{red}{green}{%
\hbox{
\begin{minipage}{\myBoxWidth}\underline{\scshape#1 }\newline #2 \end{minipage}
\hspace{1em}
\begin{minipage}{2cm}\mnote{Wichtig!} \end{minipage}}}\par
\vskip\baselineskip\egroup
}
%
%% Dokumentenbeginn
\begin{document}
\section{foo}
\blindtext\marginnote{\tiny{\textit{Wichtig!}}}
\myBox{Merke}
{\blindtext}
\blindtext
\end{document}

Kriegst du den Rahmen so hin, dass die mnote draußen steht?

voss
14-01-2009, 13:02
Kriegst du den Rahmen so hin, dass die mnote draußen steht?


%% Minimalbeispiel
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color,calc}
%\marginnote
\newcommand{\mnote}[1]{{\tiny{\textit{#1}}}}
\newcommand{\myBox}[2]{\par\medskip%
\bgroup\noindent
\setlength\fboxrule{3pt}%
\makebox[\textwidth][l]{\fcolorbox{red}{green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}%
\hspace{1em}\begin{minipage}{2cm}\mnote{Wichtig!}\ end{minipage}}
\par\bigskip
\egroup}
%
%% Dokumentenbeginn
\begin{document}
\section{foo}
\blindtext\marginnote{\tiny{\textit{Wichtig!}}}
\myBox{Merke}{\blindtext}
\blindtext
\end{document}


Herbert

mechanicus
14-01-2009, 13:05
Hallo,

hast doch alles richtig gemacht: Musst halt nur die fcolorbox um die gewünschte Minipage packen:

%% Minimalbeispiel
\documentclass[ngerman]{article}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color}
%\marginnote
\newcommand{\mnote}[1]{{\tiny{\textit{#1}}}}
\newlength{\myBoxWidth}
\setlength{\myBoxWidth}{\textwidth}
\addtolength{\myBoxWidth}{-4mm}
%% --> Setzt eine Merke-Textbox zusammen mit einer Randnotiz "Wichtig!".
\newcommand{\myBox}[2]
{%
\noindent
\vskip\baselineskip\bgroup
\noindent
\setlength{\fboxrule}{3pt}
\hbox{\fcolorbox{red}{green}{%
\begin{minipage}{\myBoxWidth}\underline{\scshape#1 }\newline #2 \end{minipage}}
\hspace{0.15em}
\begin{minipage}{2cm}\mnote{Wichtig!} \end{minipage}}\par
\vskip\baselineskip\egroup
}
%
%% Dokumentenbeginn
\begin{document}
\section{foo}
\blindtext\marginnote{\tiny{\textit{Wichtig!}}}
\myBox{Merke}
{\blindtext}
\blindtext
\end{document}
Vielleicht mit den geschusterten Abständen könnte man noch was machen.

Gruß
Marco

voss
14-01-2009, 14:39
hast doch alles richtig gemacht: Musst halt nur die fcolorbox um die gewünschte Minipage packen:


die Breite ist aber geraten und die Box um ein Leerzeichen nach rechts verschoben.
% fehlt nach \setlength

Herbert

mechanicus
14-01-2009, 16:44
die Breite ist aber geraten
Das mit dem Rate habe ich runter geschrieben:D. Hast natürlich recht.

Gruß
Marco

Maverick
14-01-2009, 20:08
Vielen Dank alle zusammen!

Das Beispiel von Herbert funktioniert tadellos. Nur ist das Problem, dass bei der Klasse Scrbook die Randnotiz immer rechts. Mit mnote klappt es. Ein weiteres Problem ist, dass bei kleinen Boxen die Randnotiz nicht mehr stimmt.


%% Minimalbeispiel
\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color,calc}
\newcommand{\mnote}[1]{\marginnote{\tiny{\textit{#1}}}}
\newcommand{\myBox}[2]{\par\medskip%
\bgroup\noindent
\setlength\fboxrule{1pt}%
\makebox[\textwidth][l]{\fcolorbox{red}{green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}%
\hspace{1em}\begin{minipage}{2cm}\mnote{Wichtig!}\ end{minipage}}
\par\bigskip
\egroup}
%
%% Dokumentenbeginn
\begin{document}
\section{foo}
% Merke
\noindent \myBox{Fragestellung}
{Ich schreibe mal einen Test, wo es nicht mehr passt.}
% Merke Ende
Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
\myBox{Merke}{\blindtext\blindtext\blindtext\blind text\blindtext\blindtext\blindtext}
\blindtext\blindtext
\myBox{Merke}{\blindtext\blindtext\blindtext\blind text}
\blindtext
\end{document}

Maverick
16-01-2009, 07:54
Hhhm! Ich kriege es nicht zum Laufen ... Das MB von Herbert funktioniert nur für eine Textlänge von mind. \blindtext. Ich schaffe es nicht, dass die Randnotiz bei weniger Textmasse wie \blindtext mittig zu liegen kommt.

Hat jemand eine Ahnung, um was ich das MB ergänzen müsste, damit es funktioniert? Mir ist die Materie zu wenig einsichtig.

Danke!

voss
16-01-2009, 08:51
Hhhm! Ich kriege es nicht zum Laufen ... Das MB von Herbert funktioniert nur für eine Textlänge von mind. \blindtext. Ich schaffe es nicht, dass die Randnotiz bei weniger Textmasse wie \blindtext mittig zu liegen kommt.

Hat jemand eine Ahnung, um was ich das MB ergänzen müsste, damit es funktioniert? Mir ist die Materie zu wenig einsichtig.



\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color,calc}
\newcommand{\mnote}[1]{\marginnote{\tiny\itshape#1}}
\newcommand{\myBox}[2]{\par\medskip%
\bgroup\noindent
\setlength\fboxrule{1pt}%
\makebox[\textwidth][l]{\fcolorbox{red}{green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}%
\hspace{1em}\begin{minipage}{2cm}\tiny\itshape%
Wichtig!\end{minipage}}
\par\bigskip\egroup}

\begin{document}
\section{foo}
% Merke
\noindent
\myBox{Fragestellung}{Ich schreibe mal einen Test, wo es nicht mehr passt.}

Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext

\end{document}



Herbert

Maverick
16-01-2009, 09:34
Was soll ich sagen, Herbert? DANKE!

Habe erst jetzt verstanden, dass man mnote ja gar nicht für die Box benötigt. Wird ja mit minipage gemacht. Habe nämlich immer \mnote in die Box eingebackt.

Wie gesagt: Danke!

mechanicus
16-01-2009, 11:28
Hallo,

vielleicht als Ergänzung, wenn du zweiseitg schreibst:



\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color,calc}
\newcommand{\mnote}[1]{\marginnote{\tiny\itshape#1}}
\newcommand{\myBox}[2]{%
\ifthispageodd{%
\par\medskip%
\bgroup\noindent
\setlength\fboxrule{1pt}%
\makebox[\textwidth][l]{\fcolorbox{red}{green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}%
\hspace{1em}\begin{minipage}{2cm}\tiny\itshape%
Wichtig!\end{minipage}}
\par\bigskip\egroup}
{%
\par\medskip%
\bgroup\noindent
\setlength\fboxrule{1pt}%
\makebox[\textwidth][r]{\begin{minipage}{2cm}\raggedleft\tiny\itshape%
Wichtig!\end{minipage}\hspace{1em}\fcolorbox{red}{ green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}}
\par\bigskip\egroup}}

\begin{document}
\chapter{foo}
% Merke
\noindent
\myBox{Fragestellung}{Ich schreibe mal einen Test, wo es nicht mehr passt.}

Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext
\noindent
\myBox{Fragestellung}{Ich schreibe mal einen Test, wo es nicht mehr passt.}

Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\end{document}

Gruß
Marco

voss
16-01-2009, 11:47
vielleicht als Ergänzung, wenn du zweiseitg schreibst:


das kann man auch marginpar selbst überlassen. Dort wird sowieso
abgefragt.

Herbert



\documentclass[ngerman]{scrbook}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
\usepackage{marginnote}
\usepackage{color,calc,ragged2e}
\newcommand{\mnote}[1]{\marginnote{\tiny\itshape#1}}
\newcommand{\myBox}[2]{%
\par\medskip%
\bgroup\noindent
\setlength\fboxrule{1pt}\setlength\marginparsep{1e m}%
\marginpar[\RaggedLeft\tiny\itshape Wichtig!]%
{\RaggedRight\tiny\itshape Wichtig!}%
\fcolorbox{red}{green}{%
\begin{minipage}{\textwidth-2\fboxrule-2\fboxsep}
\underline{\scshape#1}\\#2 \end{minipage}}%
\par\bigskip\egroup}

\begin{document}
\chapter{foo}
% Merke
\noindent
\myBox{Fragestellung}{Ich schreibe mal einen Test, wo es nicht mehr passt.}

Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext
\noindent
\myBox{Fragestellung}{Ich schreibe mal einen Test, wo es nicht mehr passt.}

Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\blindtext\blindtext
Das \mnote{Test} ist ein Test.
\myBox{Merke}{\blindtext\blindtext\blindtext}
\end{document}

Maverick
16-01-2009, 12:13
Vielen Dank!

mechanicus
16-01-2009, 12:15
das kann man auch marginpar selbst überlassen. Dort wird sowieso
abgefragt.

Herbert

Da trennt sich die Spreu vom Weizen. ;)

Gruß
Marco

Maverick
16-01-2009, 12:28
Hmpf! Dann bin ich ja noch nicht mal das Samenkorn!

voss
16-01-2009, 12:46
Da trennt sich die Spreu vom Weizen. ;)


wichtig ist doch nur, dass es funktioniert. Insofern ist meine Idee
nur zum Verständnis gewesen, was so in TeX abläuft ...

Herbert