
매뉴얼을 읽으면 항상 이라는 라벨이 붙은 그림을 발견합니다 \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가 일부를 생성하여 ??
내가 오류를 범했음을 분명히 알립니다.
위의 스크린샷을 본 후에는 또 다른 이점이 있다고 생각합니다.
자동 완성: 대부분의 경우 그림, 섹션, 표 등을 참조하고 싶은지 알고 있는 것 같습니다. 이렇게 하면 실제로 많은 것을 생각해야 하는 요소의 수가 줄어듭니다. (그런데 어떤 편집기를 사용하시나요? 저는 아직도 gEdit/pluma를 사용하여 LaTeX를 입력합니다. 어쩌면 더 나은 대안이 있을까요?)
클레버레프(Cleveref)와 팬크레프(Fancref): 사용해야 하는 몇 가지 이유가 있습니다 \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는 레이블 네임스페이스에 신경 쓰지 않습니다. 이는 라벨 이름의 일부일뿐입니다.