Open dustalov opened 3 years ago
Thank you for reporting that issue. It seems that the code used to detect whether small caps are available in the current font
does not work correctly in all circumstances.
In particular the csname \f@encoding/\f@family/\f@series/sc
ends up defined after a \textsc
call even if the font doesn't have any small caps.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tinos}
\usepackage{etoolbox}
\begin{document}
\makeatletter
\csmeaning{\f@encoding/\f@family/\f@series/sc}
\textsc{url}
\csmeaning{\f@encoding/\f@family/\f@series/sc}
\end{document}
I'm not sure if this is a recent change in LaTeX or something that has been with us for a while. I couldn't find a reliable way to check if small caps are available just now.
Thank you for a quick response! As I workaround I overrode the \mkbibacro
macros as \renewcommand*{\mkbibacro}[1]{#1}
.
This issue seems to be with us for a while. I observed this behavior for the first time in October 2018 or maybe even earlier. Since it is quite unlikely \textsc
to be used before biblatex
is imported, is it possible to test this in advance?
Since it is quite unlikely
\textsc
to be used beforebiblatex
is imported, is it possible to test this in advance?
Yes, we could do that, but if we test any time before we actually want to print our small caps we can never be sure if we are testing the right font. (Suppose you were to use tinos
only for your bibliography and the rest of the document uses lmodern
. If we test at any point where lmodern
is selected as the current font we find out that there are small caps, yet when we need to use them tinos
is selected which doesn't have them.)
Via https://tex.stackexchange.com/q/540612/35864 I found https://tex.stackexchange.com/q/218539/35864 which shows a way to test if font features exist without substitutions getting in the way. Unfortunately, this requires patches to LaTeX kernel commands, which is always a bit tricky.
I noticed that formatting of
\printbibliography
changes depending of the position of\textsc
before or after it. This happens when a font with no small-caps is used, e.g.,tinos
,paratype
, etc.In this example
url
field is rendered as "URL:" and the text is rendered as "url".If we put
\textsc
before\printbibliography
, formatting becomes different:url
field is rendered asurl:
, just like the text.I expected formatting to be consistent regardless of the
\textsc
position. Is there a way to enforce the former behavior everywhere?I am using the latest BibLaTeX 3.16 (r57272) from TeX Live 2020.