![强制浮动出现在引用的位置](https://linux22.com/image/344684/%E5%BC%BA%E5%88%B6%E6%B5%AE%E5%8A%A8%E5%87%BA%E7%8E%B0%E5%9C%A8%E5%BC%95%E7%94%A8%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我喜欢使用不同的文件。
特别是,我喜欢将文档的文本放在文件中main.tex
,将图表放在 中figures.tex
。我使用将figures.tex
文件包含在文件末尾。 这样,所有图表都会出现在文件末尾。 main.tex
\input{figures}
我希望的是,这些图形能够自动出现在文本中第一次引用它们的位置附近(我可能会多次引用它们,我不在乎它们是在文本中的实际位置之前还是之后,它们只需要在那里附近)。
我不想每次在文本中引用图形时都添加诸如\input
或之类的语句,我调用的事实足以让我知道图形应该出现在那个位置附近。\includegraphics
\cref
我想将文件数量保持在最低限度,因此(例如)我不想为我拥有的每个图形或类似的东西生成一个文件。只需两个文件,一个声明图形,一个包含文本(当然,我有一个包含所有图像文件的文件夹)。
下面给出了 MWE。
main.tex
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{cleveref}
\begin{document}
Bla bla bla, a lot of text.
In \cref{fig:plot} we see that bla bla bla ...
Some other text.
...
...
Here we are basically at the end of the file.
\input{figures}
\end{document}
figures.tex
:
\begin{figure}
\centering
\includegraphics{path/to/file}
\caption{A nice figure.}
\label{fig:plot}
\end{figure}
啊,我也希望这对表格有用,但我想如果存在针对图形的解决方案,那么它也应该可以适用于表格,因为它们都是浮点数。
干杯
答案1
如果您在末尾输入数字,tex 能做的事情不多,但如果您在开始时输入它们,并稍微改变语法,那么存储数字并一次放出一个就很容易了。
图形.tex
\def\zzz#1#2{%
\expandafter\gdef\csname fig-#1\endcsname{\begin{figure}#2\label{#1}\end{figure}}}
\def\zzzcref#1{%
\csname fig-#1\endcsname\cref{#1}}
\zzz{fig:plot}{%
\centering
\includegraphics{path/to/file}
\caption{A nice figure.}
}
\zzz{fig:zzz}{%
\centering
\includegraphics{path/to/file}
\caption{An even better figure.}
}
文档
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{cleveref}
\input{figures}
\begin{document}
Bla bla bla, a lot of text.
In \zzzcref{fig:plot} we see that bla bla bla ...
Some other text.
...
...
\newpage
Here we are basically at the end of the file \zzzcref{fig:zzz}.
\end{document}