
Я использую Biblatex для обработки полных цитат в сносках и библиографии. С записями @online Bibtex/Biblatex я понимаю, что поля DOI и URL в цитате должны быть набраны каким-то специальным шрифтом, часто пишущей машинкой, чтобы различать «i» и «l», например. Однако, поскольку шрифт отличается и немного больше остального, он кажется мне жирным, и я не хочу, чтобы URL был первым, что вы замечаете на странице статьи. Как сделать шрифт меньше?
Я нашел некоторые кусочкиздесьийэрекоторые предлагают другое решение ( \urlstyle{rm}
или \urlstyle{same}
), но, похоже, для этого требуется url
отдельная загрузка пакета — я просто использую Biblatex.
Обновлять: спасибо за комментарий и ответ. Я забыл упомянуть, что использую специальный формат, вместо URL мне нужно "en ligne <>". Смотрите MWE ниже и поправьте меня, если я делаю это неправильно. В обеих ситуациях ( \urlstyle{same}
или \UrlFont
) я все равно получаю префикс "en ligne", напечатанный жирным шрифтом URL. Или, может быть, это еще один тип шрифта. Как исправить все это сразу? Я \UrlFont
больше ценю этот метод, потому что он позволяет мне менять шрифт и размер одновременно. Также лучше всего сохранить моноширинный шрифт для URL и DOI, жаль, что они выглядят жирными, даже когда их делают меньше. Поэтому \small\rm
вместо \small\tt
в следующем MWE.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman,frenchb]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-trad1,backend=bibtex8]{biblatex}
\DeclareFieldFormat{url}{\addcolon\space\bibstring{en ligne <}\url{#1}\bibstring{>}}
\renewcommand{\UrlFont}{\small\rm}
\addbibresource{biblatex-examples.bib}
\begin{document}
\null\vfill\noindent
\cite{markey}
\cite{kastenholz}
\printbibliography
\end{document}
Обновление 2: Теперь вишенка на торте (на оба вопроса выше были даны ответы): возможно ли сделать шрифт URL и DOIболее легкий, с некоторой высотойобманыватьили цветовой трюк (серый или светло-серый)? Мне очень нравится стиль лео, особенно когда смотришь на результат печати настраница-- У меня этого нет.более легкийэффекта вообще, когда я пробую. Я могу сделать еще один пост об этом, если хотите.
решение1
Я решил, что мои длинные комментарии к вашему обновленному вопросу не так уж хороши, поэтому вот подробное объяснение.
Ваше переопределение url
формата поля содержит два источника ошибок для biblatex
.
\DeclareFieldFormat{url}{\addcolon\space\bibstring{en ligne <}\url{#1}\bibstring{>}}
Во-первых, он начинается с команды добавить двоеточие и пробел.допечать любого текста, к счастью, biblatex
игнорирует это (в вашем MWE нет лишнего двоеточия перед "en ligne"), но нам в любом случае следует от него избавиться.
Во-вторых, и что более важно, en ligne <
на самом деле это не bibstring
. bibstrings
есть определенные ключи локализации, которые меняются в зависимости от языка, поэтому \bibstring{editor}
печатает "editor" в английском, "Herausgeber" в немецком и (по-видимому) "editeur" во французском документе. Для того, чтобы это работало, biblatex
необходимо знать эти bibstrings и, en ligne <
конечно, не является одним из них (ни один из них не является, >
если на то пошло; список стандартных bibstrings
можно найти вbiblatex
документация§4.9.2Ключи локализации). Неизвестные bibstrings вызовут предупреждение ( Bibliography string 'en ligne <' undefined
), а их «ключ» будет напечатан жирным шрифтом, чтобы четко уведомить вас в документе о том, что что-то пошло не так.
Для печати подробного текста вместо biblatex
используется , но на самом деле в нем нет необходимости, поэтому в этом случае\printtext{foo}
\bibstring{foo}
\DeclareFieldFormat
\printtext
\DeclareFieldFormat{url}{en ligne <\url{#1}>}
можете делать то, что хотите.
Но для этого можно воспользоваться biblatex
утилитами локализации.
\DefineBibliographyStrings{french}{
url = {en ligne}
}
Проверит, bibstring
url
содержит ли французский документ слово «en ligne», поэтому \bibstring{url}
напечатает «en ligne» на французском языке, а «address» на английском языке.
Мы также можем определить макрос, \mkbiblege
аналогичный для \mkbibparens
переноса текста в <
и >
.
\makeatletter
\newrobustcmd{\mkbiblege}[1]{%
\begingroup
\blx@blxinit
\blx@setsfcodes
<#1>
\endgroup}
\makeatother
Итак, мы можем определить
\DeclareFieldFormat{url}{\bibstring{url}\space\mkbiblege{\url{#1}}}
Наконец, наш MWE
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,ngerman,frenchb]{babel}
\usepackage{csquotes}
\usepackage[style=verbose-trad1,backend=bibtex8]{biblatex}
\renewcommand{\UrlFont}{\small\rm}
\DefineBibliographyStrings{french}{
url = {en ligne},
}
\DefineBibliographyStrings{german}{
url = {online},
}
\makeatletter
\newrobustcmd{\mkbiblege}[1]{%
\begingroup
\blx@blxinit
\blx@setsfcodes
<#1>
\endgroup}
\makeatother
\DeclareFieldFormat{url}{\bibstring{url}\space\mkbiblege{\url{#1}}}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{markey}
\printbibliography
\end{document}
дает
решение2
Вы можете включить \UrlFont
команду изменения размера:
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand{\UrlFont}{\small\ttfamily}
\begin{document}
\cite{ctan,markey,kastenholz}
\printbibliography
\end{document}
Если вы хотите, чтобы это повлияло только на библиографию, то поместите команду \renewcommand{\UrlFont}{\small\ttfamily}
непосредственно перед ней \printbibliography
, а не в преамбуле.