Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

In my main text I use a roman font with oldstyle figures

In all tables I use the same roman font, but with modern figures. Since some of the columns may consist of mainly figures and it looks abit clumsy when those figures are set in oldstyle. Since all my tables are within a floatrow object, I define the font as follows:

\usepackage{floatrow}
\usepackage{fontspec}
\newfontfamily\tablefont[Path=x]{fontname.otf} 
\DeclareFloatFont{tables}{\tablefont}
\floatsetup[table]{font={tables}}

I use biblatex for my reference, as citation marks I use numbers.

Now I found out that the citation marks are formatted according to the font of their direct environment. So In my maintext these citation numbers are modern, while in the tables they are oldstyle. But how can I change the formatting for the citation numbers, so they are consistent in the whole document. I would like to use custom font families for this. Aswell I would like to change the formatting of the Bibliography (\printbibliography) in the same way.

Or is this directly related to the the floatfont declaration, and would these always override my citation format declaration?

Been reading the biblatex manual, and I read something about \bibfont but don't know how I should be using this.

share|improve this question
2  
You could switch the font for citations using \AtEveryCite, but without a minimal working example it is too much work for me to test this case (as I don’t know anything about \DeclareFloatFont). –  domwass Dec 12 '10 at 12:47

2 Answers 2

up vote 6 down vote accepted

The \bibfont hook is used to set the font for the bibliography. It is an ordinary LaTeX macro (not a BibLaTeX bibmacro), so you need to renew it with \renewcommand, as for example:

\renewcommand*{\bibfont}{\small}

The hook for all citations is \citesetup, which is defined in biblatex.def. You can modify it using the LaTeX \renewcommand* command. By default \citesetup is set to:

\newcommand*{\citesetup}{%
  \biburlsetup
  \frenchspacing}

You would want to put something like \rmfamily or \normalfont or whatever in your renewed version:

\renewcommand*{\citesetup}{%
  \normalfont
  \biburlsetup
  \frenchspacing}

You could be inventive and define a separate command \citefont and put that into \citesetup, thus creating a parallel to \bibfont. If you want to have this in all of your documents then you can put it into the biblatex.cfg file.

I am unaware of any hook run at the end of a citation, so you may not be able to easily tack things on the end without hacking the citation commands.

share|improve this answer
    
How can you apply it to ONLY the citation number in the brackets, not the entire citation (in the case of textural citation) –  Nicholas Hamilton Aug 26 '13 at 3:40

Instead of redefining \citesetup, you may also use the \appto macro (provided by the etoolbox package which is loaded by biblatex) to append code to \citesetup without having to look up its current definition.

\appto{\citesetup}{\normalfont}
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.