Tabla de contenidos de algoritmo y algoritmo2e juntos

Tabla de contenidos de algoritmo y algoritmo2e juntos

El contenido de los algoritmos piensa que un algoritmo que usa algorithmes un algoritmo y un algoritmo que usa algorithm2ees otro algoritmo, no el segundo de lo que se importó con el otro paquete, sino una entidad diferente o algo así, lo cual, en mi opinión, no está bien. .

Me gustaría esto:

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

se cambiará a esto:

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

La alineación y la numeración se cambiaron arriba.

Aquí está el ejemplo mínimo, basado enestepregunta:

\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}

Producción: ingrese la descripción de la imagen aquí


Crónica

Tenía mi tesis lista. Sin embargo, anoche presentamos un artículo basado en él. Debo enviar mi tesis también y me gustaría incluir en la tesis algunos de los algoritmos escritos en el artículo. Por varias razones, me he encontrado en una situación en la que alguien me dará una solución a mi problema, o simplemente dejaré la tesis sin los algoritmos en papel, lo que por supuesto me lleva a una tesis desconsolada. :)

Los algoritmos del artículo se escriben con algorithm2e, mientras que los algoritmos de la tesis se escriben con algorithmy algorithmic. Tengo que enviarlo mañana a primera hora, por lo que no tengo tiempo para volver a escribirlos (ahora estoy editando mi tesis en otras secciones), por eso escucharé una solución de la comunidad aquí o dejaré los algoritmos. del trabajo fuera de mi tesis!

Respuesta1

Una solución rápida es utilizar \setcounterdentro de cada algoritmo. Además, para alinear los algoritmos en la lista de algoritmos, debe redefinir \listoflos \l@algocfcomandos y configurarlos \@dottedtoclinecon el espaciado horizontal deseado. Aquí está el 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}

información relacionada