
Читая руководства, я всегда нахожу цифры, помеченные как \label{fig:name}
. Интересно, в чем преимущество использования этой нотации с fig:
вместо того, чтобы начинать с самого имени. Если в моем документе есть только цифры, когда я \ref
что-то использую метку без, fig:
это быстрее, потому что мне не нужно печатать fig:
сначала, чтобы найти нужную мне цифру. Есть ли какие-то преимущества, которые я упускаю? Стоит ли мне использовать fig:
?
решение1
Вот как минимум две причины:
Он выражает значение метки очень разумным образом, во всех приведенных ниже случаях цель метки очевидна, и она также позволит вам сгруппировать вещи, имеющие значение друг для друга
fig:system
иeq:system
имеющие значение системы, где одна из них является числом, а другая — уравнением.fig:
для фигурtbl:
/tabl:
для таблицeq:
для уравненийchap:
/chp:
для главsec:
для разделов
Обычно он может быть проанализирован вашим редактором для упрощения поиска только меток рисунков/таблиц/уравнений. В случае emacs есть RefTeX, который упрощает систему перекрестных ссылок. Несколько других редакторов также имеют такие примеры системы перекрестных ссылок.
решение2
В дополнение к причинам, указанным другими (понятность источника; использование возможностей редактора и т. д.), если вы используете fancyref
, вы можете автоматизировать более описательные перекрестные ссылки. Это позволяет легко гарантировать, что ваши перекрестные ссылки будут единообразно отформатированы по всему документу. Систему можно адаптировать для использования ваших собственных предпочитаемых префиксов и меток, а также расширить для охвата перекрестных ссылок на другие элементы вашего документа. Она может обрабатывать как простые, так и варио-ссылки и предлагает команды ссылок в верхнем и нижнем регистре из коробки.
\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}
решение3
Лично я никогда не использовал такое соглашение (и LaTeX не предполагает никакой структуры для меток), строка метки на самом деле просто непрозрачный внутренний идентификатор. Если вам удобно давать общий префикс меткам похожих объектов, то делайте так, но это, конечно, не является требованием системы. Некоторые пакеты и/или редакторы могут попытаться проанализировать структуру меток и поискать fig:
и т. д., но, вероятно, им не следует этого делать.
решение4
Я сейчас пишу некоторыеКонспект лекций по курсу «Геометрия и топология»(на немецком). Благодаря этому проекту я понял, почему пространства имен для меток имеют смысл.
Избегайте двойных ярлыков: У меня были проблемы без префиксов типа fig:
and sec:
или bsp:
(например) или thm:
, из-за двойных меток. Довольно часто у меня была фигура, на которую я хотел сослаться, и теорема. Пространства имен прекрасно решают эту проблему.
Сделайте код более удобным для чтения
Избегайте путаницы: Иногда мне хотелось ссылаться на разделы. Поэтому я был уверен, что у раздела есть метка, например \label{lifting}
. Но на самом деле эта метка была выбрана для рисунка. Этого бы не произошло, если бы у меня были префиксы. С префиксами LaTeX выдал бы некоторые ??
и сделал бы очевидным, что я допустил ошибку.
После того, как я увидел скриншот выше, я думаю, что для вас есть еще одно преимущество:
Автодополнение: Я думаю, в большинстве случаев вы знаете, хотите ли вы сослаться на рисунок, раздел, таблицу или что-то еще. Таким образом, вы сокращаете количество элементов, о которых вам действительно нужно думать довольно много. (Кстати, какой редактор вы используете? Я все еще печатаю свой LaTeX с помощью gEdit / pluma mot времени ... может быть, у вас есть лучшая альтернатива?)
Клевереф и Фанкреф: Есть несколько причин, по которым вам следует использовать \usepackage{cleveref}
(см.длинный ответ). С этим вы можете сделать что-то вроде
\usepackage[nameinlink]{cleveref}
...
As you can see in \cref{sec:abc} ...
что может перевести как
As you can see in section 7
где "раздел 7" связан. Кроме того, вы можете передать языковые параметры, cleveref
которые могут облегчить перевод.
Таким образом, есть несколько важных причин использовать собственное соглашение для пространств имен меток.
Сотрудничествоэто единственная причина использования «общеизвестной схемы пространства имен», например, fig:
для рисунков и sec:
разделов.
Однако LaTeX не заботится о пространствах имен меток. Они являются лишь частью имени метки.