我在 Windows 10 上安装了 Strawberry Perl 和 MiKTeX v2.9,并latexindent
通过 MiKTeX 控制台安装了该包。
但是,latexindent.pl
在命令提示符中运行会导致以下错误
在 @INC 中找不到 Log/Log4perl.pm(您可能需要安装 Log::Log4perl 模块)(@INC 包含:C:/Program Files/MiKTeX 2.9/scripts/latexindent C:/Strawberry/perl/site/lib C:/Strawberry/perl/vendor/lib C:/Strawberry/perl/lib)位于 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/LogFile.pm 第 22 行。BEGIN 失败 - 编译在 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/LogFile.pm 第 22 行中止。C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/Document.pm 第 25 行的 require 中编译失败。BEGIN 失败 - 编译在 C:/Program Files/MiKTeX 2.9/scripts/latexindent/LatexIndent/Document.pm 第 25 行。在 C:\Program Files\MiKTeX 2.9\scripts\latexindent\latexindent.pl 第 27 行,需要时编译失败。BEGIN 失败 - 在 C:\Program Files\MiKTeX 2.9\scripts\latexindent\latexindent.pl 第 27 行,编译中止。
此外,这个答案无法帮助消除错误。那么,这里缺少什么?
答案1
更新:
Log4perl 是确实不再需要。请参阅评论。
原始答案
对于在 Mac 上遇到相同问题的其他用户:
通过以下方式安装 perl brew
:
brew install perl
用于cpan
安装必要的perl
软件包:
打开cpan
并选择yes
是否需要自动设置配置:
cpan
然后安装错误日志中提到的任何软件包,您可能需要安装并重试几次才能找出所需的所有软件包。
就我而言,这些包修复了错误消息:
install Log::Log4perl
install Log::Dispatch::File
install YAML::Tiny
install File::HomeDir
Catalina 更新
如果安装失败并出现类似权限问题的错误消息,则可能是由于 Catalina 中的安全更改造成的。在这种情况下,请尝试强制安装:
cpan -fi \
Log::Log4perl \
Log::Dispatch::File \
YAML::Tiny \
File::HomeDir \
Unicode::GCString
答案2
答案3
作为版本 3.9该Log4Perl
模块不再由 加载latexindent.pl
。
所需 perl 模块的详细信息如下记录示例安装步骤如下.travis.yml和appveyor.yml
我真诚地希望这能简化工具的安装和使用。如果您能帮助改进latexindent.pl
,或者有任何问题,请访问https://github.com/cmhughes/latexindent.pl。
答案4
MacOS Big Sur
新的问题出现了大苏尔。这是我的解决办法。
(该解决方案假设您已经安装自制。 )
步骤 1. 安装 perl 及其包管理器
brew install perl
brew install cpanm
步骤 2. 创建符号链接MacOSX10.14.sdk
直接安装缺少的软件包将引发构建错误:
clang:警告:没有这样的 sysroot 目录:'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk'[-Wmissing-sysroot]
那是因为:
苹果决定不再以版本号来命名他们的 SDK,而是将其命名为 MacOSX.sdk,并在版本名中添加一个别名,以实现兼容性
因此我们创建符号链接此文件夹。(最近的 SDK 之间的差异很小)
> cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
> sudo ln -s MacOSX.sdk MacOSX10.14.sdk
步骤 3. 安装缺少的软件包
cpanm YAML::Tiny
cpanm File::HomeDir
cpanm Unicode::GCString
cpanm Log::Log4perl
cpanm Log::Dispatch