Recentemente, experimentei o auctex 11.88 no emacs 24.4 (win7 + mac). está ótimo até agora!
Eu costumava ter o seguinte em meu arquivo .emacs emacs quando estava usando o auctex11.87 (encontrei isso no stackexchange em algum lugar)
(setq reftex-label-alist
'(
("theorem" ?h "thm:" "~\\ref{%s}" t ("theorem" "th."))
("lemma" ?l "lem:" "~\\ref{%s}" t ("lemma" "lem." ))
("exercise" ?x "ex:" "~\\ref{%s}" t ("exercise" "ex." ))
("question" ?q "ques:" "~\\ref{%s}" t ("question" "q." ))
))
(add-hook 'LaTeX-mode-hook
(lambda ()
(LaTeX-add-environments
'("lemma" LaTeX-env-label)
'("exercise" LaTeX-env-label)
'("theorem" LaTeX-env-label)
'("question" LaTeX-env-label)
)))
(setq reftex-insert-label-flags '("s" "ft"))
Ele gera automaticamente um rótulo quando insiro um ambiente recém-definido, digamos, quando executo C-c C-e exercise RET
, recebo
\begin{exercise}
\label{ex:1}
(cursor here)
\end{exercise}
agora em auctex11.88 só consigo
\begin{exercise}
(cursor here)
\end{exercise}
Preciso correr mais C-c (
para adicionar \label{ex:1}
lá.
Não tenho certeza se o código lisp que eu estava usando está desatualizado. Tentei executar a peça curta (LaTeX-env-label "exercise")
. No auctex11.87 obtenho o resultado desejado, mas não no auctex11.88.
Por favor, avise! Muito obrigado!
Aliás, é realmente um bug mencionado anteriormente em o Correio ou devemos ajustar algo mais no auctex11.88? Algum novo recurso + problema de compatibilidade com versões anteriores é mencionado em lista de discussão Não sou especialista nisso, alguém poderia explicar? muito obrigado!
Responder1
AUCTeX e RefTeX são dois pacotes separados e independentes, um pode ser usado sem o outro. AUCTeX tem algumas facilidades sobre gerenciamento de rótulos e citações, o RefTeX é muito melhor nisso.
Nem todo mundo usa RefTeX e houve uma mudança no AUCTeX 11.88 para permitir que os usuários escolham quais rótulos devem ser inseridos. Esta seleção é independente do RefTeX, mas como efeito colateral as pessoas precisam personalizar outra variável AUCTeX (não RefTeX): LaTeX-label-alist
. Aqui está sua descrição nomanual
Opção do usuário:Lista de rótulos LaTeX
Liste os prefixos a serem usados para o rótulo de cada ambiente suportado.
Esta é uma lista cujo carro é o nome do ambiente e o cdr é o prefixo ou um símbolo referente a um.
Se o nome não for encontrado, ou se o cdr for nulo, nenhum rótulo será inserido automaticamente para esse ambiente.
Se você deseja inserir automaticamente um rótulo para um ambiente, mas com um prefixo vazio, use a string vazia
""
como o cdr da entrada correspondente.
Portanto, você também deve adicionar uma entrada LaTeX-label-alist
para o excercise
ambiente. No seu .emacs
, substitua o add-hook
por este
(add-hook
'LaTeX-mode-hook
(lambda ()
(LaTeX-add-environments
'("lemma" LaTeX-env-label)
'("exercise" LaTeX-env-label)
'("theorem" LaTeX-env-label)
'("question" LaTeX-env-label))
(add-to-list 'LaTeX-label-alist '("exercise" . "ex:"))))
Para evitar confusão: AUCTeX decide se o rótulo deve ser inserido ou não LaTeX-label-alist
, mas se o RefTeX estiver habilitado, e em particular se LaTeX-label-function
estiver reftex-label
, a inserção do rótulo é transferida para o RefTeX e o rótulo realmente inserido é escolhido pelo valor de a Variável RefTeX, reftex-label-alist
.
Para usuários do RefTeX o valor do CDR da exercise
entrada LaTeX-label-alist
é quase inútil, o importante é que seja uma string válida.
O objetivo da personalização LaTeX-label-alist
é ter o mesmo comportamento para usuários RefTeX e não-RefTeX.
Para maior clareza, este é o mínimo .emacs
que usei para teste:
;; Enable RefTeX automatically in AUCTeX buffers.
(autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil)
(add-hook 'TeX-mode-hook
(lambda ()
(turn-on-reftex)))
(setq reftex-plug-into-AUCTeX t)
;; RefTeX-related settings.
(setq
reftex-label-alist
'(("theorem" ?h "thm:" "~\\ref{%s}" t ("theorem" "th."))
("lemma" ?l "lem:" "~\\ref{%s}" t ("lemma" "lem." ))
("exercise" ?x "ex:" "~\\ref{%s}" t ("exercise" "ex." ))
("question" ?q "ques:" "~\\ref{%s}" t ("question" "q." )))
reftex-insert-label-flags '("s" "ft"))
;; AUCTeX-related settings.
(add-hook
'LaTeX-mode-hook
(lambda ()
(LaTeX-add-environments
'("lemma" LaTeX-env-label)
'("exercise" LaTeX-env-label)
'("theorem" LaTeX-env-label)
'("question" LaTeX-env-label))
(add-to-list 'LaTeX-label-alist '("exercise" . "ex:"))))