
Я долго рылся в интернете, но так и не смог найти ответ.
Вот как выглядит моя библиография сейчас. Как вы видите, она отображает «В:», даже когда эта информация не указана.
Итак, как мне удалить «In:»?
Это мой заголовок LaTeX: (Понятия не имею, какое из всего этого имеет значение.)
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{grffile}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{textcomp}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage[backend=biber, natbib=true, style=authoryear-icomp]{biblatex}
\addbibresource{~/res/library.bib} %% point at your bib file
решение1
Это можно сделать, переопределив in:
bibmacro так, чтобы он ничего не выводил, если поле отсутствует journaltitle
:
\renewbibmacro*{in:}{%
\iffieldundef{journaltitle}
{}
{\printtext{\bibstring{in}\intitlepunct}}}
Но подумайте, не лучше ли использовать другой тип записи (например, @online
) или включить в запись правильные поля.
МВЭ
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Author2019,
author = {Author, An},
title = {Some Title},
date = {2019},
url = {http://www.example.com/a}
}
@online{Author2018,
author = {Author, Another},
title = {Some Other Title},
date = {2018},
url = {http://www.example.com/b}
}
\end{filecontents}
\usepackage[style=authoryear-icomp]{biblatex}
\addbibresource{\jobname.bib}
\renewbibmacro*{in:}{%
\iffieldundef{journaltitle}
{}
{\printtext{\bibstring{in}\intitlepunct}}}
\begin{document}
\nocite{*}
\printbibliography
\end{document}