在日常写作、做科研笔记或整理公式表格时,经常需要把临时内容快速转换成 PDF、SVG。

一个简单的 Shell 函数,通过直接读取剪贴板内容,自动生成 LaTeX 文件并一键编译成 PDF。

function compile_tex_with_clipboard
    cd ~/Documents/latex/
    cat ./header.tex >main.tex
    echo "\begin{document}" >>main.tex
    wl-paste --type "text/plain;charset=utf-8" >>main.tex
    echo "\end{document}" >>main.tex
    latexmk -xelatex -interaction=nonstopmode -auxdir=aux -output-directory=out main.tex >/dev/null
end

继续利用 Linux 下的工具链,我们可以将生成的 PDF 转为 SVG,再自动复制到剪贴板:

fish -c compile_tex_with_clipboard \
    && pdftocairo -svg ~/Documents/latex/out/main.pdf ~/Documents/latex/main.svg \
    && wl-copy --type "text/uri-list" "file:///home/user/Documents/latex/main.svg" \
    && notify-send "Copied"

设置一个快捷键 Super+H 然后就可以: