PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nummerierung und Absatz in eigener Umgebung



razoor
13-09-2009, 16:48
Hallo, habe zwei kurze Fragen zu selbst definierten Umgebungen/Befehlen:

1.) Ist es möglich, folgende Umgebung gemäß section ihres Auftretens zu nummerieren, also z.B. einen Exkurs in section 5 als "Exkurs 5.1" auszugeben (so wie bei der Formelnummerierung je section)?


\documentclass{article}
\usepackage{color}
\definecolor{hellGrau}{rgb}{0.6,0.6,0.6}

\newenvironment{exkurs}[2]{
\noindent
\setlength{\fboxrule}{1pt}
\setlength{\fboxsep}{6pt}
\fcolorbox{hellGrau}{white}{
\parbox{400pt}{
\textbf{\textsf{Exkurs}} ({#1})\smallskip\\ {#2}
}
}
}

\begin{document}
\exkurs{headline}{%
text
}


2.) Wenn ich den text in der Exkurs-Umgebung mit \note{merktext} beginne, dann wird vor Beginn von Note immer ein Absatz gesetzt. Mit beiden Kommandos an sich habe ich sonst keine Probleme. An welchem von beiden liegt das denn?


\renewcommand{\note}[1]{
\begin{basedescript}{
\desclabelwidth{1.5cm}\desclabelstyle{\multilinela bel}
\renewcommand{\makelabel}[1]{##1}} %
\item[\textsf{\color{blackGray}Note: }] {#1}
\end{basedescript}}


Vielen Dank.

bobmalaria
13-09-2009, 17:04
hi,

zu 1)


\documentclass{article}
\usepackage{color}
\definecolor{hellGrau}{rgb}{0.6,0.6,0.6}

%neuer counter
\newcounter{exkursc}
%zurücksetzen des counters bei jeder neuen section
\makeatletter
\@addtoreset{exkursc}{section}
\makeatother

\newenvironment{exkurs}[2]{
\noindent
\setlength{\fboxrule}{1pt}
\setlength{\fboxsep}{6pt}
\fcolorbox{hellGrau}{white}{
\parbox{400pt}{
\textbf{\textsf{Exkurs: \thesection.\theexkursc}\stepcounter{exkursc}} ({#1})\smallskip\\ {#2}
}
}
}

\begin{document}
\section{bla}
\exkurs{headline}{%
text
}
\section{blubb}
\exkurs{headline}{%
text
}
\end{document}

zu 2) wo wird den note definiert?

razoor
13-09-2009, 18:42
zu 1.) Danke, fängt aber leider bei #.0 zu zählen an, wie kann man das auf #.1 ändern?
Wie kann ich im Text auf den Exkurs verweisen?


\exkurs{headline}{\label{...}text}
\ref{...}

und


\exkurs{\label{...}headline}{text}
\ref{...}

führen beide dazu, dass z.B. 4.1 an Stelle von 4.2 angezeigt wird.

zu 2.) Soweit ich mich erinnere ist der Befehl vordefinert, daher habe ich ihn einfach überschrieben...

u_fischer
13-09-2009, 18:50
zu 1.) Danke, fängt aber leider bei #.0 zu zählen an, wie kann man das auf #.1 ändern?
Wie kann ich im Text auf den Exkurs verweisen?

\refstepcounter statt \stepcounter, und den Befehl weiter nach vorne verschieben.

razoor
13-09-2009, 19:15
zu 1.)

\refstepcounter statt \stepcounter, und den Befehl weiter nach vorne verschieben.

Danke, habe es jetzt folgendermaßen geändert:


\newenvironment{exkurs}[2]{
\noindent
\setlength{\fboxrule}{1pt}
\setlength{\fboxsep}{6pt}
\fcolorbox{hellGrau}{white}{
\parbox{400pt}{
\refstepcounter{exkursc}
\textbf{\textsf{Exkursion}{\small~\thesection.\the exkursc}} ({#1})\smallskip\\ {#2}
}
}
}

Problem ist mit dem neuen counter jedoch, dass beim referenzieren jetzt nur noch 1 anstatt #.1 angezeigt wird. Wo müssen \label und \ref nun hin?

rais
13-09-2009, 20:43
Moin moin,


Problem ist mit dem neuen counter jedoch, dass beim referenzieren jetzt nur noch 1 anstatt #.1 angezeigt wird. Wo müssen \label und \ref nun hin?
Warum schaust Du Dir nicht eine LaTeX-Einführung Deiner Wahl an? Da sollte sowas drinstehen ...

MfG

razoor
16-09-2009, 17:52
Da ich nun weis, dass \refstepcounter den aktuellen ref-value auf den eigenen counter setzt, ist mir nun klar, warum nur noch 1 an Stelle von#.1 angezeigt wurde.

Nach wie vor ist mir jedoch unklar, wie ich das Problem löse. Habe z.B. folgendes probiert, um die counter "wieder zusammenzusetzen", jedoch ohne Erfolg.

\stepcounter{exkursc}
\setcounter{exkursc}{\value{section}.\value{exkurs c}}

Wie muss man es denn nun machen?

u_fischer
16-09-2009, 18:03
\label speichert die Ausgabe von \theexkursc. Also musst du sowas machen, wenn \ref auch die Sectionnummer ausgeben soll:

\documentclass{article}
\newcounter{exkursc}
\renewcommand\theexkursc{Ich bin exkursc Nr. \arabic{exkursc} aus section \thesection.}
\begin{document}
\section{Test}
\refstepcounter{exkursc}\label{test}

\ref{test}
\end{document}

razoor
16-09-2009, 18:13
\label speichert die Ausgabe von \theexkursc. Also musst du sowas machen, wenn \ref auch die Sectionnummer ausgeben soll:

\documentclass{article}
\newcounter{exkursc}
\renewcommand\theexkursc{Ich bin exkursc Nr. \arabic{exkursc} aus section \thesection.}
\begin{document}
\section{Test}
\refstepcounter{exkursc}\label{test}

\ref{test}
\end{document}
Dankeschön, das hat geholfen :) !

Kann mir auch noch jemand beim 2. Problem (die Abstände) helfen?

u_fischer
16-09-2009, 18:27
Da musst du schon ein vollständiges Beispiel machen.

Achte übrigens mehr auf Leerzeichen + Zeilenumbrüche nach Klammern, die können leicht zu unerwünschten Leerzeichen im Text führen. Deaktiviere sie mit einem Kommentarzeichen:
{%
weiter

und

}%
weiter