Seite 1 von 1

Ausrichtung von \addsec{}-Name im Inhaltsverzeichnis

Verfasst: Mo 1. Sep 2014, 22:29
von Timo Beil
Hallo liebe LaTeX-Freunde,

ich benutze die KOMA-Klasse "scrartcl" und muss eine sehr lange Überschrift im Inhaltsverzeichnis angeben, die jedoch keine Nummerierung haben darf. Daher verwende ich \addsec{...}.

Leider wird der Name der Section im Inhaltsverzeichnis nach dem Zeilenumbruch eingerückt. Gibt es eine Möglichkeit, dies zu verhindern?

Hier mein VM:
\documentclass{scrartcl}

\begin{document} 

\tableofcontents 

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.}

Hier etwas Beispieltext.

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer angezeigt werden soll und bei welcher der Absatz NICHT schoen haengend ist.}

Und hier noch mehr Beispieltext.

\end{document}
Vielen Dank für Eure Hilfe!

Verfasst: Mo 1. Sep 2014, 23:05
von Noch so einer
Als Alternative könnte ich Dir
\documentclass[toc=indentunnumbered]{scrartcl}

\begin{document}

\tableofcontents

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.}

Hier etwas Beispieltext.

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer angezeigt werden soll und bei welcher der Absatz NICHT schoen haengend ist.}

Und hier noch mehr Beispieltext.

\end{document}
anbieten.

Verfasst: Mo 1. Sep 2014, 23:16
von Timo Beil
Hallo Gast,

vielen Dank für die prompte Antwort und die Alternative. Diese Möglichkeit hatte ich mittels der Forensuche entdeckt, entspricht aber leider nicht meinen Formatvorgaben.

Vielleicht gibt es noch mehr Vorschläge? Vielen Dank im Voraus.

Timo

Verfasst: Di 2. Sep 2014, 08:04
von Noch so einer
Dann vielleicht so:
\documentclass[toc=indentunnumbered]{scrartcl}

\let\Originaladdsectiontocentry\addsectiontocentry
\renewcommand*{\addsectiontocentry}[2]{%
  \ifstr{#1}{}{% Keine Nummer: Hier müssen wir eingreifen!
    \addtocentrydefault{nosection}{#1}{#2}%
  }{%
    % Nummer: Hier alles wie bisher
    \Originaladdsectiontocentry{#1}{#2}%
  }%
}
\makeatletter
\newcommand*\l@nosection[2]{% Aus scrartcl 3.13 geklaut und geändert:
  \ifnum \c@tocdepth >\z@
    \ifnum \lastpenalty<20009
      \addpenalty{\@secpenalty}%
    \fi
    \addvspace{1.0em \@plus\p@}%
    \setlength\@tempdima{0pt}% <----------------------- HIER
     \if@tocleft
      \ifx\toc@l@number\@empty\else
        \setlength\@tempdima{0\toc@l@number}%
      \fi
    \fi
   \begingroup
      \raggedsectionentry
      \parindent \z@ \advance\rightskip \@pnumwidth
      \parfillskip -\@pnumwidth
      \interlinepenalty\@M
      \leavevmode
      \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
      \usekomafont{sectionentry}{#1\nobreak
        \usekomafont{sectionentrypagenumber}{%
          \hfill\nobreak
          \hb@xt@\@pnumwidth{\hss#2}}}\par
    \endgroup
    \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax
      \penalty20008
    \fi
  \fi
}
\makeatother
\begin{document}

\tableofcontents

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.}

Hier etwas Beispieltext.

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer angezeigt werden soll und bei welcher der Absatz NICHT schoen haengend ist.}

Und hier noch mehr Beispieltext.

\end{document}
Ach: Die Option wird in dem Fall nicht benötigt. Vermutlich geht es auch irgendwie, wenn man stattdessen tocstyle für das Verzeichnis verwendet. Habe ich jetzt aber nicht ausprobiert.

Verfasst: Di 2. Sep 2014, 09:21
von Timo Beil
Hallo noch so einer,

vielen Dank für Deine schnelle und kompetente Hilfe. So sieht das schon deutlich besser aus. Zwei Probleme gibt es aber noch:

(1) Ist es möglich, dass die Einträge aus den \addsec-Abschnitten im Inhaltsverzeichnis auch mit Pünktchen zwischen dem Titel und der Seitenzahl angezeigt werden?

(2) Ist es möglich, die Seitenzahl aus den \addsec-Abschnitten im Inhaltsverzeichnis ohne fett gedruckte Seitenzahl anzeigen zu lassen?

Hier das VM:
\documentclass{scrartcl}

% Meine Anpassungen des ToC
%-----------------------------
\usepackage{tocstyle}
\usetocstyle{allwithdot}
%-----------------------------

\let\Originaladdsectiontocentry\addsectiontocentry 
\renewcommand*{\addsectiontocentry}[2]{% 
  \ifstr{#1}{}{% Keine Nummer: Hier müssen wir eingreifen! 
    \addtocentrydefault{nosection}{#1}{#2}% 
  }{% 
    % Nummer: Hier alles wie bisher 
    \Originaladdsectiontocentry{#1}{#2}% 
  }% 
} 
\makeatletter 
\newcommand*\l@nosection[2]{% Aus scrartcl 3.13 geklaut und geändert: 
  \ifnum \c@tocdepth >\z@ 
    \ifnum \lastpenalty<20009 
      \addpenalty{\@secpenalty}% 
    \fi 
    \addvspace{1.0em \@plus\p@}% 
    \setlength\@tempdima{0pt}% <----------------------- HIER 
     \if@tocleft 
      \ifx\toc@l@number\@empty\else 
        \setlength\@tempdima{0\toc@l@number}% 
      \fi 
    \fi 
   \begingroup 
      \raggedsectionentry 
      \parindent \z@ \advance\rightskip \@pnumwidth 
      \parfillskip -\@pnumwidth 
      \interlinepenalty\@M 
      \leavevmode 
      \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip 
      \usekomafont{sectionentry}{#1\nobreak 
        \usekomafont{sectionentrypagenumber}{% 
          \hfill\nobreak 
          \hb@xt@\@pnumwidth{\hss#2}}}\par 
    \endgroup 
    \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax 
      \penalty20008 
    \fi 
  \fi 
} 
\makeatother 
\begin{document} 

\tableofcontents 

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.} 

Hier etwas Beispieltext. 

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer angezeigt werden soll und bei welcher der Absatz NICHT schoen haengend ist.} 

Und hier noch mehr Beispieltext. 

\end{document}
Vielen Dank für Deine/Eure Unterstützung.

Beste Grüße,
Timo

Verfasst: Di 2. Sep 2014, 09:52
von Noch so einer
Das mit der Seitenzahl geht einfach über
\setkomafont{sectionentrypagenumber}{\normalfont}
Bitte unbedingt in der KOMA-Script-Anleitung oder im KOMA-Script-Buch nachlesen!!!

Die Sache mit der Unterdrückung des Einzugs funktioniert bei tocstye aber so nicht mehr. Eine Lösung gibt es wohl nur, wenn man die Optionen von tocstyle anpasst:
\documentclass{scrartcl}

% Meine Anpassungen des ToC
%-----------------------------
\usepackage[toctextentriesleft,tocindentmanual]{tocstyle}
\usetocstyle{allwithdot}
%-----------------------------
\setkomafont{sectionentrypagenumber}{\normalfont}
\let\Originaladdsectiontocentry\addsectiontocentry
\renewcommand*{\addsectiontocentry}[2]{%
  \ifstr{#1}{}{% Keine Nummer: Hier müssen wir eingreifen!
    \addtocentrydefault{nosection}{#1}{#2}%
  }{%
    % Nummer: Hier alles wie bisher
    \Originaladdsectiontocentry{#1}{#2}%
  }%
}
\makeatletter
\newcommand*\l@nosection{% Definition von tocstyle für \l@section übernommen
                         % und nur die Einzüge rausgenommen.
  \@dottedtocline{1}{0pt}{0pt}%
}
\makeatother
\begin{document}
\tableofcontents

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.}

Hier etwas Beispieltext.

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer
  angezeigt werden soll und ueberhaupt nicht haengend ist.}

Und hier noch mehr Beispieltext.

\end{document}
Und nächstes Mal sagst Du bitte gleich, dass Du tocstyle verwenden willst. Ich kann meine Zeit auch noch für andere Dinge brauchen …

Seiteneffekte der tocstyle-Optionen

Verfasst: Di 2. Sep 2014, 11:14
von Timo Beil
Hallo Noch so einer,

vielen Dank für Deine erneute und kompetente Unterstützung. Ich weiß das wirklich sehr zu schätzen, ohne Dich wäre ich verloren. Zudem möchte ich für Deine Zusatzarbeit um Verzeihung bitten, das hatte ich nicht beabsichtigt. Ich hatte das tocstyle-Package im VM nicht angegeben, weil das Problem auch ohne dieses Paket auftrat.

Deine Lösung funktioniert hervorragend, leider verursacht sie jedoch im Zusammenspiel mit meiner Anpassung des Tabellenverzeichnisses mich ein Problem. Dies resultiert aus der Verwendung der Optionen "toctextentriesleft,tocindentmanual" beim tocstyle-Package. Mit diesen funktioniert die automatische Einrückung nach "Tab. 1:" im Tabellenverzeichnis leider nicht mehr.

Hast Du/Ihr hierfür auch eine Lösung parat?
\documentclass{scrartcl}

\usepackage[ngerman]{babel}

\usepackage[toctextentriesleft,tocindentmanual]{tocstyle} 
% Bei Verwendung der Optionen "toctextentriesleft,tocindentmanual" funktioniert mein individualisiertes
% Tabellenverzeichnis nicht mehr
%\usepackage{tocstyle} 
\usetocstyle{allwithdot} 

\setkomafont{sectionentrypagenumber}{\normalfont} 
\let\Originaladdsectiontocentry\addsectiontocentry 
\renewcommand*{\addsectiontocentry}[2]{% 
  \ifstr{#1}{}{% Keine Nummer: Hier müssen wir eingreifen! 
    \addtocentrydefault{nosection}{#1}{#2}% 
  }{% 
    % Nummer: Hier alles wie bisher 
    \Originaladdsectiontocentry{#1}{#2}% 
  }% 
} 
\makeatletter 
\newcommand*\l@nosection{% Definition von tocstyle für \l@section übernommen 
                         % und nur die Einzüge rausgenommen. 
  \@dottedtocline{1}{0pt}{0pt}% 
} 
\makeatother

% Namen von Textelementen aendern
\renewcaptionname{ngerman}{\tablename}{Tab.}
\AtBeginDocument{
	\newcaptionname{ngerman}{\tableautorefname}{Tab.}
}

% Bezeichnungen von Abbildungen und Tabellen ändern
\settocfeature[lot]{entryhook}{Tab.\nobreakspace} 

%---------------------------------------------------------------------
% HIER LIEGT DAS PROBLEM
% Hägenden Einzug im Tabellenverzeichnis einstellen und Doppelpunkt nach "Tab." einfügen
% Benötigt mehrere Durchläufe!!!
% Bei Verwendung der Optionen "toctextentriesleft,tocindentmanual" funktioniert die
% Einstellung des automatischen Abstandes zwischen "Tab. x" und dem Tabellennamen
% nicht mehr
\makeatletter 
\AfterTOCHead[lot]{% 
  \let\SAVEDNUMBERLINE\tocstyle@numberline%
  \renewcommand*{\tocstyle@numberline}[1]{% 
  \renewcommand*{\autodot}{:}%
  \SAVEDNUMBERLINE{\tablename\ #1}%
  }% 
} 
\makeatother
%---------------------------------------------------------------------

\begin{document} 
\tableofcontents

% Tabellenverzeichnis linksbuendig beginnen
\selecttocstyleoption{tocflat}
\listoftables

\section{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis MIT Nummer angezeigt werden soll und bei welcher der Absatz schoen haengend ist.} 

Hier etwas Beispieltext.

\addsec{Dies ist eine Ueberschrift, die im Inhaltsverzeichnis OHNE Nummer angezeigt werden soll und ueberhaupt nicht haengend ist.} 

\begin{table}
\begin{tabular}{ll}
	\hline
	Linke Tasche & Rechte Tasche \\
	\hline
\end{tabular}
\caption{Eine Beispieltabelle, die im Tabellenverzeichnis nicht richtig angezeigt wird}
\end{table}

Und hier noch mehr Beispieltext. 

\end{document}
Vielen Dank für Deine/Eure Hilfe!
Timo

Verfasst: Di 2. Sep 2014, 11:44
von Noch so einer
Das ufert langsam zu einer never ending story aus …

Dass die Verwendung eines Pakets, das die Verzeichnisse umformatiert, einen Einfluss auf die Lösung für ein Formatierungsproblem in einem Verzeichnis hat, sollte Dich nicht sooo wahnsinnig überraschen.

Und \selecttocstyleoption hast Du ja ganz offensichtlich auch schon entdeckt. Auf ein
\selecttocstyleoption{tocindentauto}
vor \listoftables könnte man da vielleicht auch kommen …

Und ja, nach der Änderung sind wieder mehrere LaTeX-Läufe notwendig, bis das Tabellenverzeichnis korrekt ist.

Vielen Dank

Verfasst: Di 2. Sep 2014, 14:20
von Timo Beil
Hallo Noch so einer,

jetzt klappt's, noch einmal vielen Dank für Deine tatkräftige Unterstützung.

Beste Grüße,
Timo