O conteúdo dos algoritmos pensa que um algoritmo que usa algorithm
é um algoritmo e um algoritmo que usa algorithm2e
é outro algoritmo, não o segundo do que foi importado com o outro pacote, mas uma entidade diferente ou algo assim, o que, na minha opinião, não está OK .
Eu gostaria deste:
1 algo 1..................... page of algo 1
1 algo 2..................... page of algo 2
a ser alterado para isto:
1 algo 1..................... page of algo 1
2 algo 2..................... page of algo 2
O alinhamento e a numeração foram alterados acima.
Aqui está o exemplo mínimo, baseado emessepergunta:
\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}
Saída:
Crônica
Eu estava com minha tese pronta. No entanto, ainda ontem à noite submetemos um artigo baseado nele. Devo enviar minha tese também e gostaria de incluir na tese alguns dos algoritmos escritos no artigo. Por vários motivos, cheguei a uma situação em que alguém vai dar uma solução para o meu problema, ou simplesmente deixarei a tese sem os algoritmos de papel, o que claro leva a uma tese de coração partido. :)
Os algoritmos do artigo são escritos com algorithm2e
, enquanto os algoritmos da tese são escritos com algorithm
e algorithmic
. Tenho que enviá-lo amanhã de manhã, portanto não tenho tempo para reescrevê-los (estou editando minha tese agora em outras seções), por isso ou ouvirei uma solução da comunidade aqui, ou deixarei os algoritmos do artigo fora da minha tese!
Responder1
Uma solução rápida é usar \setcounter
dentro de cada algoritmo. Além disso, para alinhar os algoritmos na lista de algoritmos, você precisa redefinir \listof
os \l@algocf
comandos e definir \@dottedtocline
com o espaçamento horizontal desejado. Aqui está o código:
\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}