Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 16

Thema: Nummerierungsproblem

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38

    Nummerierungsproblem

    Hallo zusammen,

    ich bin immernoch daran mir meine eigene Formelumgebung zu basteln in der ich den \caption Befehl verwenden kann. Das funktioniert soweit ganz gut. Nun soll die Nummerierung noch gleich sein wie bei der fortlaufenden equationons Umgebung.

    Um das ganze einfach zu halten habe ich ein Minimalbeispiel geschrieben. In dem Beispiel SOLLTE die Formel also Formula 3.2 heißen, und nicht wie es mit dem folgenden Code passiert, 3.2.1

    Code:
    %Minimalbeispiel
    \documentclass[a4paper,11pt,oneside]{scrbook} 
    \usepackage[latin1]{inputenc}
    \usepackage[english]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[onehalfspacing]{setspace}
    \usepackage{float}
    %/...
    \newfloat{formula}{H}{for}[equation] 
    \floatname{formula}{Formula} 
    \setlength{\parindent}{0cm} 
    \begin{document}
    \listof{formula}{Formulary} 
    
    \part{Erster Teil}
    \part{Zweiter Teil}
    \chapter{Kapitel}
    \chapter{Kapitel}
    \chapter{Kapitel}
    \section{Abschnitt}
    \subsection{Subsection}
    
    
    \begin{spacing}{1.3} \begin{eqnarray}
    \underline{Z}_{in~open} & = & \left. \underline{Z}(0)\right|_{\underline{Z}_{2} \rightarrow \infty} \nonumber \\
    & = & \left. \frac{ \underline{ \hat{u}}_{2}(0)} {\underline{\hat{i}}_{2}(0)}\right|_{\underline{Z}_{2} \rightarrow \infty} \nonumber \\
    & = & \left. \frac
    {
    \frac{1}{\underline{\hat{u}}_{2}} \cdot \underline{\hat{u}}_{2} \cdot \cosh (\underline{\gamma} \cdot l) + \underline{Z}_{0} \cdot \overbrace{\frac{\underline{\hat{i}}_{2}}{\underline{\hat{u}}_{2}}}^{\frac{1}{\underline{z}}_{2} \rightarrow 0} \cdot \sinh (\underline{\gamma} \cdot l)
    }
    {
    \underbrace{\frac{\underline{\hat{i}}_{2}}{\underline{\hat{u}}_{2}}}_{\frac{1}{\underline{Z}}_{2} \rightarrow 0} \cdot \cosh (\underline{\gamma} \cdot l) + \frac{\underline{\hat{u}}_{2}}{\underline{Z}_{0} \cdot \underline{\hat{u}}_{2}} \cdot \sinh (\underline{\gamma \cdot l})
    }\right|_{\underline{Z}_{2} \rightarrow \infty} 
    \label{eq:InputImpedanceOfOpenCircuitedLineLossy}
    \end{eqnarray} \end{spacing}
    
    
    
    \begin{formula}
    \begin{eqnarray}
    \underline{Z}{0} \sqrt
    	{
    		\underline{Z}_{in~open} \cdot \underline{Z}_{in~short}
    	}
    \label{eq:OpenShortMethod}
    \end{eqnarray}
    \caption{Open-Short-Method to determine the characteristic impedance measuring input impedances}
    \end{formula}
    \end{document}

    Vielleicht hat ja jemand eine Idee was ich beim Anlegen der Umgebung falsch gemacht habe.

    Viele Grüße

    Roman

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Gar nichts. \newfloat erzeugt einen eigenen Zähler. Du kannst zwar den neuen Zähler auf einen alten spiegeln, aber dann musst du in bei der \caption zurücksetzen. Grundsätzlich finde ich die Idee etwas seltsam.

    \documentclass[a4paper,11pt,oneside]{scrbook}
    \usepackage[latin1]{inputenc}
    \usepackage[english]{babel}
    \usepackage[T1]{fontenc}

    \usepackage{float}

    \newfloat{formula}{H}{for}
    \makeatletter
    \let\c@formula\c@equation
    \makeatother
    \floatname{formula}{Formula}
    \begin{document}
    \setcounter{part}{3}
    \setcounter{chapter}{10}
    \begin{eqnarray}
    a
    \label{eq:A}
    \end{eqnarray}

    \begin{formula}
    \begin{eqnarray}
    b
    \label{eq:B}
    \end{eqnarray}
    \addtocounter{formula}{-1}
    \caption{Open-Short-Method}
    \end{formula}

    \begin{eqnarray}
    a
    \end{eqnarray}
    \end{document}

  3. #3
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    noch eine kleine anmerkung. die eqnarry umgebung sollte man nicht mehr verwenden. besser ist es das amsmath paket einzubinden und mit equation,align usw. zu arbeiten.

    gruss
    Mein Ball ist umgefallen

  4. #4
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38
    Hallo Bob,

    da hast Du sicherlich Recht. Aber als Anfänger habe ich ein "book" angefangen in dem nun schon hunderte von Gleichungen und Formeln sind, die ich ohne das AMS-Paket erstellt habe. Das lässt sich jetzt leider nicht alles so einfach (Suchen/Ersetzen eqnarray --> align) umstellen. Nächstes Mal bin ich schlauer ;-)

  5. #5
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38

    Question

    Zitat Zitat von u_fischer Beitrag anzeigen
    Gar nichts. \newfloat erzeugt einen eigenen Zähler. Du kannst zwar den neuen Zähler auf einen alten spiegeln, aber dann musst du in bei der \caption zurücksetzen. Grundsätzlich finde ich die Idee etwas seltsam.
    Hallo Ulrike.
    Gibt es die Möglichkeit den neu erstellten Zähler ("Formelzähler") einfach um den letzten Punkt sowie die letzte Ziffer zu kürzen? Dann würde das genau meinen Zweck erfüllen?

    Beste Grüße

  6. #6
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    \let\theformula\theequation

  7. #7
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38

    Thumbs up

    Das funktioniert wunderbar. Vielen Dank.

    Jetzt habe ich noch ein kleines Problem bei der Erstellung meines Formelverzeichnisses. Ich erstelle dieses mit
    Code:
    \begin{document}
    \maketitle 
    \tableofcontents
    \listoffigures 
    \listoftables 
    \listof{formula}{Formulary} 
    Da ich jedoch die Klasse Buch verwende und die "Parts" angepasst habe (Nummerierung wie bei section), musste ich das Tabellen-, Abbildungs- und Inhaltsverzeichnis anpassen.

    Das habe ich beispielsweise für das Tabellenverzeichnis folgendermaßen getan:

    Code:
    \makeatletter
    \renewcommand*{\l@table}{\@dottedtocline{1}{1.5em}{2.9em}}
    \makeatother
    Das funktioniert wunderbar.

    Wie kann ich so etwas nun für mein Formelverzeichnis machen? Muss ich dazu erst ein /listofformula anlegen oder kann ich das auch mit der quick and dirty-Methode machen die ich bisher für das Formelverzeichnis verwendet habe?

    Viele Grüße und tausend Dank,

    Roman

  8. #8
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38
    ---push---

  9. #9
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von romanrt Beitrag anzeigen
    Das habe ich beispielsweise für das Tabellenverzeichnis folgendermaßen getan:

    Code:
    \makeatletter
    \renewcommand*{\l@table}{\@dottedtocline{1}{1.5em}{2.9em}}
    \makeatother
    Das funktioniert wunderbar.

    Wie kann ich so etwas nun für mein Formelverzeichnis machen? Muss ich dazu erst ein /listofformula anlegen oder kann ich das auch mit der quick and dirty-Methode machen die ich bisher für das Formelverzeichnis verwendet habe?
    ginge das nicht analog?
    Code:
    \makeatletter
    \renewcommand*{\l@table}{\@dottedtocline{1}{1.5em}{2.9em}}
    \renewcommand*\l@formula{...}
    \makeatother
    Ansonsten schau Dir mal Pakete wie titletoc oder tocloft an.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  10. #10
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38
    Das funktioniert nicht. Die Fehlermeldung sagt, dass die Umgebung formula nicht vorhanden ist. Da bin ich mit meinem Anfängerlatein mal wieder am Ende. :-(

  11. #11
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    Zitat Zitat von romanrt Beitrag anzeigen
    Das funktioniert nicht. Die Fehlermeldung sagt, dass die Umgebung formula nicht vorhanden ist.
    oh, float definiert den entsprechenden \l@formula-Befehl erst innerhalb des \listof-Befehls ...
    Code:
    \makeatletter
    \renewcommand*{\listof}[2]{%
      \@ifundefined{ext@#1}{\float@error{#1}}{%
        \@namedef{l@#1}{\@dottedtocline{1}{1.5em}{2.9em}}%<--
        \float@listhead{#2}%
        \begingroup\setlength{\parskip}{\z@}%
          \@starttoc{\@nameuse{ext@#1}}%
        \endgroup}}
    \makeatother
    obwohl, wenn Du scrhack lädst, sieht die Definition vermutlich anders aus.

    Hier mal ein Ansatz auf NeuKOMAnisch [1]:
    Code:
    \documentclass{scrbook}
    \usepackage[latin1]{inputenc}
    \usepackage[english]{babel}
    \usepackage[T1]{fontenc}
    
    \makeatletter
    \newenvironment{formula}{\@float{formula}}{\end@float}
    \newcommand*\fps@formula{hbp}
    \newcommand*\ftype@formula{4}
    \newcounter{formula}[chapter]
    \renewcommand\theformula{\thechapter.\arabic{formula}}
    \newcommand*\formulaformat{Formula~\theformula\autodot}
    \newcommand*\fnum@formula{\formulaformat}
    \newcommand*\ext@formula{for}
    \addtotoclist[float]{\ext@formula}
    \@namedef{listof\ext@formula name}{Formulary}
    \newcommand*\l@formula{\l@table}
    \setuptoc{\ext@formula}{chapteratlist}
    \newcommand*\listofformulas{\listoftoc{\ext@formula}}
    \makeatother
    \begin{document}
    \listofformulas
    \listoftables
    \chapter{Test}
    \begin{formula}
    \begin{equation}
    a
    \end{equation}
    \caption{Testformel}
    \end{formula}
    
    \begin{table}
    a
    \caption{Testtabelle}
    \end{table}
    \chapter{Test 2}
    \begin{formula}
    \begin{equation}
    b
    \end{equation}
    \caption{Testformel 2}
    \end{formula}
    
    \begin{table}
    b
    \caption{Testtabelle 2}
    \end{table}
    \end{document}
    also unter Verwendung des tocbasic-Pakets, das von scrbook eh geladen wird, vgl. `texdoc scrguide', Kapitel 12.

    [1] KOMA ab Version 3

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  12. #12
    Registrierter Benutzer Avatar von sommerfee
    Registriert seit
    02.07.2006
    Beiträge
    1.603
    Zitat Zitat von rais Beitrag anzeigen
    oh, float definiert den entsprechenden \l@formula-Befehl erst innerhalb des \listof-Befehls ...
    (Eigenwerbung an)

    \DeclareCaptionType des caption-Paketes aber nicht. Damit sollte es also gehen.

    (Eigenwerbung aus)

    Liebe Grüße,
    Axel

  13. #13
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin Axel,
    Zitat Zitat von sommerfee Beitrag anzeigen
    \DeclareCaptionType des caption-Paketes aber nicht. Damit sollte es also gehen.
    stimmt -- danke für denTip!

    @Roman: das vereinfacht die Sache in etwa zu
    Code:
    \documentclass{scrbook}
    \usepackage[latin1]{inputenc}
    \usepackage[english]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{caption}
    \DeclareCaptionType[fileext=for,placement=hbp,within=chapter]{formula}[Formula][Formulary]
    \makeatletter
    \renewcommand*\l@table{\@dottedtocline{1}{1.5em}{2.9em}}
    \renewcommand*\l@formula{\l@table}
    \makeatother
    \begin{document}
    \listofformulas
    \listoftables
    %etc. ... wie zuvor
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  14. #14
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38
    Ich danke euch vielmals!!!
    Leider kann ich das hier jetzt momentan nicht testen. Aber morgen bin ich wieder an meinem Arbeitsplatz. Dann werde ich euch von meinen Erfolgen berichten!

    Vielen Dank!

  15. #15
    Registrierter Benutzer
    Registriert seit
    05.06.2009
    Beiträge
    38
    Also nach ein paar Versuchen muss ich feststellen, dass die \DeclareCaptionType Anweisung aus irgendeinem Grund nicht funktioniert. Trotz laden des caption Paketes sagt mein Compiler Undefined control sequence :-(

    Ist sicherlich kein schwerwiegendes Problem, jedoch konnte ich in der Doku zum caption Paket keinen Hinweis darauf finden warum das bei mir so ist. Weiß jemand Rat?

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •