Archiv verlassen und diese Seite im Standarddesign anzeigen : \renewcommand
Hallo,
ich möchte die Befehle \subsection + \subsubsection überschreiben, damit ich dann folgende Befehleskette bekommen:
\subsection{das ist ein Test}\label{sec:das ist ein Test}
Probiert habe ich es mit:
\renewcommand{\subsection}[1]{\subsection{#1}\label{sec:#1}}
und raus kommt:
! TeX capacity exceeded, sorry [input stack size=1500].
\subsection #1->\subsection {#1
}\label {sec:#1}
l.4 \subsection{das ist ein Test}
Geht das überhaupt oder macht der da ein rekursiven Aufruf ?
Gruß
Dietmar
Geht das überhaupt oder macht der da ein rekursiven Aufruf ?
Genau ;)
Auch wenn's nicht minder rekursiv aussehen mag, versuch's mal so:
\let\subsectionorg\subsection
\renewcommand{\subsection}[1]{\subsectionorg{#1}\label{sec:#1}}
persönlich halte ich zwar nix von Leerzeichen innerhalb von Marken, aber das soll Dich nicht weiter stören :)
MfG,
Hallo,
danke für die schnelle Hilfe, hat geklappt. :)
Hast Du noch einen Tipp, wie ich das mit den Optionalen Parameter auch noch hinbekomme ?
Gruß
Dietmar
countbela666
11-06-2006, 18:10
Hallo Dietmar,
\usepackage{ifthen}
\let\subsectionorg\subsection
\renewcommand{\subsection}[2][__empty__]{%
\ifthenelse{\equal{#1}{__empty__}}
{\subsectionorg{#2}\label{sec:#2}}
{\subsectionorg[#1]{#2}\label{sec:#2}}
}Grüße,
Marcel
RedCloud
11-06-2006, 19:05
Hallo Dietmar,
\usepackage{ifthen}
\let\subsectionorg\subsection
\renewcommand{\subsection}[2][__empty__]{%
\ifthenelse{\equal{#1}{__empty__}}
{\subsectionorg{#2}\label{sec:#2}}
{\subsectionorg[#1]{#2}\label{sec:#2}}
}Grüße,
Marcel
\let\subsectionorg\subsection
\renewcommand\subsection[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\empty\subsectionorg{#2}
\else\subsectionorg[#1]{#2}\fi\label{sec:#2}}
als Alternative
rc
Hallo,
die hat für die Fallstudie, die wir geschrieben haben recht gut geklappt. Nun muß ich noch eine Hausarbeit schreiben und die wollte ich mit der Dokumenten-Klasse "scrartcl" schreiben. Nun bekomme ich aber da einen Fehler und weiß nicht mehr warum ?
Fehlermeldung:
! LaTeX Error: Something's wrong--perhaps a missing \item. l.1 ...on}{\numberline {0.1}Managemant Summery}{2}
\documentclass{scrartcl}
\usepackage{ifthen}
\let\sectionorg\section
\renewcommand{\section}[2][__empty__]{%
\ifthenelse{\equal{#1}{__empty__}}
{\sectionorg{#2}\label{sec:#2}}
{\sectionorg[#1]{#2}\label{sec:#2}}
}
\RequirePackage{showkeys}
\begin{document}
\tableofcontents
\newpage
\section{Managemant Summery}
\section{Einleitung}
\section{Grundlagen eines Clustersystemes}
\subsection{Definition}
\subsection{Technik und Funktionsweise}
\end{document}
Kann mir da mal jemand weiter helfen ?
Gruß
Dietmar
RedCloud
20-06-2006, 21:27
die hat für die Fallstudie, die wir geschrieben haben recht gut geklappt. Nun muß ich noch eine Hausarbeit schreiben und die wollte ich mit der Dokumenten-Klasse "scrartcl" schreiben. Nun bekomme ich aber da einen Fehler und weiß nicht mehr warum ?
nimm meinen Vorschlag.
rc
Hallo,
nimm meinen Vorschlag.
rc
das geht bei "\section" leider auch nicht... :confused:
Bei \subsection geht es...
\let\sectionorg\section
\renewcommand\section[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\empty\sectionorg{#2}
\else\sectionorg[#1]{#2}\fi\label{sec:#2}}
\let\subsectionorg\subsection
\renewcommand\subsection[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\empty\subsectionorg{#2}
\else\subsectionorg[#1]{#2}\fi\label{sec:#2}}
RedCloud
20-06-2006, 22:04
Hallo,
das geht bei "\section" leider auch nicht... :confused:
Bei \subsection geht es...
Bei mir geht es:
\listfiles
\documentclass{scrartcl}
\let\sectionorg\section
\let\subsectionorg\subsection
\renewcommand\subsection[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\empty\subsectionorg{#2}
\else\subsectionorg[#1]{#2}\fi\label{sec:#2}}
\RequirePackage{showkeys}
\begin{document}
\tableofcontents
\newpage
\section{Managemant Summery}
\section{Einleitung}
\section{Grundlagen eines Clustersystemes}
\subsection{Definition}
\subsection{Technik und Funktionsweise}
\end{document}
*File List*
scrartcl.cls 2004/09/16 v2.9t LaTeX2e KOMA document class
scrlfile.sty 2004/09/16 v2.9t LaTeX2e KOMA package
size11.clo 2005/09/16 v1.4f Standard LaTeX file (size option)
typearea.sty 2004/09/16 v2.9t LaTeX2e KOMA package
showkeys.sty 2006/01/09 v3.13 Show cite and label keys (DPC)
rc
Kurze Frage nochmal...
1.) mit welchen Befehl bekommst Du die File-List zustande ?
2.) schließt das \let\sectionorg\section die \subsection mit ein ?
\let\sectionorg\section
\let\subsectionorg\subsection
weil sonst sehe ich in Deinen Quell-Code kein \renewcommand mehr...
\renewcommand\subsection[2][]{%
Und wenn ich Deinen Quell-Code nehme, dann sehe ich nur einen Label bei der \subsection und nicht bei der \section
RedCloud
20-06-2006, 22:40
Kurze Frage nochmal...
1.) mit welchen Befehl bekommst Du die File-List zustande ?
2.) schließt das \let\sectionorg\section die \subsection mit ein ?
weil sonst sehe ich in Deinen Quell-Code kein \renewcommand mehr...
hast recht, habe gar nicht den unterschied in meinem Code gesehen. Muss nachdenken ...
rc
RedCloud
20-06-2006, 22:47
hast recht, habe gar nicht den unterschied in meinem Code gesehen. Muss nachdenken ...
rc
hatte \tableofcontens vergessen, welches ja intern \section* aufruft, sodass es Probleme gibt. Folgendes sollte aber jetzt gehen:
\listfiles
\documentclass{article}
\let\sectionorg\section
\let\subsectionorg\subsection
\let\TOC\tableofcontents
\renewcommand\tableofcontents{\bgroup\let\section\ sectionorg\TOC\egroup}
\makeatletter
\renewcommand\section[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\@empty\sectionorg{#2}
\else\sectionorg[#1]{#2}\fi
\label{sec:#2}}
\renewcommand\subsection[2][]{%
\def\tempOPT{#1}%
\ifx\tempOPT\@empty\subsectionorg{#2}
\else\subsectionorg[#1]{#2}\fi
\label{sec:#2}}
\makeatother
\RequirePackage{showkeys}
\begin{document}
\tableofcontents
\newpage
\section{Managemant Summery}
\section{Einleitung}
\section{Grundlagen eines Clustersystemes}
\subsection{Definition}
\subsection{Technik und Funktionsweise}
\end{document}
rc
Hallo,
danke für die Info. Hat in der *.tex-Dokument geklappt. Nachdem ich das bei mir in die *.cls-Datei übernommen habe geht jetzt nicht mehr. :(
Kannst Du, wenn Du willst Dir das mal anschauen ? Denn ich finden den Fehler:
! LaTeX Error: Missing \begin{document}.
! Extra \endgroup.
\document ->\endgroup
\ifx \@unusedoptionlist \@empty \else \@latex@warning@...
l.243 \let\@doc=\document
Moin moin,
setz mal
\makeatletter vor \let\@doc=\document
und nach
\end{@doc}} dann
\makeatother
Wieso lädtst Du überhaupt german und ngerman? Übergib doch einfach Sprachoptionen an babel ;)
MfG,
Hallo,
habe ich gemacht...
nur leider sieht das Ergebnis im DVI bescheiden aus.
Und nun :confused:
Übergib doch einfach Sprachoptionen an babel
wie meinst Du das ? So tief bin ich noch nicht in Latex drin, das ich damit was Anfangen kann.
RedCloud
21-06-2006, 06:58
Hallo,
danke für die Info. Hat in der *.tex-Dokument geklappt. Nachdem ich das bei mir in die *.cls-Datei übernommen habe geht jetzt nicht mehr. :(
Kannst Du, wenn Du willst Dir das mal anschauen ? Denn ich finden den Fehler:
! LaTeX Error: Missing \begin{document}.
! Extra \endgroup.
\document ->\endgroup
\ifx \@unusedoptionlist \@empty \else \@latex@warning@...
l.243 \let\@doc=\document
-- was sollen denn beide Möglichkeiten mit ifthen und ohne ifthen??
-- german _und_ ngerman gleichzeitig laden ist sinnlos.
-- ohnehin Sprache über Paket babel
-- Das, was ich dir als TOC gezeigt habe auch für die anderen Listen machen, die ebenfalls mit \section* gesetzt werden.
\makeatletter -- \makeatother brauchst du nicht in der Klassendatei
Und ganz nebenbei: die Lösung mit der automatischen Labelsetzung ist nicht das Gelbe vom Ei, Leerzeichen und Umlaute können hier manchmal nerven ... und Spass macht es auch nicht \ref{sec:Und jetzt kommt die ellenlange Überschrift} schreiben zu müssen. Da sind DInge wie \label{\thesubsection\ schon einfacher.
rc
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.