.bib 文件对 bibtex 有什么作用,对 \href 有什么作用?

.bib 文件对 bibtex 有什么作用,对 \href 有什么作用?

我甚至不确定如何提出这个问题,也不确定合适的标签,所以如果这是一个愚蠢的问题,可能会有一些编辑甚至删除......但我认为这是人们想要的功能......


我经常发现自己写的是信息丰富的文档(我希望如此),但需要\href{addr}{name}提供更多内容。我知道我可以做一次,但读者必须在许多页面中寻找单词才能“到达那里”。

如果我可以依赖它们的列表(例如在 .bib 文件中),那么新的定义就可以提供相同的功能,那就太好了。

愚蠢的例子......而不是这样;

I like the search engine \href{https://duckduckgo.com}{duckduckgo} because \href{https://duckduckgo.com}{duckduckgo} provides me with privacy I don't really understand.

像这样的事情;

I like the search engine \hrefcite{DDGo} because \hrefcite{DDGo} provides me with privacy I don't really understand.

(where there are a list of these items, e.g. `\newcommand{\DDGo}[1]{\href{https://duckduckgo.com}{DuckDuckGo}}`)

也许已经有类似的东西了...我以前用过glossary但我也不知道它有什么帮助。


目前,在我的主文件的序言/home/me/somewhere/hrefListForInput.tex下,有什么样的外部文件,例如。在\inputmain.tex\input{/home/me/somewhere/hrefListForInput}hrefListForInput.tex

\newcommand{\DDGo}[0]{ \href{https://duckduckgo.com}{DuckDuckGo } }%
\newcommand{\foam}[0]{\href{https://sourceforge.net/projects/foam-extend/}{OpenFOAM }}

我在 中main.tex使用这些定义,例如,

I like using \foam in \DDGo.

出现“某种”问题是因为如果我不在 的第二个参数的最后一个字母后添加空格\href,它就会转到下一个单词。如果我添加空格(如我所写),则一切正常,除了句子末尾的最后一个单词和句号前有一个奇怪的空格。

之前我遇到了一个错误,需要将文件扩展名附加.texhrefListForInput.tex

我正在使用 LuaLatex/Linux/TeXLive,一个article文档类,因此可以使用\directlua或类似的东西,但更通用的方法会更好。

答案1

你可以使用biblatex。最简单的方法可能是定义你自己的 cite 命令

\documentclass{article}
\usepackage{biblatex}
\usepackage{hyperref}

\DeclareCiteCommand{\hrefcite}{\usebibmacro{prenote}}{%
    \usebibmacro{citeindex}%
    \href{\thefield{url}}{\printfield{label}}%
}{\multicitedelim}{\usebibmacro{postnote}}

\begin{filecontents}{\jobname.bib}
@online{foam,
  url          = {https://sourceforge.net/projects/foam-extend/},
  label        = {OpenFOAM},
}
@online{DDGo,
  url          = {https://duckduckgo.com},
  label        = {DuckDuckGo},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
  I like using \hrefcite{foam} in \hrefcite{DDGo}.
\end{document}

答案2

你可以将你的 url 添加到 bib 文件中,然后使用 biblatex。如果需要,你可以定义更多引用命令(我曾经制作过一个命令,其中还插入了此类 url 的二维码)。

\documentclass{article}
\usepackage{biblatex}

\addbibresource{biblatex-examples.bib}

\begin{document}
\citeurl{ctan} 

\end{document}

在此处输入图片描述

答案3

您可以使用词汇表来存储和打印您的链接:

\documentclass{article}

\begin{filecontents}{allLinks.tex}
\newglossaryentry{LINK1}{
    name={\href{https://www.overleaf.com/}{Linky link}},
    description = {\url{https://www.overleaf.com/}}
}

\newglossaryentry{LINK2}{
    name={\href{https://www.sharelatex.com/}{Link linky}},
    description = {\url{https://www.sharelatex.com}}
}
\end{filecontents}




\usepackage{hyperref}
\usepackage{glossaries}
\input{allLinks.tex}

\makeglossaries


\begin{document}
\section{One}
Texidy texti text \gls{LINK1} text text
\section{Two}
and also \gls{LINK2}

\printglossaries

\end{document}

此示例是一个带有两个链接的文件,您可以使用词汇表包中可用的所有样式来更改列表的打印方式。

使用此 MWE,链接将显示为纯文本。如果您希望将它们格式化为链接,请查看https://tex.stackexchange.com/a/392724/90297

相关内容