Как исправить шрифт URL и DOI? Скажем, сделать его меньше

Как исправить шрифт URL и DOI? Скажем, сделать его меньше

Я использую 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, а не в преамбуле.

Связанный контент