
При использовании класса scrbook
и настройке размера шрифта перед использованием \printbibliography
я получил следующие предупреждения (а в больших документах я получал их несколько раз):
Класс scrbook Предупреждение: используется резервное вычисление для настройки размеров шрифта (scrbook) для базового размера «12pt» в строке ввода 32.
МВЭ:
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[backend = biber]{biblatex}
\renewcommand*{\bibfont}{\normalfont\changefontsizes{12pt}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@online{GLS:datasheet,
title = "GLS Datasheet",
organization = "Optoelectronics Research Centre",
howpublished = "Website",
date = "2004-09",
urldate = "2013-07-01",
url = "http://www.southampton.XXXX",
address = "Southampton, United Kingdom"
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\KOMAoptions{fontsize=12pt}
\nocite{*}
\printbibliography
\end{document}
Стоит ли ожидать неожиданных результатов? И если это так, что я могу сделать против этого? Иначе как я мог бы заглушить эти предупреждения?
решение1
Это сообщение говорит о том, что у KOMA-Script возникла проблема с указанным вами размером шрифта (см. ответ @cgnieder о механизме, который использует KOMA-Script).
Почему вы не используете только \documentclass[fontsize=12pt]{scrbook}
? Тогда вы можете удалить \KOMAoptions{fontsize=12pt}
и \renewcommand*{\bibfont}{\normalfont\changefontsizes{12pt}}
.
Например, команды низкого уровня для изменения размера шрифта:
\fontsize{12pt}{14.5pt}\selectfont
или (в зависимости от вашего шрифта и стандартного размера шрифта!) вы можете использовать\large
размер шрифта 12 птесли у вас стандартный шрифт размером 11 пт.
Вы можете приложить титульный лист, оглавление и библиографию, например,
{\fontsize{12pt}{14.5pt}\selectfont ...}
для изменения стандартного размера шрифта только для части ...
.
Но это всего лишь хак. Я бы следил за этим удивительным правилом и везде использовал 11 пт...
решение2
Вот небольшая предыстория относительно fontsize
варианта KOMA.
Ниже приведена цитата из раздела 3.5 (Выбор размера шрифта документа) документации KOMA-Script.scrguien, выделено мной:
fontsize=size
В отличие от стандартных классов и большинства других классов, которые предоставляют только очень ограниченное количество размеров шрифтов, классы KOMA-Script предлагают возможность выбора любого желаемого
size
шрифта для основного документа. В этом контексте может использоваться любая известная единица измерения TeX, а использование числа без единицы измерения означаетpt
.Если вы используете эту опцию внутри документа, то основной размер шрифта документа и все зависимые размеры изменятся с этого момента. Это может быть полезно, например, если нужно задать еще одну букву, используя в целом более мелкие шрифты.Следует отметить, что изменение размера основного шрифта не приводит к автоматическому пересчету площади шрифта и полей.(см
\recalctypearea
. раздел 2.4, стр. 35).С другой стороны, каждый пересчет площади шрифта и полей будет производиться на основе текущего размера основного шрифта.. Эффекты изменения основного размера шрифта на другие дополнительно загруженные пакеты зависят от этих пакетов. Это может даже привести к сообщениям об ошибках или ошибкам набора текста, что не может считаться ошибкой KOMA-Script.
Что, кажется, не объяснено вscrguienно его можно прочитать в книге KOMA-Script (доступной только на немецком языке,продано Lehmanns media) — это то, что делает KOMA-Script при fontsize
вызове опции:
- Если вы вызываете
fontsize=<xx>
KOMA-Script, то сначала ищет файлscrsize<xx>.clo
. Если он существует, то все настройки размеров шрифтов и списков задаются через этот файл. Кстати: файл не содержит информации о typearea, которая вместо этого контролируется пакетомtypearea
. - Если файл не существует, KOMA-Script ищет файл
scrsize<xx>pt.clo
. Это позволяет пользователю пропустить единицуpt
. - Если подходящий файл пока не найден, KOMA-Script ищет подходящие файлы
size<xx>.clo
илиbk<xx>.clo
. Вот<xx>
размерpt
без единиц. Эти файлы могут быть из стандартных классов илиextsizes
package. Этот шаг пропускается, если размер шрифта задается после загрузки класса, поскольку эти файлы могут быть загружены только при загрузке класса. Если подходящие настройки пока не найдены, KOMA-Script имеет запасное решение, которое означает, что все размеры вычисляются. Как указано в книге KOMA-Script, эти вычисления не могут конкурировать с оптимизированными вручную настройками [такими, как в файлах
clo
], но они похожи на вычисления обычной программы обработки текста:Это понимание может быть естественным с помощью ручных оптимальных установок, которые не требуют дополнительных усилий. Вы понимаете, что больше внимания уделяется нормальной обработке текста.
В этом случае KOMA-Script информирует пользователя о том, что у него не самые лучшие возможные настройки, с помощью описанного вами предупреждения.
Это не указано явно в документации KOMA, а только подразумевается в единственном упоминании макроса: макрос \changefontsizes
вызывается KOMA-Script внутренне, когда используется запасное решение. Это означает, что вы даже не дали KOMA-Script шанса поискать лучшие решения! Правильный способ вызова опции KOMA-Script — с помощью \KOMAoption{<option>}{<value list>}
или \KOMAoptions{<key value list>}
):
\KOMAoption{fontsize}{12pt}
Для вашего MWE лучшим решением, конечно же, будет установить размер шрифта через параметр класса, как уже указано в принятом ответе.
Что касается вашего второго вопроса о глушениях предупреждений и т.п.: взгляните наsilence
упаковка.