准备更新手册的方法

准备更新手册的方法

我正在为我的学生编写一本手册,并使用社区发布的许多博客作为资源。我知道网站链接过时的速度有多快。每个学期我都想确保文档中的链接是最新的并且有效。有没有办法在 latex 中检查链接是否至少没有返回错误(如 404)。或者我必须编写一个独立的脚本来验证这一点?谢谢!

答案1

在 LuaLaTeX 中,你可以直接检查链接,例如

\documentclass{article}
\usepackage{luacode}
\usepackage{hyperref}

\begin{luacode}
http = require("socket.http")

function check(url)
    local _, c = http.request(url)
    if c ~= 200 then
        tex.sprint(" (INVALID)") -- print to document
        texio.write("Warning: " .. url .. " invalid") -- print to TeX log
    end
end

\end{luacode}
\newcommand{\checkedlink}[1]{\url{#1}\directlua{check("#1")}}

\begin{document}

\checkedlink{https://google.com/}

\checkedlink{https://iujwhfelfwiejowi.com/}

\end{document}

该命令\checkedlink使用宏打印链接\url并调用 Lua 函数check()。此函数尝试使用 HTTP 请求访问给定的 URL。如果返回代码不是 200,它会附加(无效的)到文档中的链接并将警告写入日志。

相关内容