我在网上学习过一些教程,比如https://latex-tutorial.com/tutorials/figures/和https://www.overleaf.com/learn/latex/How_to_Write_a_Thesis_in_LaTeX_(第 3 部分):图表、子图表和表格#表格 在我的文档中创建可参考的图形,但输出的只是 ?? 而不是图形。以下是导入的包:
\usepackage[utf8]{inputenc}
\usepackage{booktabs} % for much better looking tables
\usepackage{array} % for better arrays (eg matrices) in maths
\usepackage{paralist} % very flexible & customisable lists (eg. enumerate/itemize, etc.)
\usepackage{verbatim} % adds environment for commenting out blocks of text & for better verbatim
\usepackage{subfig} % make it possible to include more than one captioned figure/table in a single float
\usepackage{multicol}
\usepackage[a4paper, total={8in, 8in}]{geometry}
\usepackage{appendix}
\usepackage{tabularx}
\usepackage{biblatex}%to cite articles
\usepackage{fancyhdr}
\addbibresource{ACS231.bib}%change the name of the file to a different .bib file
\usepackage{graphicx}
\usepackage{comment}
\graphicspath{ {./images/} }
文档进一步内容:
\begin{document}
\begin{multicols}{2}
\subsection{Electronics Design | Exercise 9}
Here is the electrical diagram.
\begin{figure}[h!]
\centering
\includegraphics[width=7cm]{finalSchematic.jpg}
\caption{Schematic}
\label{fig:schematic}
\end{figure}
\figurename{\ref{fig:schematic}}
\ref{fig:schematic}
\end{document}
\end{multicols}{2}
我在 Overleaf 的示例程序中尝试了此方法,并且成功了,这表明问题不在于文件本身。我倾向于认为这可能是程序包交互。我创建了一个新文件并粘贴了整个代码,但还是出现了同样的问题。我在其他帖子中看到过由于语法不正确而导致的问题,但如果它在示例文件中成功了,则并不表明这是语法问题。有什么想法吗?
没有出现红色圆圈,只有与日志相对应的黄色警告。它所指的行是:
\ref{fig:schematic}
在我看来这似乎是指代某个实际上被标记的东西?
答案1
您展示的所有包都与 无关\ref
(请参阅下文multicol
)。 使几乎所有包含图形的类中的\figurename
文本(或其翻译)都如此,因此非常令人惊讶的是,您没有前缀,或者您只得到一个 ?? 而不是两个,因为您有两个 实例。明确使用是不寻常的,但不是错误。figure
??
figure
\ref
\figurename
你确定没有显示任何错误吗(Overleaf 只显示一个小红圈作为阅读日志的提示)
鉴于
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\subsection{Electronics Design | Exercise 9}
Here is the electrical diagram.
\begin{figure}[h!]
\centering
\includegraphics[width=7cm]{example-image.jpg}
\caption{Schematic}
\label{fig:schematic}
\end{figure}
\figurename{\ref{fig:schematic}}
\ref{fig:schematic}
\end{document}
第一次运行后应该看起来像
第二次运行后应该看起来像
您更新的问题显示了原因:
如果我在示例中添加 multicol,我会收到相同的警告和相同的结果:
\documentclass{article}
\usepackage{graphicx,multicol}
\begin{document}
\begin{multicols}{2}
\subsection{Electronics Design | Exercise 9}
Here is the electrical diagram.
\begin{figure}[h!]
\centering
\includegraphics[width=7cm]{example-image.jpg}
\caption{Schematic}
\label{fig:schematic}
\end{figure}
\figurename{\ref{fig:schematic}}
\ref{fig:schematic}
\end{multicols}
\end{document}
由于您在禁止使用数字的地方使用了数字,因此它基本上被丢弃,因此\label
从未被激活,因此\ref
将其报告为未定义的标签。
答案2
另一个答案中提到的 Multicol 和数字在兼容性方面存在困难:
由于您在不允许使用图形的地方使用了图形,因此它基本上被丢弃,因此 \label 从未被激活,因此 \ref 将其报告为未定义的标签。
遵循这里提供的答案:多色和图形 我设法使用提供的代码来引用和显示该图形。
我在文档开头添加了以下内容\usepackage
:
\newenvironment{Figure}
{\par\medskip\noindent\minipage{\linewidth}}
{\endminipage\par\medskip}
显示并参考图:
\begin{Figure}
\centering
\includegraphics[width=\linewidth]{Images/finalSchematic.jpg}
\captionof{figure}{Electronic schematics}
\label{figschematics}
\end{Figure}%Capital F. Use captionof.
here is blah blah \ref{figschematics}