gpt4 book ai didi

emacs - 使用 Emacs 编辑 LaTeX - 搜索未使用的\ref

转载 作者:行者123 更新时间:2023-12-01 09:38:53 24 4
gpt4 key购买 nike

在编写 .tex 文档时,我经常使用带标签的方程式。完成文档后,有时我发现我没有引用所有方程式。所以,我需要查找我没有引用的方程,并禁用这些方程的编号。如何在 Emacs 中做到这一点?

基本上,我需要搜索所有的\label{*}。然后,对于我找到的每个 *,让我知道是否有少于 1 个对应的\ref{*}。

谢谢。 (我想我真的是时候学习 LISP 了)。

最佳答案

Hacky Perl,适合一次性使用。既没有测试也没有证明是正确的。

捕获正则表达式可能会同时捕获整个匹配和 () 匹配,我不记得了。如果是这样,请捕获这份工作的机会。

use strict; 
use warnings;

#standard slurp
my ($fh, $file);
open $fh, "<", "mydatafile" or die("$!:mydatafile");
{
local $/ = undef;
$file = <$fh>;
close $fh;
}


#grab all captures.
my @labels = ($file =~ /\\label{(.*?)}/msg);

#hashes are easier for existence checks
my %labels = map {$_ => 1 } @labels;

my @refs = ($file =~ /\\ref{(.*?)}/msg);
my %refs = map {$_ => 1 } @refs;

foreach (keys %labels)
{
print "Error, $_ not referenced\n" unless $ref{$_};
}

关于emacs - 使用 Emacs 编辑 LaTeX - 搜索未使用的\ref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com