如何在每个句子末尾插入特殊字符?

如何在每个句子末尾插入特殊字符?

我倾向于写很长的句子。为了轻松检测太长的句子,我想让编译的 latex 文档中的单个句子更清晰地突出显示。我知道 latex 有某种方法可以检测句子的结尾以调整间距。那么是否可以修改 latex 的检测句子结尾功能,以便$\bullet$在每个句子的末尾插入一个高度可见的特殊字符,例如 ?

(非常欢迎任何其他突出句子的想法。)

答案1

要添加项目符号,您可以将句点设为活动字符,并定义一个添加项目符号的宏:

\documentclass{article}
\begin{document}
\begingroup       % EDIT
\let\origdot=.
\catcode`.=\active
\def.{\origdot\ensuremath{\bullet}}
Hello.  I am a sentence.  Mr.\@ Black knows too little.
\endgroup         % EDIT
\end{document}

其结果是:

结果截图

请注意,后面的句号Mr也加了一个项目符号。我不知道该如何更改它。(如果有人知道,请随时编辑!)

更简单的方法可能是在每个句子后添加大量空格:

\documentclass{article}
\begin{document}
\nonfrenchspacing    % <-- 
\xspaceskip1cm       % <-- (or whatever amount of space you prefer)
Hello.  I am a sentence.  Mr.\@ Black knows too little.
\end{document}

给出

第二张截图

此论坛主题解释一下。这解决了这个问题Mr.(感谢@ Gustavo Mezzetti)。

答案2

另一个答案的方法当然更好,但这就是我想出的:你想替换句号,所以就这样做

\documentclass{article}

\usepackage{xstring}
\begin{document}
\section{original tex} %one paragraph from lipsum package
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, %cut that here

\section{with replacement}

\StrSubstitute{Lorem ipsum dolor s... }{.}{.\par~\par\noindent}

\end{document}

当然,这也存在同样的问题,即不是每个句号都是句子的结尾等等(最重要的是:这只适用于纯文本)

例子

相关内容