28

Here I compare an alternative to Yan's approach. I label his method "fake" as he did and label this approach as "faux". I have found (see Good small caps font to use with arev?, for example) that an unequal scaling of horizontal and vertical dimension is better able to capture the proportions of small caps. For Minion Pro, shown in ...


28

\documentclass{article} \newcommand\textlcsc[1]{\textsc{\MakeLowercase{#1}}} \begin{document} \textlcsc{An ExaMple} \end{document} Another option would be to use \MakeTextLowercase from the textcase package: \usepackage{textcase} \newcommand\textlcsc[1]{\textsc{\MakeTextLowercase{#1}}}


22

The font shape commonly known as “small caps” is actually Capitals and small capitals, meaning that uppercase letters are like the standard capital letters in the normal shape, whereas lowercase letters are small capitals. So you want \textsc{am}, if you want reduced size of the capital letters.


21

If using LuaLaTeX rather than XeLaTeX is an option for you -- fortunately, Lua(La)TeX and polyglossia have started playing nice with each other, beginning a few months ago -- you may achieve your goal as follows. First, define an "OpenType feature file", such as # Scripts and languages # If the font uses others, they should be defined here too ...


17

The tokcycle package (https://www.ctan.org/pkg/tokcycle) can be used for this. \documentclass{article} \usepackage{tokcycle} \newcommand\famword[1]{% \resettokcycle% \Characterdirective{\ifcat A##1\ifnum`##1<`Z\addcytoks{% \textsc{\char\numexpr32+`##1\relax}}\else \addcytoks{##1}\fi\else\addcytoks{##1}\fi}% \tokcyclexpress{#1}% \the\...


15

If you provide the instruction \defaultfontfeatures{SmallCapsFeatures={Renderer=Basic}} then the tracking option of the microtype package seems to work correctly: % !TEX TS-program = lualatex \documentclass{article} \usepackage{fontspec} \defaultfontfeatures{SmallCapsFeatures={Renderer=Basic}} \setmainfont{EB Garamond} \usepackage[tracking=true]{microtype}...


15

The style is called "small caps" and is considered a font shape by LaTeX. Thus, \scshape will turn it on, or a delimited form, \textsc{...} is available. Naturally, you must make sure your font supports this shape. \documentclass{article} \begin{document} \textsc{Definici\'on (Isomorfismo)} Sea $T:U\rightarrow V$ \end{document} p.s. Other font ...


14

Don't use capitals in this case. Quoting Hedrick, Fine Points of Typographic Usage: What do you do if a sentence starts with an acronym, e.g. "RUCS is great." If you're using small caps, I would set RUCS in small caps. Some people are bothered because this seems to violate the rule about capitalizing the first word. To understand my answer, you ...


13

A rather crude way of obtaining bold-like characters from a font that doesn't have it, is to repeatedly overprint a character with slight variations. This is offered by the contour package: \documentclass{article} \usepackage{contour}% http://ctan.org/pkg/contour \setlength{\parindent}{0pt}% Just for this example \begin{document} % Default Hello % Bold \...


12

I found that this can be achieved with NFSS. First, Times and TeX Gyre Termes are loaded separately. Then the definition of small caps of Times in NFSS is overwritten so that it redirects to small caps of TeX Gyre Termes. \documentclass{article} \usepackage{fontspec} \setmainfont{Times} \newfontfamily\tgtermes{TeX Gyre Termes} \makeatletter \begingroup ...


11

You could try using the recently-released newpxtext and newpxmath packages. In the MWE below, issuing the command \useosf after the math-related packages are loaded enables the use of regular- and bold-weight oldstyle numerals in text mode, while lining numerals will be used in math mode. Small caps are available in bold (as well as regular-weight, of course)...


11

Imitation of small caps by reducing the uppercase letters can, in some rare cases, give a result slightly above the atrocious level. With Computer Modern Sans Serif such an attempt is doomed to horrible failure, because the heavy strokes are a distinctive feature of the font and you'd be mixing very different strokes between capitals and small capitals. I ...


11

Optimal Solution Load the tocloft package and put \renewcommand{\cftsecfont}{\scshape} after it in the preamble. MWE: \documentclass[11pt]{article} \usepackage{tocloft} \renewcommand{\cftsecfont}{\scshape} \begin{document} \title{My document} \maketitle \tableofcontents \section{first section} bla \subsection{a subsection} bla \section{second section} ...


11

For Charis SIL, try using Renderer=ICU. From this mailing list post Charis SIL is a hybrid OpenType/Graphite font, in 0.9998 OpenType was chosen but in 0.9999 Graphite is chosen instead (a side effect of using HarfBuzz for both OpenType and Graphite) I’m not yet decided whether to consider this a bug or a feature. Either way, with such hybrid ...


11

In this case, Letters=SmallCaps is irrelevant as Alegreya SC only has small caps. In other cases, when a “normal” font is used, this option will enable the +smcp feature when choosing the font. You have to add suitable declarations also for bold, italic and bold italic. \documentclass{report} \usepackage{fontspec} \setmainfont[ UprightFeatures={...


11

Load the font with the Language=Turkish option: \documentclass[11pt]{memoir} \usepackage{fontspec} \usepackage{polyglossia} \setdefaultlanguage{turkish} \setmainfont{Linux Libertine O}[ Language=Turkish, BoldFont=* Semibold, BoldItalicFont=* Semibold Italic, ] \setlength{\textheight}{2cm} \begin{document} In Turkish, `\textsc{ı}' and `\textsc{i}' ...


11

When using modern fonts in conjunction with LuaLaTeX or XeLaTeX, one is (sometimes) able to delegate this this to the font, since OpenType Layout defines a font feature c2sc that translates capital letters to small cap letters. Unfortunately, Latin Modern does not contain this feature. When available, one can activate this via fontspec feature Letters=...


11

\setmainfont is not a command meant only for xelatex. It is a command from fontspec for both engines. babel has its own command to set fonts (which also can be used with both engines). In your case the optional argument [italian] disables the small caps because of two reasons: At first with the optional argument babel doesn't directly load the font but only ...


10

As an extension of accepted answer https://tex.stackexchange.com/a/27413/1340, I explain here how to use Latin Modern while taking serif bold small capitals from Computer Modern (= CM) Super. As explained in that answer, you'll still need to use \textsc{\textbf{Hello}} instead of \sc\bf Hello. This assumes you're using \usepackage[T1]{fontenc} as typically ...


10

For many years, because I rarely need it, I have used the following hack: \textbf{\normalsize{E}\scriptsize{ITHER} \normalsize{O}\scriptsize{NE} \normalsize{B}\scriptsize{UT} \normalsize{N}\scriptsize{OT} \normalsize{B}\scriptsize{OTH}} which gives But I wish there were a better way.


10

The new titlecaps package can do this. It's so new, in fact, it doesn't show up yet in a CTAN search, but can nonetheless be found there at http://www.ctan.org/pkg/titlecaps \documentclass{article} \parindent 0em \usepackage{titlecaps} \begin{document} \titlecap{\scshape this is a (test) of \LARGE titlecaps \normalsize on \"uml\"auts}\normalfont But if I ...


10

\uccode sets up the map that is used by \uppercase to map tokens such as v to V. \scshape does not involve uppercaseing or changing tokens at all, it is just a font design choice like sans serif or italic etc, a font in which the lower case letter slots are filled with glyphs that are traditionally used for capital letters.


10

À propos du problème des noms d'auteurs en petites capitale, on peut dire à frenchb (module de babel pour le français) de ne pas adopter ce comportement en ajoutant la ligne suivante au préambule. Regarding the problem of author names in small capital, one can tell frenchb (the babel module for French) not to do it by adding the following line to the ...


9

Add the Renderer: \setmainfont[Renderer=ICU,Mapping=tex-text]{Gentium Plus}


9

By default, microtype will enable tracking for the fonts defined in the smallcaps set (see microtype.cfg), which includes all sc shape fonts, but not si, that is italic smallcaps. You should get what you want if you add the following to the preamble: \DeclareMicrotypeSet*{smallcapsi} { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2}, shape = {...


9

Edit OK as David pointed out in the comment, simply looking at \f@encoding/\f@family/\f@series/sc is not enough as this command is defined during a substitution. So one probably has to record if a substitution takes place: \documentclass[11pt,a4paper]{scrartcl} \makeatletter \def\define@newfont{% \begingroup \let\typeout\@font@info \escapechar\m@...


9

You have to compare the current value of \f@family and of \sfdefault: if they match, then you're typesetting in sans serif type. Basically you do \ifnum\pdf@strcmp{\f@family}{\sfdefault}=\z@ <we are using sans serif> \else <we are not using sans serif> \fi Example: \usepackage{pdftexcmds} \makeatletter \DeclareRobustCommand{\film}[1]{% ...


9

with Alegreya small caps are a family and not a shape and so the default settings of microtype don't affect them. You must activate tracking yourself: \documentclass{article} \usepackage[tracking = true, letterspace = 500]{microtype} \usepackage{Alegreya} % <- tracking does not work with small caps \DeclareMicrotypeSet*[tracking]{alegreyasc} { font = ...


9

I don't think it should be be needed but you can re-assert turkish in the footnote: \documentclass[11pt]{memoir} \usepackage{fontspec} \usepackage{polyglossia} \setdefaultlanguage{turkish} \usepackage[semibold]{libertine} \begin{document} In Turkish, `\textsc{ı}' and `\textsc{i}' are different letters. {\footnotesize In Turkish, `\textsc{ı}' and `\...


9

Here's a LuaLaTeX-based solution. It consists of (a) a main Lua function called uc2sc (short for "uppercase to smallcaps", I suppose) and an auxiliary Lua function called makesc which, together, do most of the work and (b) a LaTeX macro called \famword that acts as a wrapper for the uc2sc function. The Lua functions employ Lua's versatile built-in string....


Only top voted, non community-wiki answers of a minimum length are eligible