
Gostaria de submeter um artigo aoJornal de Lógica Simbólica, o que significa que preciso usar o arquivo de classe asl.cls
e o arquivo de estilo bibliográfico da Associação de Lógica Simbólica asl.bst
, ambos disponíveisaqui.
No passado, usei com sucesso os pacotes hyperref
, cleveref
e cite
junto com as classes article
e book
document. No entanto, o arquivo de classe asl.cls
está causando problemas. Aqui está um MWE:
\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}
E aqui está o arquivo 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}
}
Algumas observações e tentativas até agora:
- O arquivo
asl.cls
é de 2002, que acho que é anterior a alguns pacotes, mas não consegui encontrar uma versão mais recente. - Examinei o arquivo
asl.cls
, mas meu conhecimento do funcionamento interno dos arquivos de classe LaTeX émuitolimitado e há tantas dependências que não sei por onde começar. - Se eu desligar o
cite
pacote, a citação aparecerá corretamente como [1] (em vez de [?]), mas não será clicável. - Alguns pacotes padrão, como
amsthm
, são incorporados ao arquivoasl.cls
(não que eu entenda completamente como).
Então, minha pergunta é a seguinte: existe uma maneira de usar os pacotes hyperref
, cleveref
e cite
com (uma versão possivelmente modificada de) asl.cls
?
Responder1
Examinei os arquivos asl.cls
e asl.bst
tentei entender o guia do usuário da classe de documento (em asldoc.ps
).
Faça uma cópia do arquivo
asl.cls
e chame a cópia, digamos,als-mod.cls
.Abra o arquivo
als-mod.cls
no editor de texto e vá até a linha 3332, onde\bibliographystyle
começa a (re)definição de. Comente toda a (re)definição desta macro, ou seja, linhas 3332 a 3349.Em seu arquivo tex principal, especifique
asl-mod
como argumento obrigatório\documentclass
e especifique as opçõesbibother
eotherbib
- sim, ambas!No seu arquivo tex principal, altere o argumento de
\bibliographystyle
fromasl
paraplain
. A codificação no arquivoasl.bst
está simplesmente além dos limites. Não adianta tentar consertar. O guia do usuário daasl
classe document sugere, ainda que indiretamente, que é aceitável compilar a bibliografia usando oplain
estilo; Vá em frente! (O guia do usuário afirma que "não há razão para usar um estilo diferente deasl
." Embora isso pareça um endosso ao uso doasl
estilo bibliográfico, não há indicação de que seja necessário usarasl
.)
Com essas mudanças, \cite
as instruções fornecerão chamadas de citação numéricas. Uau!
- Para começar
cleveref
a trabalhar, certifique-se de (a) executar\newtheorem{thm}{Theorem}
antescarregandocleveref
e (b) fornecer as instruções\crefname{thm}{Theorem}{Theorems}
após o carregamentocleveref
.
\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}