如何用直立小型大写字母替换斜体小型大写字母(使用 fontspec)?

如何用直立小型大写字母替换斜体小型大写字母(使用 fontspec)?

我使用带有 fontspec 和 EBGaramond 字体的 XeLaTeX,我想去掉斜体小写字母:例如,在书写时\emph{Lorem \textsc{ipsum} dolor},我想得到类似如下的效果:

图像

这是我的序言(我还加载了 ebgaramond-maths,因为否则斜体和数学会出现一些问题):

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass[a4paper, 12pt]{article}

\usepackage{fontspec}
    \setmainfont{EB Garamond}
    \setmonofont{CMU Typewriter Text}
    \renewcommand{\phi}{\varphi}
    \usepackage[cmbraces]{newtxmath}
    \usepackage{ebgaramond-maths}
\usepackage{polyglossia}
    \setmainlanguage{french}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{mathrsfs}

(...)

答案1

删除该技巧fontspec对于尊重\itshape何时\scshape执行的作用。

\documentclass[a4paper, 12pt]{article}

\usepackage{amsmath}
\usepackage{fontspec}
\usepackage[cmbraces]{newtxmath}
\usepackage{ebgaramond-maths}
\usepackage{polyglossia}
\usepackage{mathrsfs}

\setmainfont{EB Garamond}
\setmonofont{CMU Typewriter Text}
\setmainlanguage{french}

\makeatletter % avoid the adjustment for making \scshape to merge \itshape
\DeclareRobustCommand{\scshape}{%
  \not@math@alphabet\scshape\relax\fontshape\scdefault\selectfont
}
\makeatother

\renewcommand{\phi}{\varphi}

\begin{document}

\emph{Lorem \textsc{ipsum} dolor}

$\sin(\phi+\psi)=\sin\phi\cos\psi+\cos\phi\sin\psi$

\end{document}

在此处输入图片描述

答案2

现在好了,如果我想要一些像这样丑陋的东西(我承认我的品味可能与你的不同),下面是我的做法。我认为你要找的秘诀是\textup(对于“直立”):

\documentclass[12pt]{article}
\usepackage{ebgaramond}
\newcommand{\textscup}[1]{\textsc{\textup{#1}}}
\begin{document}

\emph{Lorem \textsc{ipsum} dolor}

\emph{Lorem \textscup{ipsum} dolor}

\end{document}

相关内容