有没有办法(从 Tex 中)找出源文件中特定位置对应的页码?在该位置使用文件中的宏就可以了。
我的动机是,我希望(最终)获得一个可以对 Beamer 演示文稿进行部分编译的系统。由于我通常在编译之间只更改一两个框架,因此每次都重新编译整个文档是非常低效的(条件编译之类的模数技巧有点帮助)。如果我知道哪些页面对应于每个框架,那么应该可以将旧的编译版本与新内容拼接在一起。
编辑:抱歉,我应该更具体一点。我不希望在 pdf 中有任何输出,而是想通过其他方式(可能通过日志文件)获取它,以便我可以从外部程序访问它。
答案1
使用\typeout{Some identifier of your choice \thepage}
。这将使输入的消息出现在控制台输出和文件中.log
。
答案2
有些软件包支持此功能,用于向前搜索:即,单击编辑器中的源代码位置,然后会转到预览应用程序中的相应位置。编辑器和预览应用程序都必须支持此功能(但大多数都支持)。
长话短说,前向搜索使用编译期间生成的单独文件中的信息。
例如,pdfsync
包会创建一个名为 的文件<name>.pdfsync
。您可以使用该文件获取所需的信息。我不知道该文件的格式,但考虑到主页上描述了该文件的格式,应该不难弄清楚。
另一种选择(似乎取代了pdfsync
)是synctex
工具。可以直接从命令行使用它,也可以通过命令\synctex=1
(或通过命令行开关)从 LaTeX(在新发行版上)中激活它synctex=1
。在这种情况下,<name>.synctex.gz
将生成一个文件,其中包含与上述类似的文件,尽管是经过 gzip 压缩的。
答案3
这\label{this}
是在页面上~\pageref{this}
(需要多次编译)。