2

I use Italian Garamond to write a document and I'd like to use small caps. The problem is that there is no Italian Garamond small caps to buy. Therefore, how could I get to have at least capital letters on my left and right headers? This is my MWE:

\documentclass[hidelinks,12pt,twoside,openright,a4paper]{book}
    \usepackage[french]{babel}
    \usepackage{fontspec}
    \setmainfont[
  SmallCapsFont={ItalianGarmnd BT},
  SmallCapsFeatures={Letters=SmallCaps},
]{ItalianGarmnd BT}
    \usepackage{lipsum}
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \renewcommand{\chaptermark}[1]{\markboth{#1}{}}
    \renewcommand{\headrulewidth}{0pt}
    \fancyhf{} % sets both header and footer to nothing
    \fancyfoot{}
    \fancyhead[LE,RO]{\thepage}
    \fancyhead[CE]{\textsc{A book}} % even pages: chapter title
    \fancyhead[CO]{\textsc\leftmark} % odd pages: book title
    
    \begin{document}
    
    \chapter{A title}
    \lipsum
    \lipsum
    
    \end{document}
5
  • I was wondering: can I use EB Garamond or Adobe Garamond Pro as small caps instead of Italian Garamond?
    – domi
    Jul 7, 2021 at 22:39
  • 1
    You might try \MakeUppercase and a smaller size, say \small or \footnotesize for the text in the headers if small caps aren't available. Warning -- \MakeUppercase acts on math as well as text, so if math might appear in the headers, something more restrictive is needed. This approach is used in amsbook. Jul 9, 2021 at 20:23
  • Thanks. I'd prefer use Adobe Garamond Pro instead. Is it and how possible? Whatever, how do you insert \small in this line: \fancyhead[CO]{\MakeUppercase\leftmark}?
    – domi
    Jul 9, 2021 at 20:59
  • 2
    I'd try entering this as \fancyhead[CO]{\small\MakeUppercase{\leftmark}}. Jul 9, 2021 at 21:10
  • 1
    I and some other people wrote fake small caps code here. You can also substitute a different small caps font with SmallCapsFont=.
    – Davislor
    Jul 11, 2021 at 5:52

1 Answer 1

0

The right way, afaik, is by stating it in the \setmainfont command.

\setmainfont[
 SmallCapsFont={EB Garamond},
 SmallCapsFeatures={Letters=SmallCaps},
 ]{ItalianGarmnd BT}

I post the following code as an answer, for it does not fit as a comment.

You may define a \lsc command to "fake" lowercase smallcaps, as with an older spanish.ldf.

\makeatletter
\def\lsc{\protect\local@lsc}
\def\local@lsc#1{%
  \leavevmode
  \hbox{\scshape\selectfont
    \expandafter\ifx\csname\f@encoding/\f@family/\f@series
       /n/\f@size\expandafter\endcsname
     \csname\curr@fontshape/\f@size\endcsname
     \csname S@\f@size\endcsname
     \fontsize\sf@size\z@\selectfont
       \message{Replacing undefined sc font\MessageBreak
                             shape by faked small caps}%
     \MakeUppercase{#1}%
   \else
     {#1}%
   \fi}}
\makeatother
\fancyhead[CE]{\lsc{A book}} % even pages: chapter title
\fancyhead[CO]{\lsc\leftmark} % odd pages: book title

So, if you change your mind and use a font with true smallcaps, the command will become non-operating.

I insist that this trick comes from an older version of spanish.ldf; I don't use the standard Spanish option anymore, but a homebrewed one, so I don't know if this command is still operative in newer versions.

5
  • Thanks for your suggestions. Finally, as I don't want to use fake small caps, I'd like to give SmallCapsFont={EB Garamond} a try, but using Adobe Garamond Pro... but it doesn't work for me. Why?
    – domi
    Jul 11, 2021 at 8:39
  • What do I have to do? The answer jarnosz made does not work for me and does not fit my needs and the answer barbara beeton wrote, even if it's not what I was waiting for, is very close to what I'm looking for. Who must I give the bounty?
    – domi
    Jul 17, 2021 at 8:31
  • you don't provide enough information about the errors reported by your engine—in fact, I don't know even what is your engine; and without engine information (LuaTeX and XeTeX behave differently) or access to this commercial font, we are pretty much in the dark.
    – jarnosz
    Jul 24, 2021 at 5:48
  • I fear you have just wasted your valuable points: no award was possible.
    – jarnosz
    Jul 24, 2021 at 5:50
  • One other thing: If you are either faking small caps, or using a different font for them: There may be a difference in weight between the header and main text. Sometimes (not always) this can be improved by adding the FakeStretch feature to the substituted small caps. Only a small amount! That may improve the weight of vertical stems. It will not improve horizontal stems or serifs, but usually those are thinner, and likely to escape notice.
    – rallg
    Apr 2 at 20:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .