Choque entre el archivo de clase ASL y los paquetes Cleveref y Cite

Choque entre el archivo de clase ASL y los paquetes Cleveref y Cite

Me gustaría enviar un trabajo a laRevista de lógica simbólica, lo que significa que necesito usar el archivo de clase asl.clsy el archivo de estilo de bibliografía de la Asociación de Lógica Simbólica asl.bst, los cuales están disponiblesaquí.

En el pasado he utilizado con éxito los paquetes y hyperrefjunto con las clases de documento y . Sin embargo, el archivo de clase está causando problemas. Aquí hay un MWE:cleverefcitearticlebookasl.cls

\documentclass{asl}

\usepackage{color}
\usepackage{hyperref}
\hypersetup{colorlinks=true,linkcolor={blue},citecolor={orange}}
%\usepackage[nameinlink]{cleveref} % If this is switched on, then the .tex file fails to compile.
\usepackage{cite} % This package doesn't lead to a catastrophic failure, but the citation appears as [?].

\newtheorem{thm}{Theorem}

\title{A minimal working example}
\author{M.W.\ Example}

\begin{document}
\maketitle

\begin{thm}\label{theorem}
There exists a solution to this \LaTeX{} problem.
\end{thm}

\begin{proof}
See the \TeX{} Stack Exchange.
\end{proof}

A reference to the theorem: \ref{theorem} This is working! :)

A citation: \cite{test} This is not working. :(

\bibliography{MWE}
\bibliographystyle{asl}

\end{document}

Y aquí está el archivo MWE.bib:

 @article{test,
 author           = {Why, Y.O.},
 title            = {Clashes between packages and class files},
 journal          = {Journal of tricky \LaTeX{} problems},
 year             = {2017},
 volume           = {1},
 pages            = {1-101}
 }

Algunas observaciones e intentos hasta ahora:

  1. El archivo asl.clses de 2002, que creo que es anterior a algunos de los paquetes, pero no pude encontrar una versión más reciente.
  2. Revisé el archivo asl.cls, pero mi conocimiento del funcionamiento interno de los archivos de clase LaTeX esmuylimitado y hay tantas dependencias que no sé por dónde empezar.
  3. Si desactivo el citepaquete, la cita aparece correctamente como [1] (en lugar de [?]), pero no se puede hacer clic en ella.
  4. Algunos paquetes estándar, como amsthm, están integrados en el archivo asl.cls(no es que entienda completamente cómo hacerlo).

Entonces, mi pregunta es la siguiente: ¿Hay alguna manera de usar los paquetes hyperref, cleverefy citecon (una versión posiblemente modificada de) asl.cls?

Respuesta1

Hurgué en los archivos asl.clsy asl.bsttraté de darle sentido a la guía del usuario de la clase de documento (en asldoc.ps).

  • Haga una copia del archivo asl.clsy llame a la copia, digamos, als-mod.cls.

  • Abra el archivo als-mod.clsen el editor de texto y vaya a la línea 3332, donde \bibliographystylecomienza la (re)definición de. Comente la (re)definición completa de esta macro, es decir, las líneas 3332 a 3349.

  • En su archivo tex principal, especifique asl-modcomo argumento requerido de \documentclassy especifique las opciones bibothery otherbib, sí, ¡ambas!

  • En su archivo tex principal, cambie el argumento de \bibliographystylefrom asla plain. La codificación en el archivo asl.bstes simplemente inaceptable. No tiene sentido intentar arreglarlo. La guía del usuario de la aslclase de documento sugiere, aunque indirectamente, que es aceptable compilar la propia bibliografía utilizando el plainestilo; ¡A por ello! (La guía del usuario establece que "no hay razón para usar un estilo distinto a asl". Si bien esto suena como un respaldo al uso del aslestilo de bibliografía, no hay ninguna indicación de que se deba usar asl).

Con estos cambios, \citelas instrucciones en realidad le brindarán citas numéricas. ¡Guau!

  • Para ponerse cleverefa trabajar, asegúrese de (a) ejecutar\newtheorem{thm}{Theorem} antescargar cleverefy (b) proporcionar las instrucciones \crefname{thm}{Theorem}{Theorems}después de la carga cleveref.

ingrese la descripción de la imagen aquí

\RequirePackage{filecontents}
\begin{filecontents}{MWE.bib}
@article{test,
 author       = {Why, Y. O.},
 title        = {Clashes between packages and class files},
 journal      = {Journal of tricky \LaTeX{} problems},
 year         = {2017},
 volume       = {1},
 pages        = {1-101}
 }
\end{filecontents}

\documentclass[otherbib,bibother]{asl-mod} % not 'asl'
\usepackage{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=true,
            linkcolor={blue},
            citecolor={red}}

\newtheorem{thm}{Theorem}

\usepackage[nameinlink]{cleveref} % 'nameinlink' option is optional
\crefname{thm}{Theorem}{Theorems}

\bibliographystyle{plain} % not 'asl'

\begin{document}
%\title{A minimal working example}
%\author{M.W.\ Example}
%\maketitle

\begin{thm}\label{theorem}
There exists a solution to this \LaTeX{} problem.
\end{thm}

\begin{proof}
See the \TeX{} Stack Exchange.
\end{proof}

A \verb+\cref+ cross-reference: \cref{theorem}. This is now working.

A citation call-out: \cite{test}. This now works too.

\bibliography{MWE}
\end{document}

información relacionada