始终在文本中显示加号

始终在文本中显示加号

我的论文中有很多地方加号出现在文本中的大写字母周围,例如 NNLL+NNLO。
问题是默认情况下,+ 垂直对齐太低,以至于在大写字母中看起来对齐很差。
通过尝试\raisebox,我发现如果将其提升,它看起来会好很多0.25ex,并且小写字母看起来仍然很好,即使在 a+j 这样的情况下也是如此。
有没有办法将加号的默认行为更改为始终在文本中显示为凸起?
我不想改变数学模式中发生的情况。

我认为一个潜在的解决方案可能是全局替换 raw +\raisebox{0.25ex}{+}模数化空间吞噬问题)或让 latex 使用不同的字体来渲染 +。
我只是不知道这是否可行。


根据答案报告我实施的内容。
这是我提出的命令,它还考虑了大胆的并允许用 排版两个连续的凸起空格\++

\makeatletter % https://tex.stackexchange.com/a/31660/35990
\newcommand*{\IfbfTF}{% detect bold font
  \ifx\f@series\my@test@bf
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
}
\newcommand*{\my@test@bf}{bx}
\makeatother

% https://tex.stackexchange.com/a/567256/35990
\newcommand{\textplus}[1][+]{\raisebox{% font-independent height
  \dimexpr(\fontcharht\font`X-\height+\depth)/2\relax
}{\IfbfTF{$\bm{#1}$}{#1}}}

\ExplSyntaxOn
\NewDocumentCommand\+{}{
  \peek_charcode_remove:NTF + {\textplus[++]}{\textplus[+]}
}
\ExplSyntaxOff

\peek_charcode_remove:NTF需要该expl3包。

答案1

我不确定 0.25ex 是否是正确的选择:它实际上使 + 号略高于大写字母。

使用不同的字体也可能使情况变得更糟。例如,使用 Times 时,你会得到

在此处输入图片描述

因为这里的 + 号位于基线上。我们能让凸起部分独立于字体吗?可以:一点代数运算表明,我们需要将符号凸起的倍数设为大写字母总和的一半,减去 + 的高度,再加上 + 的高度。

运用 David 的想法:

\newcommand{\+}{%
  \raisebox{\dimexpr(\fontcharht\font`X-\height+\depth)/2\relax}{+}%
}

以下是 Times 的输出

在此处输入图片描述

以及计算机现代

在此处输入图片描述

这是关于高度的陈述的视觉证明。第一个 + 符合我的定义,第二个增加 0.25ex。只需查看顶部,因为在底部 TeX 始终使用基线。

在此处输入图片描述

答案2

在此处输入图片描述

您可以使 + 在文本模式而不是数学模式下处于活动状态并提升自身,但会出现一些问题,很难捕捉到所有情况\dimexpr \parindent + 5pt\relax并确保您不会添加\raisebox中间表达式。

我将为其使用一个新命令,\+默认情况下未定义,因此:

\documentclass{article}

\newcommand\+{\raisebox{0.25ex}{+}}
\begin{document}

NNLL+NNLO


NNLL\+NNLO

\end{document}

答案3

这是我针对+文本字母之间的符号的解决方案(灵感来自这个答案)具有以下特点:

  • 我提供了两种解决方案首都\Plus) 和小写( \plus) 个字母。对于小写字母,我建议减小尺寸。
  • 我使用了不同的语法。

在此处输入图片描述

    \documentclass{article}
    \usepackage{calc}
    \usepackage{graphicx}
    
    %Plus for lower case
    \newlength{\heightofx}
    %Plus size is reduced to 60% (0.6)
    %and set at the mid height of 'x'
    \newcommand{\plus}{\settoheight{\heightofx}{x}%
    \raisebox{0.5\heightofx-(0.5\totalheight-\depth)}%
    {\scalebox{0.6}{+}}} 
    
    %Plus for captitals
    \newlength{\heightofX}
    %Plus is set at the mid height of 'X'
    \newcommand{\Plus}{\settoheight{\heightofX}{X}%
    \raisebox{0.5\heightofX-(0.5\totalheight-\depth)}{+}} 
    
    \begin{document}
    
    \begin{tabular}{cc}
    Adapted & Raw \\
    \hline
     \\[-0.5em]
    LOVE\Plus GRACE & LOVE+GRACE\\
    love\plus grace & love+grace
    \end{tabular}
    
    \end{document}

相关内容