请求减小大写字母大小的方法

请求减小大写字母大小的方法

代码

nonlinear {PDE} system in \scalebox{0.9}[0.9]{FDM} and \scalebox{0.9}[0.9]{FEM}.

生成以下文本:

见图片

文字 {PDE} 的大小是默认的,而文字 {FDM} 和 {FEM} 则缩小了 90%。我个人觉得默认的大写字母大小在视觉上太大,需要缩小一些。

有没有什么方法可以一次性调整整个文档中所有大写字母(至少是垂直方向)的大小,而无需\scalebox逐个调整?

答案1

你实际上是在说你不喜欢你使用的字体的大写字母大小。这实际上是字体设计师的问题,所以我怀疑是否可以从 LaTeX 内部更改它。你最好的选择可能是找到另一种你认为大写字母更具视觉吸引力的字体。

如果找不到更喜欢的字体,这里有一个解决方法,您可能会感兴趣,因为它允许您键入"FDM"而不是\scalebox{0.9}[0.9]{FDM}

\documentclass{article}
\usepackage{graphicx}
\catcode`\"=13
\def"#1"{\scalebox{0.9}[0.9]{#1}}
\begin{document}

    ...nonlinear PDE or "PDE" system in "FDM" and "FEM".

\end{document}

为了完整性,下面是输出:

在此处输入图片描述

缺点是此代码“禁用”了双引号字符,但我认为这没问题,因为在 LaTeX 中您通常会使用“....”。如果这是一个问题,那么您可以随时定义一个命令,例如\DQ将双引号字符返回给您。

答案2

这里我选择了接近当前字体大小 80% 的整体字体大小;示例展示了与普通大写字母和小型大写字母的比较。

\RequirePackage{fix-cm} % not needed if you use a scalable font

\documentclass{article}
\usepackage{xparse,xfp}

\makeatletter % we need to access @-commands
\NewDocumentCommand{\acr}{m}{{%
  \fontsize{\fpeval{round(0.8*\f@size,0)}}{\f@baselineskip}\selectfont
  #1%
}}
\makeatother

\begin{document}

nonlinear PDE system in \acr{FDM} or \textsc{fdm}

{\footnotesize nonlinear PDE system in \acr{FDM} or \textsc{fdm}}

\bigskip

{\LARGE nonlinear PDE system in \acr{FDM} or \textsc{fdm}}

\end{document}

在此处输入图片描述

如果你改成\fpeval{round(0.8*\f@size,0)}\fpeval{0.8*\f@size}得到 80% 而不进行四舍五入,你会得到

在此处输入图片描述

如果您最终选择小型大写字母,则可以避免用小写字母输入首字母缩略词的负担:

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\acr}{m}
 {
  \textsc{ \tl_lower_case:n { #1 } }
 }
\ExplSyntaxOff

\begin{document}

nonlinear PDE system in \acr{FDM} or \textsc{fdm}

{\footnotesize nonlinear PDE system in \acr{FDM} or \textsc{fdm}}

\bigskip

{\LARGE nonlinear PDE system in \acr{FDM} or \textsc{fdm}}

\end{document}

在此处输入图片描述

答案3

基于 John Kormylo 的评论:使用\textsc但先转换为小写。

\documentclass{article}
\newcommand{\SmallUpperCase}[1]{\textsc{\MakeLowercase{#1}}}    
\begin{document}

\dots nonlinear PDE or \SmallUpperCase{PDE} system in \SmallUpperCase{FDM} and 
\SmallUpperCase{FEM}.

\end{document}

在此处输入图片描述

答案4

如果您使用具有该c2sc功能的 OpenType 字体,您可以输入大写字母并在输出中获得小型大写字母:

% compile with luatex or xetex:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Alegreya}
\def\ucsc#1{{\addfontfeature{Letters=UppercaseSmallCaps}#1}}
\begin{document}
nonlinear PDE or \ucsc{PDE} system in \ucsc{FDM} and \ucsc{FEM}.
\end{document}

输出

根据字体设计者的定义c2sc,小型大写字母将被复制并粘贴为小写字母或大写字母。(Brill 和 Minion Pro 是将大写小型大写字母复制/粘贴为大写字母的字体示例。)

我知道一种 OpenType 字体,一种商业字体,它不仅有大写字母和小型大写字母,而且还有中型大写字母:Verdigris MVB Pro Text。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{VerdigrisMVBProText-Rg}
\newfontface\mcaps{VerdigrisMVBProText-RgCaps}
\begin{document}
nonlinear PDE or \textsc{pde} system in {\mcaps FDM} and {\mcaps FEM.}
\end{document}

第二个示例的输出

相关内容