2

A previous answer shows how to remove the title for presumably all citations in a document. Unfortunately \clearfield{title} does not work for the titles of translated articles. \DeclareFieldFormat{title}{} does work, however, but for reasons specified in the previous answer it is not an ideal solution due to extra punctuation.

Here is a minimum working example. Note that the Russian title is kept but the English translation's title is not.

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{skrebkov_turbulentnyye_1963,
  title = {Turbulentnyye pul'satsii v zhidkoy struye i yeye raspylivaniye},
  issn = {0869-5032},
  url = {http://www.sibran.ru/journals/issue.php?ID=160175&ARTICLE_ID=160248},
  number = {3},
  journaltitle = {Prikladnaya mekhanika i tekhnicheskaya fizika},
  author = {Skrebkov, G. P.},
  date = {1963-05},
  pages = {79--83}
}

@article{skrebkov_turbulent_1966,
  title = {Turbulent {{Pulsations}} in a {{Liquid Jet}}, and {{Its Atomization}}},
  url = {http://www.dtic.mil/docs/citations/AD0635269},
  number = {3},
  journaltitle = {Journal of Applied Mechanics and Technical Physics (Foreign Technology Division)},
  author = {Skrebkov, G. P.},
  date = {1966-02-16},
  pages = {142--151},
  related = {skrebkov_turbulentnyye_1963},
  relatedtype = {translationof}
}
\end{filecontents}

\usepackage[style=numeric,backend=biber]{biblatex}
\addbibresource{\jobname.bib}
\AtEveryBibitem{\clearfield{title}}
\renewbibmacro{in:}{}

\begin{document}
\nocite{skrebkov_turbulent_1966}

\printbibliography

\end{document}

minimum working example

Additionally, if anyone knows how to remove the extraneous period in "Trans. of.", I'd be appreciative.

  • 1
    I don't see the incorrect full stop with biblatex 3.10. What version are you using? – moewe Jan 14 '18 at 21:22
  • 2.7 on this computer. I tried my laptop, which had a more recent version and the incorrect period was absent. Thanks for the reminder to update. – Ben Trettel Jan 14 '18 at 22:10

1 Answers1

2

You can use

\DeclareFieldInputHandler{title}{\def\NewValue{}}

or

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldset=title, null]
    }
  }
}

to get rid of the title field more effectively.

The first causes biblatex to never read the title from the .bbl, while the second causes Biber to discard the title when reading the .bib file, so that it does not even appear in the .bbl.

\AtEveryBibitem{\clearfield{title}} on the other hand, creates a hook that is executed whenever a bibliography item is printed. It then temporarily deletes the title. The title of the translation is not deleted since it belongs to a different entry. But the hook is not executed again when the related entry is processed.

The source mapping approach can also be restricted to certain types only

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \pertype{article}
      \step[fieldset=title, null]
    }
  }
}

It is also possible to restrict \DeclareFieldnputHandler by type, but that needs a slight change of some internal macros at the moment

\makeatletter
\protected\def\blx@bbl@entry#1#2#3{%
  \begingroup
  \edef\abx@field@entrykey{\detokenize{#1}}%
  \blx@setoptions@type{#2}%
  \blx@bbl@options{#3}%
  \blx@setoptions@entry
  \edef\blx@bbl@data{blx@data@\the\c@refsection @\blx@dlist@name @\abx@field@entrykey}%
  \blx@bbl@addfield{entrykey}{\abx@field@entrykey}%
  \listxadd\blx@entries{\abx@field@entrykey}%
  \blx@bbl@addfield{entrytype}{#2}%
  \csuse\blx@bbl@data
  \blx@imc@iffieldundef{options}
    {}
    {\blx@bbl@fieldedef{options}{\expandonce\abx@field@options}}}

\DeclareFieldInputHandler{title}{\ifentrytype{article}{\def\NewValue{}}{}}
\makeatother

If the change is entirely unproblematic I might submit a pull request to get this into the biblatex core.

moewe
  • 175,683
  • Thanks, this works. One problem I forgot to specify in the question, however. Is it possible to make this apply only to articles, conference proceedings, and chapters? I want to keep the titles for books and reports. I tried \DeclareFieldInputHandler{title}{\ifentrytype{article}{\def\NewValue{}}{}} but this does not seem to work. I do not have a clear understanding of what is occurring under the hood, unfortunately. – Ben Trettel Jan 14 '18 at 22:03
  • Works perfectly now. Many thanks. I learned a few things from this. – Ben Trettel Jan 14 '18 at 22:13