PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit \newfloat und \listof



dj_mojo
31-07-2008, 16:33
Hallo allerseits

ich schreibe gerade eine Arbeit im Fach Chemie und möchte dazu meine Abbildungen nach Figures (normale Abbildungen) und Schemes (Reaktionspfade) unterscheiden. Dazu benutze ich den \newfloat Befehl aus dem float-package.

Die Probleme sind nun folgende:

1. Abbildungen in den Scheme-Umgebungen erscheinen nicht zentriert, sondern etwas nach links verschoben. Abbildungen in den Figure-Umgebungen sind auch wirklich zentriert, so wie ich es haben will.

2. Im Verzeichnis der Schemes (generiert mit \listof{scheme}{List of Schemes}) haben alle Einträge einen normalen Abstand (wie im Fließtext). Ich möchte aber die gleichen Abstände wie in der \listoffigures erzeugen (soweit ich weiß 10 pt zwischen einzelnen Einträgen und 20 pt zwischen Einträgen aus verschiedenen Kapiteln).

Im folgenden ein Minimalbeispiel meines Codes:


\documentclass[a4paper,titlepage,12pt,twoside,openright]{report}

\usepackage{graphicx}
\usepackage{dcolumn}
\usepackage[german,english,UKenglish]{babel}
\usepackage{fancyhdr}
\usepackage[latin1]{inputenc}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{umlaut}
\usepackage{floatflt}
\usepackage{float}
\usepackage[bf,nooneline]{caption2}

%%% Formatierung der Caption

\renewcommand*\captionfont{\itshape}
\renewcommand*\captionlabelfont{\upshape}
\renewcommand\captionlabelfont{\bf}

\usepackage{hyperref}


%%%% Definition der neuen Float-Umgebung scheme

\newfloat{scheme}{h}{ext}[chapter]
\floatname{scheme}{Scheme}


\begin{document}

\chapter{Kapitel 1}

%%% Einbinden eines Bildes

\begin{figure}[h!]
\centering
\scalebox{1.0}{\includegraphics{pics/figure1}}
\caption[figure1]{figure1}
\label{fig:figure1}
\end{figure}


%%% Einbinden eines Schemas

\begin{scheme}[h!]
\centering
\scalebox{1.0}{\includegraphics{pics/scheme1}}
\caption[scheme1]{scheme1}
\label{scheme:scheme1}
\end{scheme}


%%% Abbildungsverzeichnis

\listoffigures
\addcontentsline{toc}{chapter}{List of Figures}
\cleardoublepage

%%% Scheme-Verzeichnis

\listof{scheme}{List of Schemes}
\addcontentsline{toc}{chapter}{List of Schemes}
\cleardoublepage

\end{document}


Für entsprechende Hilfe wäre ich sehr dankbar zumal mein Abgabetermin immer näher rückt. DANKE !
vg mojo

sommerfee
01-08-2008, 09:27
Dazu benutze ich den \newfloat Befehl aus dem float-package.

\newfloat definiert eine Gleitumgebung, die sich nicht exakt wie figure und table verhält, sondern stattdessen einem Stil namens "plain", "plaintop", "ruled", "boxed", ... gehorcht. Der Standard-Stil "plain" bildet zwar so halbwegs das von figure und table gewohnte Aussehen und Verhalten nach, aber eben mit einigen Unterschieden. (Eine Suche hier im Forum sollte mehr Details hierzu liefern, wenn nicht, frage bei Bedarf nochmal nach.)

Mir ist persönlich nur ein Weg bekannt, eine Gleitumgebung zu definieren, die sich wie figure und table verhält, und dies geht mit \DeclareCaptionType meines aktuellen caption-Paketes. Damit sollten die Probleme 1 und 2 nicht mehr existieren.



\usepackage{umlaut}


Da du schon inputenc geladen hast, laß diese Zeile besser weg.



\usepackage[bf,nooneline]{caption2}

%%% Formatierung der Caption

\renewcommand*\captionfont{\itshape}
\renewcommand*\captionlabelfont{\upshape}
\renewcommand\captionlabelfont{\bf}


