如果在句点后使用,则自动将宏输出大写

如果在句点后使用,则自动将宏输出大写

可能重复:
检测宏中句子开头的大写字母

是否可以编写一个宏来判断它是否用于句子开头?例如,想象一下

\def\location{street}
...
This \location is nice. \location has its charm.

这个问题简单又愚蠢,但无论如何,你明白我的意思了。我希望第二条街道是“街道”。如何做到这一点?我正在使用lualatex,所以如果只有一个特定于 lua 的解决方案是可能的,我会很高兴。如果不可能,那么我必须手动完成,但这在我的文本中会有很多工作 :-(

答案1

对作品进行快速测试\spacefactor

在此处输入图片描述

\documentclass{article}
\newcommand{\location}{%
  \ifnum\spacefactor=3000
    \expandafter\MakeUppercase\fi%
  street}
\begin{document}
This \location\ is nice. \location\ has its charm.
\end{document}

\spacefactor根据前面的标点符号的不同而不同:句号3000后面。

由于我不熟悉\spacefactor,所以我不确定它有多么强大。

相关内容