求助: 在 macOS 下编译 dvisvgm

dvisvgm 在 MacTeX 中只提供了 2.x 版本. 但是最近发布的 3.x 版本提供了很多新的功能.

我的系统是 macOS arm64. 我尝试从源代码编译 dvisvgm 但是出现了各种各样的错误就不一一列举了.

请问有没有编译成功的朋友? 可以来分享一下经验.

无非你依赖没装全,没啥好分享的

我之前也编译过这个,感觉确实不太好编译。

这是我基于这个Build dvisvgm and kpathsea on macOS · GitHub 改的脚本,应该能直接在新版arm64安装

#!/bin/bash
set -xeuo pipefail
IFS=$'\n\t'

PREFIX="${1:-/usr/local/dvisvgm}"
TEX="$(kpsewhich -var-value SELFAUTOLOC)"

echo "$PREFIX, $TEX"

brew install automake freetype ghostscript potrace autoconf-archieve brotli woff2


# download the sources
mkdir -p "$PREFIX/source/texk"
cd "$PREFIX/source/"

# see https://www.tug.org/texlive/svn/
rsync -av --exclude=.svn tug.org::tldevsrc/Build/source/build-aux .
rsync -av --exclude=.svn tug.org::tldevsrc/Build/source/texk/kpathsea texk/

git clone https://github.com/mgieseki/dvisvgm.git

#compile kpathsea
cd texk/kpathsea

# patch SELFAUTOLOC
perl -0777 -i.bak \
    -pe 's|(kpathsea_selfdir \(kpathsea kpse, const_string argv0\)\n\{)|$1\n  return xstrdup("'"$TEX"'");\n|g' \
    progname.c
./configure --prefix="$PREFIX/"

make -j10
make install

# compile dvisvgm
cd ../../dvisvgm

#autoreconf -fi
CPPFLAGS="-I$PREFIX/include/ `pkg-config --cflags-only-I openssl`" \
    LDFLAGS="-L$PREFIX/lib/ `pkg-config --libs-only-L freetype2`" ./configure --prefix="$PREFIX/"


make -j10
make check
make install

把上面这个保存成build_dvisgm.sh,然后执行 bash build_dvisgm.sh [安装的绝对路径]

上述安装的版本应该是3.0.2

1 个赞

我是 intel 的机器,会报 ./build-dvisvgm.sh: line 39: ./configure: No such file or directory

我直接从 Releases · mgieseki/dvisvgm · GitHub 下载的 dvisvgm-3.0.4.tar.gz 解压后放在 /usr/local 下就行了。

现在 MacTeX 2023 正式发布了. 你可以直接安装最新的 MacTeX, 内置了 dvisvgm3.

3 个赞

我买了新的机器,M3 Max,安装了 MacTex 后 dvisvgm --version 确实有,但是 emacs 找不到它。

如果用的 homebrew-emacs-plus 在安装完 MacTex 后重新编译安装 emacs-plus 就好. 如果是原生的 Emacs 可以看一下这个包: exec-path-from-shell.

我原先就安装了 texlive,经过@roife 提醒从 /Library/TeX/texbin/ 复制到 /opt/homebrew/bin/ 就可以了。