文件和 URL 的 LaTeX 内部引用

文件和 URL 的 LaTeX 内部引用

我有一个文档,其中包含近 100 个开源文件,这些文件在整个过程中被反复引用。此外,每个文件都有一个 URL、下载 URL、MD5 哈希值等。

有没有一种快速简便的方法来创建包含所有这些信息的外部文件(例如 .ent),然后引用可发布文件(或 .tex)中的每个项目?这样,每当更新文件时,我只需更改静态文件中的单个条目,整个文档中对该文件的所有引用也会更新?

提前致谢。

答案1

即使你可能biblatex只知道它是一种创建书目的工具,但它是一个功能强大的工具,可以用于很多事情:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{database.ent}

\usepackage{filecontents}

\begin{filecontents*}{database.ent}
    @file{test,
        usera = {www.URL.com},
        userb = {www.downloadURL.com},
        userc = "md5123456"
    }
\end{filecontents*}

\DeclareCiteCommand{\citeurl}
{}
{\printfield{usera}}
{}
{}

\DeclareCiteCommand{\citedownload}
{}
{\printfield{userb}}
{}
{}

\DeclareCiteCommand{\citemd}
{}
{\printfield{userc}}
{}
{}

\begin{document}

\citeurl{test}

\citedownload{test}

\citemd{test}

\end{document}

在此处输入图片描述


如果您不想记住usera应该是哪个字段,您可以创建自己的字段:

\documentclass{article}
\usepackage{biblatex}
\addbibresource{database.ent}

\usepackage{filecontents}

\begin{filecontents*}{database.ent}
    @file{test,
        md = "md5123456"
    }
\end{filecontents*}

\begin{filecontents*}{test.dbx}
    \DeclareDatamodelFields[type=field,datatype=verbatim]{md}
    \DeclareDatamodelEntryfields{md}
\end{filecontents*}

\DeclareCiteCommand{\citemd}
{}
{\printfield{md}}
{}
{}

\begin{document}

\citemd{test}

\end{document} 

[这里重要的是,内容\DeclareDatamodel不能放在你当前的 tex 文件中,而必须放在外部文件中,test.dbx在此示例中]

相关内容