Nimm besser das aktuelle caption-Paket stattdessen:


\usepackage[font=it,labelfont=bf,singlelinecheck=off]{caption}


Und dies hier:


%%%% Definition der neuen Float-Umgebung scheme

\newfloat{scheme}{h}{ext}[chapter]
\floatname{scheme}{Scheme}

...

%%% Scheme-Verzeichnis

\listof{scheme}{List of Schemes}


wäre dann zu ersetzen durch:


%%%% Definition der neuen Float-Umgebung scheme

\DeclareCaptionType{scheme}

...

%%% Scheme-Verzeichnis

\listofschemes


Gruß,
Axel

dj_mojo
01-08-2008, 15:06
Hi Axel

vielen Dank erstmal für die schnelle Antwort.

Das mit der Zentrierung der schemes im Text klappt jetzt hervorragend. Allerdings habe ich nun immer noch zwei Probleme:

1. Im Scheme-Verzeichnis sind jetzt alle Einträge durch ein Absatz von 10 pt getrennt (wie gewünscht). Allerdings ist der Abstand des allerersten Eintrags Scheme 1.1 zur Überschrift des Scheme-Verzeichnisses etwas kleiner als der vergleichbare Abstand zwischen der Überschrift des Figure-Verzeichnisses und dem ersten Eintrag Figure 1.1.

Desweiteren sind im Scheme-Verzeichnis alle Einträge durch einen Abstand von 10pt getrennt. Zwischen Schemes aus verschiedenen Kapiteln (also z.B. von 2.7 nach 3.1) möchte ich jedoch einen doppelten Abstand (20pt) wie im Figure-Verzeichnis.
Gibt´s eine Möglichkeit dies zu ändern?


2. Mit dem Einfügen deiner Vorschläge hat sich die Silbentrennung verändert. Z.B. wird jetzt das Wort "chemistry" falsch getrennt nämlich so che-mistry. (Vorher wurde es richtig getrennt nämlich chem-istry). Gibt´s ein Package, dass die Silbentrennung wieder richtig stellt? Insbesondere benötige ich es für ENGLISCHEN Textsatz.

Vielen Dank nochmal
vg und schönes Wochenende
mojo

sommerfee
02-08-2008, 15:35
Zu 1: Das ist ein bekannter Fehler, der in der nächsten Version des caption-Paketes behoben sein wird. (Sorry, hatte ich ganz vergessen!)

Probiere mal als Workaround:
(Achtung: Nur für die Standard-Klassen geeignet, nicht für KOMA-Script!)


\DeclareCaptionType{scheme}
\makeatletter
\@ifpackagelater{caption}{2008/07/01}{}{
\let\@chapter@ORI\@chapter
\def\@chapter[#1]#2{\@chapter@ORI[{#1}]{#2}%
\addtocontents{loscheme}{\protect\addvspace{10pt}} %
}
}
\makeatother


Zu 2.:
Das ist sehr komisch, denn keiner der Änderungen sollte Einfluß auf die Silbentrennung haben. Das caption-Paket hat mit sowas gar nichts am Hut, und das umlaut-Paket ist eine Art prähistorischer Vorgänger des inputenc-Paketes; beide kümmern sich darum, daß man Sonderzeichen wie Umlaute + ß direkt verwenden kann. (Haben aber AFAIK rein gar nichts mit der Worttrennung zu tun.)

Bei mir ist es vielmehr so, daß mit


\usepackage[english]{babel}

chem-isty und mit


\usepackage[UKenglish]{babel}

che-mistry getrennt wird:



\documentclass{report}
\usepackage[german,english,UKenglish]{babel}
\begin{document}
english:
\selectlanguage{english}
\parbox[t]{20pt}{chemistry chemistry chemistry}
\par\bigskip
UKenglish:
\selectlanguage{UKenglish}
\parbox[t]{20pt}{chemistry chemistry chemistry}
\end{document}


Gruß,
Axel

dj_mojo
05-08-2008, 11:32
Hi Axel

danke für die Hilfe - jetzt klappt alles hervorragend.
btw nettes package dass du da geschrieben hast.

Vg mojo