ข้ามไปยังเนื้อหา

การอ้างอิงข้ามใน LaTeX: \label และ \ref

ใส่ \label{key} ไว้ถัดจากสิ่งที่ต้องการอ้างถึงทันที (หลัง \section{...} หลัง \caption{...} หรือภายในสมการ) แล้วเขียน \ref{key} ตรงที่ต้องการหมายเลข Scissor LaTeX จะเติมหมายเลขให้เมื่อจัดหน้า

ใส่ป้ายกำกับ แล้วอ้างถึง

การอ้างอิงข้ามมีสองส่วน \label{key} ทำเครื่องหมายสิ่งที่มีหมายเลข และ \ref{key} พิมพ์หมายเลขของมัน คีย์เป็นชื่อใดก็ได้ที่คุณเลือก คำนำหน้าอย่าง sec:, fig:, tab: และ eq: เป็นเพียงนิสัยที่ช่วยให้อ่านคีย์ได้ง่าย ไม่ใช่กฎ

อ้างถึงหัวข้อและรูปภาพ

\section{Results}
\label{sec:results}

\begin{figure}[h]
  \centering
  \begin{tikzpicture}
    \draw (0,0) -- (1,0.8) -- (2,0.3) -- (3,1.1);
  \end{tikzpicture}
  \caption{Measured values.}
  \label{fig:values}
\end{figure}

Section~\ref{sec:results} shows the values in Figure~\ref{fig:values}.
จัดหน้าโดย Scissor LaTeX: อ้างถึงหัวข้อและรูปภาพ

~ ระหว่างคำกับการอ้างอิงคือช่องว่างที่ไม่มีวันตัดขึ้นบรรทัดใหม่ ดังนั้น "Figure" และหมายเลขจะอยู่บนบรรทัดเดียวกันเสมอ

จะวางป้ายกำกับไว้ตรงไหน

ป้ายกำกับจะรับหมายเลขของสิ่งที่มีหมายเลขซึ่งอยู่ก่อนหน้าและใกล้ที่สุด:

อ้างถึงวาง \label\ref พิมพ์
หัวข้อทันทีหลัง \section{...} (หรือ \subsection, \chapter)2, 2.1
รูปภาพหรือตารางหลัง \caption{...} ภายใน float1
สมการภายใน equation หรือ align ที่มีหมายเลข1
รายการย่อยหลัง \item ใน enumerate2, 2b
ทฤษฎีบทภายใน theorem, lemma และสภาพแวดล้อมที่คล้ายกัน1
เชิงอรรถภายในข้อความของ \footnote{...}2

สมการ

\eqref{key} พิมพ์หมายเลขสมการในวงเล็บ ตามแบบที่มักแสดงหมายเลขสมการ ส่วน \ref{key} ให้หมายเลขเปล่า ๆ

\eqref และ \ref สำหรับสมการ

LaTeXส่วนนำ: \usepackage{amsmath}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{equation}
  a^2 + b^2 = c^2
  \label{eq:pythagoras}
\end{equation}
Equation~\eqref{eq:pythagoras} is famous; its number is \ref{eq:pythagoras}.

บล็อก align หรือ gather ได้หมายเลขเดียวใน Scissor LaTeX ไม่ใช่หนึ่งหมายเลขต่อแถว จะเก็บไว้เฉพาะ \label แรกในบล็อก การอ้างถึงป้ายกำกับของแถวถัดไปจึงพิมพ์ ?? ดูรายละเอียดใน สมการ การจัดแนว และการใส่หมายเลข

คำสั่งที่เพิ่มชื่อให้: \autoref และ \cref

\autoref (จาก hyperref) และ \cref (จาก cleveref) พิมพ์ชนิดของสิ่งนั้นพร้อมหมายเลข คุณจึงไม่ต้องเขียน "Figure" เอง \cref ทำตามค่าเริ่มต้นของ cleveref: ตัวพิมพ์เล็กและชื่อย่อ ("fig.", "eq.") และ \Cref ที่ต้นประโยคจะให้ชื่อเต็มที่ขึ้นต้นด้วยตัวพิมพ์ใหญ่

\autoref, \cref และ \Cref

LaTeXส่วนนำ: \usepackage{amsmath,hyperref,cleveref}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\section{Method}
\label{sec:method}
\begin{equation}
  y = 44x
  \label{eq:line}
\end{equation}
\begin{table}[h]
  \centering
  \caption{Settings.}
  \label{tab:settings}
  \begin{tabular}{lr} Runs & 44 \\ \end{tabular}
\end{table}
\autoref{sec:method} uses \cref{tab:settings} and \cref{eq:line}.
\Cref{tab:settings} lists the runs.
จัดหน้าโดย Scissor LaTeX: \autoref, \cref และ \Cref

cleveref ยังอ้างถึงหลายป้ายกำกับพร้อมกัน และอ้างถึงช่วงได้ด้วย:

รายการและช่วงด้วย \cref

LaTeXส่วนนำ: \usepackage{amsmath,cleveref}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{equation} a = 1 \label{eq:a} \end{equation}
\begin{equation} b = 2 \label{eq:b} \end{equation}
See \cref{eq:a,eq:b}, or \crefrange{eq:a}{eq:b}.

ตัวเลือกแพ็กเกจ capitalise (หรือ capitalize), noabbrev และ nameinlink ถูกอ่าน เช่นเดียวกับ \crefname และ \Crefname ในส่วนนำ

ตัวเลือกของ cleveref และ \crefname

\documentclass{article}
\usepackage{amsmath}
\usepackage[capitalise,noabbrev]{cleveref}
\crefname{table}{Tab.}{Tabs.}
\begin{document}
\begin{equation} E = mc^2 \label{eq:e} \end{equation}
\begin{table}[h]
  \centering
  \caption{Masses.}
  \label{tab:m}
  \begin{tabular}{l} 44 kg \\ \end{tabular}
\end{table}
\cref{eq:e} uses the mass in \cref{tab:m}.
\end{document}
จัดหน้าโดย Scissor LaTeX: ตัวเลือกของ cleveref และ \crefname
คำสั่งใน Scissor LaTeXหมายเหตุ
\ref{key}ใช้ได้เฉพาะหมายเลข
\eqref{key}ใช้ได้หมายเลขในวงเล็บ
\pageref{key}ใช้ได้หมายเลขหน้าที่ป้ายกำกับอยู่
\autoref{key}ใช้ได้บางส่วน"Section 2", "Figure 1", "Table 1", "Theorem 1" สำหรับสมการจะพิมพ์หมายเลขเปล่า ไม่ใช่ "Equation 1"
\cref, \Crefใช้ได้หนึ่งหรือหลายป้ายกำกับ ใช้ชื่อค่าเริ่มต้นของ cleveref หรือชื่อของคุณจาก \crefname
\crefrange, \cpageref, \namecrefใช้ได้ช่วง หน้า หรือเฉพาะชื่อ
\nameref{key}ใช้ได้บางส่วนพิมพ์หมายเลข ไม่ใช่ชื่อหัวข้อ
\vref{key}ใช้ได้บางส่วนพิมพ์หมายเลข โดยไม่มี "on the next page"
\hyperref[key]{text}ใช้ได้พิมพ์ข้อความของคุณเป็นลิงก์ไปยังป้ายกำกับ

หน้าและป้ายกำกับที่หายไป

\pageref พิมพ์หน้าที่ป้ายกำกับอยู่ การอ้างถึงป้ายกำกับที่ไม่มีอยู่จะพิมพ์ ?? ตัวหนา เหมือนที่ LaTeX ทำก่อนการรันครั้งที่สอง และแท็บปัญหาจะแสดงป้ายกำกับที่หายไปแต่ละตัวครั้งเดียว: "References to labels that do not exist (shown as ??): sec:nowhere"

\pageref และป้ายกำกับที่หายไป

\section{Data}
\label{sec:data}
The data is described on page~\pageref{sec:data}.
This label does not exist: Section~\ref{sec:nowhere}.

แท็บปัญหา: References to labels that do not exist (shown as ??): sec:nowhere

สิ่งที่ต่างจากการติดตั้ง TeX

สำหรับแพ็กเกจ ดู cleveref และ hyperref คู่มือฉบับเต็มอยู่บน CTAN: cleveref hyperref

คำถามและคำตอบ

ทำไมการอ้างอิงของฉันจึงแสดง ?? ใน LaTeX

ป้ายกำกับไม่มีอยู่ หรือสะกดต่างจากใน \ref ใน Scissor LaTeX อาจหมายความว่าป้ายกำกับนั้นเป็นตัวที่สองในบล็อก align ซึ่งได้หมายเลขเดียว

จะอ้างถึงสมการพร้อมวงเล็บได้อย่างไร

ใช้ \eqref{key} จาก amsmath ซึ่งพิมพ์หมายเลขในวงเล็บ เช่น (1)

\ref กับ \autoref ต่างกันอย่างไร

\ref พิมพ์เฉพาะหมายเลข \autoref เพิ่มชนิดเข้าไปด้วย เช่น "Figure 1" หรือ "Section 2" ซึ่งช่วยให้คุณไม่ต้องพิมพ์คำนั้นเอง

ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07