如何使用 biblatex 把在线资源的 url 文本变成指定文本?

发布于 2026-01-06 19:35:53

MWEB如下,希望得到的效果是:将参考文献列表中的 url 的字符串文本变成“点此访问”,并且仍可以点击跳转。

% !TeX TXS-program:bibliography = biber
\documentclass{ctexart}
\begin{filecontents*}[overwrite]{ref.bib}
@Online{ctex2022,
    %    eprint       = {点此访问:},
    %    eprinttype   = {github},
    title        = {CTEX 宏集手册},
    author       = {CTEX.ORG},
    date         = {2022-07-14},
    url          = {https://github.com/CTeX-org/ctex-kit}
}
@Online{xecjk2022,
    %    eprint       = {点此访问:},
    %    eprinttype   = {CTAN},
    title        = {xeCJK 宏包},
    author       = {CTEX.ORG},
    date         = {2022-08-06},
    url          = {https://ctan.org/pkg/xecjk}
}
@Comment{jabref-meta: databaseType:biblatex;}
\end{filecontents*}

%% ↓参考文献管理↓  %%
\usepackage[style=numeric,backend=biber]{biblatex}
\addbibresource[location=local]{ref.bib}
%\DeclareFieldFormat{eprint:ctan}{eprint}
%\DeclareFieldFormat{eprint:github}{eprint}
\begin{document}
    
    \title{\LaTeX 公园}
    \author{佚\quad 名}
    \date{\zhtoday}
    \maketitle
    
    \begin{abstract}
        本手册准备介绍一些适合小说创作者的LaTeX宏包,例如\cite{ctex2022}。 
    \end{abstract}
    
    \nocite{*}
    \printbibliography[title=参考文献,heading=bibintoc]
    
\end{document}

image.png

查看更多

关注者
0
被浏览
119
1 个回答
M
M 20小时前
这家伙很懒,什么也没写!

1.如果对所有url都统一显示“点此访问”:

\usepackage[hidelinks]{hyperref}
\DeclareFieldFormat{url}{\href{#1}{[点此访问]}}

2.如果对不同的条目有客户化需求,可以利用现有的暂时没用上的字段来存储需要显示的内容,比如titleaddon

@Online{ctex2022,
    %    eprint       = {点此访问:},
    %    eprinttype   = {github},
    title        = {CTEX 宏集手册},
    author       = {CTEX.ORG},
    date         = {2022-07-14},
    url          = {https://github.com/CTeX-org/ctex-kit},
    titleaddon = {abc}
}
@Online{xecjk2022,
    %    eprint       = {点此访问:},
    %    eprinttype   = {CTAN},
    title        = {xeCJK 宏包},
    author       = {CTEX.ORG},
    date         = {2022-08-06},
    url          = {https://ctan.org/pkg/xecjk},
    titleaddon = {xyz}
}
\DeclareFieldFormat{url}{%
  \iffieldundef{titleaddon}
    {\href{#1}{[点此访问]}} % 如果 titleaddon 为空,显示默认文字
    {\href{#1}{[\strfield{titleaddon}]}} % 如果不为空,显示 titleaddon 的内容
}
\DeclareFieldFormat{titleaddon}{}

局部截取_20260107_112501.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览