可能重复:
检测宏中句子开头的大写字母
是否可以编写一个宏来判断它是否用于句子开头?例如,想象一下
\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
,所以我不确定它有多么强大。