
Me gustaría enviar un trabajo a laRevista de lógica simbólica, lo que significa que necesito usar el archivo de clase asl.cls
y 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 hyperref
junto con las clases de documento y . Sin embargo, el archivo de clase está causando problemas. Aquí hay un MWE:cleveref
cite
article
book
asl.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:
- El archivo
asl.cls
es de 2002, que creo que es anterior a algunos de los paquetes, pero no pude encontrar una versión más reciente. - 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. - Si desactivo el
cite
paquete, la cita aparece correctamente como [1] (en lugar de [?]), pero no se puede hacer clic en ella. - Algunos paquetes estándar, como
amsthm
, están integrados en el archivoasl.cls
(no es que entienda completamente cómo hacerlo).
Entonces, mi pregunta es la siguiente: ¿Hay alguna manera de usar los paquetes hyperref
, cleveref
y cite
con (una versión posiblemente modificada de) asl.cls
?
Respuesta1
Hurgué en los archivos asl.cls
y asl.bst
traté de darle sentido a la guía del usuario de la clase de documento (en asldoc.ps
).
Haga una copia del archivo
asl.cls
y llame a la copia, digamos,als-mod.cls
.Abra el archivo
als-mod.cls
en el editor de texto y vaya a la línea 3332, donde\bibliographystyle
comienza 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-mod
como argumento requerido de\documentclass
y especifique las opcionesbibother
yotherbib
, sí, ¡ambas!En su archivo tex principal, cambie el argumento de
\bibliographystyle
fromasl
aplain
. La codificación en el archivoasl.bst
es simplemente inaceptable. No tiene sentido intentar arreglarlo. La guía del usuario de laasl
clase de documento sugiere, aunque indirectamente, que es aceptable compilar la propia bibliografía utilizando elplain
estilo; ¡A por ello! (La guía del usuario establece que "no hay razón para usar un estilo distinto aasl
". Si bien esto suena como un respaldo al uso delasl
estilo de bibliografía, no hay ninguna indicación de que se deba usarasl
).
Con estos cambios, \cite
las instrucciones en realidad le brindarán citas numéricas. ¡Guau!
- Para ponerse
cleveref
a trabajar, asegúrese de (a) ejecutar\newtheorem{thm}{Theorem}
antescargarcleveref
y (b) proporcionar las instrucciones\crefname{thm}{Theorem}{Theorems}
después de la cargacleveref
.
\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}