Der Inhalt der Algorithmen lässt vermuten, dass ein verwendeter Algorithmus algorithm
ein Algorithmus ist und ein verwendeter Algorithmus algorithm2e
ein 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:
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 algorithm
und 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 \listof
und mit dem gewünschten horizontalen Abstand \l@algocf
festlegen . 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}