如何设置斜体和粗体快捷键,如 *bold* 或 _italic_

如何设置斜体和粗体快捷键,如 *bold* 或 _italic_

我记得在这里看到过一个可能的解决方案,但找不到。有没有办法简化粗体和斜体,这样我就可以使用简单的标记,而不是 \textbf{粗体文本} 和 \textit{斜体文本}(例如在 Word 中)加粗字体

*bold text* 

斜体

_italics_

整个文档?

答案1

为了下划线,则可进行以下操作:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}

\catcode`\_=\active
\protected\def_{\begingroup\itshape\aftergroup\/\let_\endgroup}

\begin{document}

Hello \textit{World!} How are you?

Hello _World!_ How are _you?

I'm fine._ And you?

_I'm fine, too.

Glad to hear that._

\end{document}

但是,它有点疯狂且不稳定。如果您只想将其用于短文本(不跨越多个段落),则以下方法会更好。(在上面的例子中它不起作用,因为我们跨越了多个段落。实际上,如果您_在一个段落中放入奇数个,它会抛出一个错误。)

\catcode`\_=\active
\protected\def_#1_{\textit{#1}}

您可以使用同样的想法星星问题是,这\section*{Text}会突然停止工作。变体 1:

\catcode`\*=\active
\protected\def*{\begingroup\bfseries\let*\endgroup}

变体 2:

\catcode`\*=\active
\protected\def*#1*{\textbf{#1}}

如果您根本不使用数学,只需使用^它就*可以了。


它是如何工作的:原始宏\catcode使得_ \active我们可以将其定义为任何其他命令。

在变体 1 中,我们将其定义为 (1) 开始一个组 (2) 开始斜体文本 (3) 在斜体文本的末尾添加斜体校正 (4) 使下一个_结束我们开始的组。在组结束时,重新定义_被遗忘,因此另一个_将再次开始斜体文本。

变体 2 更简单:找到后,再寻找_第二个,然后将中间的所有内容放入其中。_\textit

\protected指令确保其_被写入_辅助文件中,这对于其正确运行是必要的。

相关内容