PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Umbenennen von Subsubsection (Unterunterabschnitt)



Micky
20-07-2012, 12:34
Ich arbeite mit Lyx und KOMA book. In meinem Dokument arbeite ich mit labels und \ref, um darauf zu verweisen. Setze ich einen Link auf eine subsubsection, so erscheint im Text "Unterunterabschnit 1.2.3.4". Ich würde das jedoch gerne in "Abschnitt" umbenennen, so dass an der Stelle von \ref "Abschnitt 1.2.3.4" erscheint.
Könnt ihr mir helfen?

UPDATE: Die Lösung:
http://www.mrunix.de/forums/showpost.php?p=344941&postcount=6
http://www.mrunix.de/forums/showpost.php?p=344942&postcount=7

ctansearch
20-07-2012, 14:51
Falls Du mit \hyperref arbeitetest findest Du in
/usr/share/texmf/tex/latex/hyperref/hyperref.sty: \def\subsubsectionautorefname{Unterunterabschnitt} %

Das kannst Du entsprechend anpassen.

Micky
20-07-2012, 14:52
Danke für den Hinweis, da müsste ich aber erst auf hyperref umstellen. Ich verwende aktuell nur ref. Gibt es damit keine Möglichkeiten? \renewcommand scheint keine entsprechenden Optionen zu bieten...

u_fischer
20-07-2012, 15:10
Gibt es damit keine Möglichkeiten?

Gibt es bestimmt. Aber dazu müsste man wissen, wer (und wie) den Namen definiert. Mache ein Minimalbeispiel und exportiere den Code.

Micky
23-07-2012, 09:20
Danke nochmal für eure Bereitschaft. Ich habe mein Dokument genommen und es versucht, so weit wie möglich zu reduzieren. Dieser Code erzeugt bei mir nach den Überschriften die folgende Ausgabe:
Abschnitt 1.1
Unterabschnitt 1.1.1
Unterunterabschnitt 1.1.1.1

Was kann ich tun, um diese diese "unter" loszuwerden?



\documentclass[12pt,a4paper,ngerman,intoc,bibliography=totoc,inde x=totoc,BCOR10mm,captions=tableheading,titlepage,f leqn]{scrbook}
\usepackage{lmodern}
\renewcommand{\sfdefault}{lmss}
\renewcommand{\ttdefault}{lmtt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setcounter{secnumdepth}{3}
\setlength{\parskip}{\medskipamount}
\setlength{\parindent}{0pt}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[unicode=true,
bookmarks=true,bookmarksnumbered=true,bookmarksope n=true,bookmarksopenlevel=1,
breaklinks=false,pdfborder={0 0 0},backref=false,colorlinks=false]
{hyperref}
\hypersetup{pdftitle={Your title},
pdfauthor={Your name},
pdfpagelayout=OneColumn, pdfnewwindow=true, pdfstartview=XYZ, plainpages=false}

\makeatletter

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\pdfpageheight\paperheight
\pdfpagewidth\paperwidth


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
% increase link area for cross-references and autoname them
\AtBeginDocument{\renewcommand{\ref}[1]{\mbox{\autoref{#1}}}}
\newlength{\abc}
\settowidth{\abc}{\space}
\AtBeginDocument{%

}



\makeatother

\begin{document}

\chapter{Ein Kapitel}


\section{\label{sec:Ein-Abschnitt}Ein Abschnitt}


\subsection{\label{sub:Ein-Unterabschnitt}Ein Unterabschnitt}


\subsubsection{\label{sub:Ein-Unterunterabschnitt}Ein Unterunterabschnitt}


\section{Verweise}

\ref{sec:Ein-Abschnitt}

\ref{sub:Ein-Unterabschnitt}

\ref{sub:Ein-Unterunterabschnitt}
\end{document}

u_fischer
23-07-2012, 09:31
Die Wörter kommen vom \autoref-Befehl. Der wird von hyperref definiert, und in dessen Dokumentation (manual.pdf) steht auch, wie man die Namen für die jeweilige Sprache ändert:



\addto\extrasngerman{%
\def\subsectionautorefname{Sub-Abschnitt}%
\def\subsubsectionautorefname{SubSub-Abschnitt}%
}

klops
23-07-2012, 09:37
Also verwendest Du doch hyperref. Damit kannst Du also wie von ctansearch vorgeschlagen eine Umdefinierung von \subsubsectionautorefname in die Dokumentpräambel einfügen, beispielsweise:

\AtBeginDocument{%
\renewcommand*{\subsectionautorefname}{\sectionaut orefname}%
\renewcommand*{\subsubsectionautorefname}{\subsect ionautorefname}%
\renewcommand*{\paragraphautorefname}{\subsubsecti onautorefname}%
\renewcommand*{\subparagraphautorefname}{\paragrap hautorefname}%
}
Wie man bei LyX Code in die Präambel einfügt, weißt Du? Das geht AFAIR über die Dokumenteinstellungen.

Solange Du nicht innerhalb des Dokuments die Sprache umschaltest, müsste das so bereits funktionieren. Anderenfalls muss man die Änderungen eventuell an \HyLang@german anhängen bzw. \HyLang@german umdefinieren.

PS: Sorry hat sich mit Ulrikes Antwort überschnitten.

Micky
23-07-2012, 09:45
Das funktioniert. Super, vielen Dank!

Ja, ich muss hyperref übersehen haben; mir war nicht bewusst, dass Lyx dies bei meinem Template automatisch verwendet. Sorry für die Irreführung.

Kann man euch als Dankeschön für eure Hilfe flattrn? :)