
Я пытаюсь печатать все названия журналов в своей библиографии с заглавной буквы, сохраняя при этом остальную часть записи.
Я обнаружил, что это работает для принудительного приведения заголовков статей к заглавным буквам:Предложения в заголовке в библатексе
и мне было интересно, возможно ли что-то подобное для заглавных букв и названий журналов. Я использую biblatex
.
Репрекс:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{pdflscape}
\usepackage[T1]{fontenc}
\usepackage[
backend=biber,
style=authoryear,
date=year,
]{biblatex}
% Removes language from entries
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldset=language, null]
}
}
}
% Chapter title formatting and spacing
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\bfseries\Huge}
{\filright}
{1ex}{}[]
\begin{filecontents}[force]{\jobname.bib}
@article{ref1,
author = {Doe, J. and Dane, D. and Dewy, R.},
year = {2000},
title = {This and That},
journal = {Journal of Deep Understanding of Things},
}
@article{ref2,
author = {Doe, J. and Dewy, D. and Dane, R.},
year = {2000},
title = {The Other},
journal = {Journal of deep understanding of things},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text and a ref \autocite{ref1}.
Then another ref with same first author and year \autocite{ref2}
\printbibliography
\end{document}
Таким образом, в этом примере название журнала ref1
останется прежним, хотя и ref2
будет иметь заглавные буквы.
решение1
biblatex
имеет только функцию преобразования текста в предложение. Он не предлагает функцию преобразования заголовков в Title Case. (То же самое для классического BibTeX.) См. такжеРеализация «Заглавных букв» в Bibtex.
Это означает, что заголовки в файле должны быть указаны с заглавной буквы .bib
и могут быть преобразованы в заглавные буквы, если этого требует стиль библиографии. (Необходимо проявлять осторожность со словами, которые не должны быть написаны строчными буквами даже в предложениях, такими как имена или аббревиатуры. См.BibTeX теряет заглавные буквы при создании файла .bbl) ВидетьКакой регистр следует использовать при сохранении названий в библиографической базе данных?для более подробного обсуждения.
Поэтому лучшим решением будет исправить ваш .bib
файл, чтобы он имел
journal = {Journal of Deep Understanding of Things},
повсюду.
Если у вас есть только несколько названий журналов, на которые вы ссылаетесь, это можно сделать с помощью sourcemap.
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=journal, fieldtarget=journaltitle]
\step[fieldsource=journaltitle,
matchi={Journal of Deep Understanding of Things},
replace={Journal of Deep Understanding of Things}]
}
}
}
но, конечно, это быстро выходит из-под контроля, если вам приходится иметь дело с большим количеством журналов.