I use XeLaTeX and the fontspec package.
Now, I like to use Linux Libertine as standard font. The slanted (not italics) characters are stored in a different font. Now, to use them with \slshape, I have to select them explicitly:
\setmainfont[
SlantedFont={Linux Libertine Slanted O},
SmallCapsFeatures={Letters=SmallCaps},
Mapping=tex-text, Numbers=OldStyle, Variant=01, Ligatures={TeX, Common}, Contextuals=WordFinal,
% Style=Alternate, Ligatures={Rare, TeX, Common}
]{Linux Libertine O}
As you can see, the slanted font is selected in the SlantedFont={Linux Libertine Slanted O} argument.
When I use \slshape in my document now:
{\slshape \lipsum[1-2]}
It creates the correct slanted text.
(\usepackage{lipsum} is further up in the file.)
Now, when I want to use small caps I use \scshape:
{\scshape \lipsum[3-4]}
The text is slanted small caps! To circumvent this, I have to comment out the SlantedFont argument in \setmainfont, this makes the small caps upright, but I lose slanted text capabilities.
How do I make both behave corectly?


SmallCapsFont={Linux Libertine O}– egreg Jan 23 '12 at 18:37