Inhaltsverzeichnis von algorithm und algorithm2e zusammen

Inhaltsverzeichnis von algorithm und algorithm2e zusammen

Der Inhalt der Algorithmen lässt vermuten, dass ein verwendeter Algorithmus algorithmein Algorithmus ist und ein verwendeter Algorithmus algorithm2eein anderer Algorithmus, und zwar nicht der zweite, der mit dem anderen Paket importiert wurde, sondern eine andere Entität oder so etwas, was meiner Meinung nach nicht in Ordnung ist.

Das würde mir gefallen:

  1 algo 1..................... page of algo 1
1 algo 2..................... page of algo 2

wie folgt zu ändern:

1 algo 1..................... page of algo 1
2 algo 2..................... page of algo 2

Ausrichtung und Nummerierung wurden oben geändert.

Hier ist das Minimalbeispiel, basierend aufDasFrage:

\documentclass{article}
\usepackage{algorithm} 
\usepackage{algorithmic}  
\usepackage[algo2e]{algorithm2e} 
\renewcommand{\listalgorithmname}{List of Algorithms}
\addtocontents{loa}{\protect\thispagestyle{empty}}

\begin{document}
    \listofalgorithms
    \smallskip
    \begin{algorithm}%>- from algorithm package
        test
        \caption{algo 1}
    \end{algorithm}

    \begin{algorithm2e}%>- from algorithm2e package
        test
        \caption{algo 2}
    \end{algorithm2e}
\end{document}

Ausgabe: Bildbeschreibung hier eingeben


Chronik

Ich hatte meine Abschlussarbeit fertig. Gestern Abend haben wir jedoch ein darauf basierendes Paper eingereicht. Ich muss meine Abschlussarbeit ebenfalls einreichen und möchte einige der Algorithmen, die ich für das Paper geschrieben habe, darin einarbeiten. Aus verschiedenen Gründen bin ich in eine Situation geraten, in der mir entweder jemand eine Lösung für mein Problem anbietet oder ich die Abschlussarbeit einfach ohne die Paper-Algorithmen verlasse, was natürlich zu einer herzzerreißenden Abschlussarbeit führt. :)

Die Algorithmen des Papers sind mit geschrieben algorithm2e, während die Algorithmen der These mit algorithmund geschrieben sind algorithmic. Ich muss es morgen früh als erstes abgeben, habe also keine Zeit, sie neu zu schreiben (ich bearbeite meine These gerade in anderen Abschnitten), deshalb werde ich mir hier entweder eine Lösung von der Community anhören oder die Algorithmen des Papers außerhalb meiner These lassen!

Antwort1

Eine schnelle Lösung besteht darin, innerhalb jedes Algorithmus zu verwenden \setcounter. Um die Algorithmen in der Liste der Algorithmen auszurichten, müssen Sie außerdem die Befehle neu definieren \listofund mit dem gewünschten horizontalen Abstand \l@algocffestlegen . Hier ist der Code:\@dottedtocline

\documentclass{article}
\usepackage{algorithm} 
\usepackage{algorithmic}  
\usepackage[algo2e]{algorithm2e} 
\renewcommand{\listalgorithmname}{List of Algorithms}
\addtocontents{loa}{\protect\thispagestyle{empty}}

% add this to align the list of algorithms
\makeatletter
  \renewcommand*{\listof}[2]{%
    \@ifundefined{ext@#1}{\float@error{#1}}{%
      \@namedef{l@#1}{\@dottedtocline{1}{1em}{2.3em}}% line of the list (change from 1em to the desired value)
      \float@listhead{#2}%
      \begingroup\setlength{\parskip}{\z@}%
        \@starttoc{\@nameuse{ext@#1}}%
      \endgroup}}
  \renewcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}% line of the list (change from 1em to the desired value)
\makeatother

\begin{document}
    \listofalgorithms
    \smallskip
    \begin{algorithm}%>- from algorithm package
      \setcounter{algorithm}{0}% set the counter for the 1st algorithm
        test
        \caption{algo 1}
    \end{algorithm}

    \begin{algorithm2e}%>- from algorithm2e package
      \setcounter{algocf}{1}% set the counter for the 2nd algorithm
        test
        \caption{algo 2}
    \end{algorithm2e}

    \begin{algorithm}%>- from algorithm package
      \setcounter{algorithm}{2}% set the counter for the 3rd algorithm
        test
        \caption{algo 3}
    \end{algorithm}

    \begin{algorithm2e}%>- from algorithm2e package
      \setcounter{algocf}{3}% set the counter for the 4th algorithm
        test
        \caption{algo 4}
    \end{algorithm2e}
\end{document}

verwandte Informationen