การอ้างอิงข้ามใน 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}.~ ระหว่างคำกับการอ้างอิงคือช่องว่างที่ไม่มีวันตัดขึ้นบรรทัดใหม่ ดังนั้น "Figure" และหมายเลขจะอยู่บนบรรทัดเดียวกันเสมอ
จะวางป้ายกำกับไว้ตรงไหน
ป้ายกำกับจะรับหมายเลขของสิ่งที่มีหมายเลขซึ่งอยู่ก่อนหน้าและใกล้ที่สุด:
| อ้างถึง | วาง \label | \ref พิมพ์ |
|---|---|---|
| หัวข้อ | ทันทีหลัง \section{...} (หรือ \subsection, \chapter) | 2, 2.1 |
| รูปภาพหรือตาราง | หลัง \caption{...} ภายใน float | 1 |
| สมการ | ภายใน equation หรือ align ที่มีหมายเลข | 1 |
| รายการย่อย | หลัง \item ใน enumerate | 2, 2b |
| ทฤษฎีบท | ภายใน theorem, lemma และสภาพแวดล้อมที่คล้ายกัน | 1 |
| เชิงอรรถ | ภายในข้อความของ \footnote{...} | 2 |
สมการ
\eqref{key} พิมพ์หมายเลขสมการในวงเล็บ ตามแบบที่มักแสดงหมายเลขสมการ ส่วน \ref{key} ให้หมายเลขเปล่า ๆ
\eqref และ \ref สำหรับสมการ
\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
\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.cleveref ยังอ้างถึงหลายป้ายกำกับพร้อมกัน และอ้างถึงช่วงได้ด้วย:
รายการและช่วงด้วย \cref
\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 | หมายเหตุ |
|---|---|---|
\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