我记得在这里看到过一个可能的解决方案,但找不到。有没有办法简化粗体和斜体,这样我就可以使用简单的标记,而不是 \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
指令确保其_
被写入_
辅助文件中,这对于其正确运行是必要的。