
Lendo manuais, sempre encontro figuras rotuladas como \label{fig:name}
. Eu me pergunto onde está a vantagem de usar essa notação em fig:
vez de começar com o próprio nome. Se no meu documento tenho apenas figuras quando faço \ref
algo usando o rótulo sem fig:
é mais rápido porque não preciso digitar fig:
antes para encontrar a figura certa que desejo. Há alguma vantagem que estou perdendo? Devo usar fig:
?
Responder1
Aqui estão pelo menos dois motivos:
Ele expressa o significado do rótulo de uma forma muito sensata, em todos os casos abaixo a intenção do rótulo é direta e também permitirá agrupar coisas que têm significado entre si
fig:system
eeq:system
têm o significado de sistema e um é um figura, a outra uma equação.fig:
para figurastbl:
/tabl:
para mesaseq:
para equaçõeschap:
/chp:
para capítulossec:
para seções
Normalmente, ele pode ser analisado pelo seu editor para facilitar a pesquisa apenas de rótulos de figuras/tabelas/equações. No caso do emacs existe o RefTeX que facilita o sistema de referência cruzada. Vários outros editores também possuem tais instâncias de sistema de referência cruzada.
Responder2
Além das razões apresentadas por outros (inteligibilidade da fonte; aproveitamento dos recursos do editor, etc.), se você usar fancyref
, poderá automatizar referências cruzadas mais descritivas. Isso torna mais fácil garantir que suas referências cruzadas sejam formatadas de forma consistente em todo o documento. O sistema pode ser adaptado para usar seus próprios prefixos e rótulos preferidos e pode ser estendido para cobrir referências cruzadas a outros elementos do seu documento. Ele pode lidar com referências simples e variáveis e oferece comandos de referência de maiúsculas e minúsculas prontos para uso.
\documentclass{article}
\usepackage{fancyref}
\begin{document}
\section{A section}\label{sec:mysec}
\begin{figure}
\centering \fbox{A figure}
\caption{My figure}\label{fig:myfig}
\end{figure}
\Fref{sec:myothersec} will demonstrate that \fref{fig:myfig} is fantastic.
\section{Another section}\label{sec:myothersec}
\Fref{fig:myfig} showed whatever my figure showed in \fref{sec:mysec}.
\end{document}
Responder3
Pessoalmente, nunca usei tal convenção (e o LaTeX não assume nenhuma estrutura para os rótulos). A string do rótulo é na verdade apenas um identificador interno opaco. Se você achar conveniente fornecer um prefixo comum para rótulos de objetos semelhantes, faça-o, mas certamente não é um requisito do sistema. Alguns pacotes e/ou editores podem tentar analisar a estrutura dos rótulos e procurar por fig:
etc, mas provavelmente não deveriam.
Responder4
Atualmente estou escrevendo algunsnotas de aula para "Geometria e Topologia"(em alemão). Com esse projeto aprendi por que os namespaces para rótulos fazem sentido.
Evite rótulos duplos: tive problemas sem prefixos como fig:
e sec:
ou bsp:
(por exemplo) ou thm:
, por causa de rótulos duplos. Muitas vezes, tenho uma figura que quero referenciar e um teorema. Namespaces resolvem esse problema muito bem.
Torne o código mais fácil de ler
Evite confusões: Às vezes, eu queria fazer referência a seções. Então eu tinha certeza de que a seção tinha um rótulo, por exemplo \label{lifting}
. Mas, na verdade, esse rótulo foi escolhido para uma figura. Isso não teria acontecido quando eu tivesse prefixos. Com prefixos, o LaTeX produziria alguns ??
e deixaria óbvio que cometi um erro.
Depois de ver a captura de tela acima, acho que há outra vantagem para você:
Preenchimento automático: Acho que na maioria das vezes você sabe se deseja fazer referência a uma figura, seção, tabela ou qualquer outra coisa. Dessa forma, você reduz bastante o número de elementos nos quais realmente precisa pensar. (A propósito, qual editor você usa? Eu ainda digito meu LaTeX com gEdit / pluma na maior parte do tempo... talvez você tenha uma alternativa melhor?)
Cleveref e Fancref: Existem algumas razões pelas quais você deve usar \usepackage{cleveref}
(vejaresposta longa). Com isso, você pode fazer algo como
\usepackage[nameinlink]{cleveref}
...
As you can see in \cref{sec:abc} ...
o que pode traduzir-se em
As you can see in section 7
onde "seção 7" está vinculada. Além disso, você pode passar opções de idioma cleveref
que podem facilitar a tradução.
Portanto, existem algumas razões importantes para usar sua própria convenção para namespaces de rótulos.
Colaboraçãoé a única razão para usar um "esquema de namespace bem conhecido", como fig:
para figuras e sec:
seções.
No entanto, o LaTeX não se preocupa com namespaces de rótulos. Eles são apenas uma parte do nome da gravadora.