Automatically capitalize first letter of first word in a new sentence in LaTeX

后端 未结 3 1008
情书的邮戳
情书的邮戳 2021-02-06 01:06

I know one of LaTeX\'s bragging points is that it doesn\'t have this Microsoftish behavior. Nevertheless, it\'s sometimes useful.

LaTeX already adds an extra space after

3条回答
  •  我寻月下人不归
    2021-02-06 01:46

    The following code solves the problem.

    \let\period.
    \catcode`\.\active 
    \def\uppercasesingleletter#1{\uppercase{#1}}
    \def.{\period\afterassignment\periodx\let\next= }
    \def \periodx{\ifcat\space\next \next\expandafter\uppercasesingleletter \else\expandafter\next\fi}
    
    First. second.third.  relax.relax. up
    

    \let\period. save period

    \catcode\.\active make all periods to be active symbol (like macro).

    \def\uppercasesingleletter#1{\uppercase{#1}} defines macro \uppercasesingleletter to make automatically capitalize the following letter.

    \def.{\period\afterassignment\periodx\let\next= } writes saved period and checkes the next symbol.

    \def \periodx{\ifcat\space\next \next\expandafter\uppercasesingleletter \else\expandafter\next\fi} If the next letter is a space then \uppercasesingleletter is inserted.

提交回复
热议问题