我的论文中有很多地方加号出现在文本中的大写字母周围,例如 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
答案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}