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}

domi
  • 1,473
  • I was wondering: can I use EB Garamond or Adobe Garamond Pro as small caps instead of Italian Garamond? – domi Jul 07 '21 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. – barbara beeton Jul 09 '21 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 09 '21 at 20:59
  • 2
    I'd try entering this as \fancyhead[CO]{\small\MakeUppercase{\leftmark}}. – barbara beeton Jul 09 '21 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 '21 at 05:52

1 Answers1

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.

jarnosc
  • 4,266
  • 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 '21 at 08: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 '21 at 08: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. – jarnosc Jul 24 '21 at 05:48
  • I fear you have just wasted your valuable points: no award was possible. – jarnosc Jul 24 '21 at 05: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 02 '23 at 20:49