我有一个用于书籍章节的 LaTeX 文件,可能需要在某个时候将其转换为 Word,因为这是出版商使用的格式(叹气)。这篇文章中没有任何数学内容,但我仍然使用 LaTeX,因为即使不写数学,它也比其他选择要好。不幸的是,我大量使用了只应该出现在数学环境中的字符,特别是下划线字符 ( _
)。我确实在几个地方使用了数学环境,但只是非常短暂地使用。
所以,我的问题是,我可以让 LaTeX 为这个特定字符设置例外,并将下划线视为下划线吗?这将使以后转换为 Word 或其他文字处理格式更加容易。另一种方法是\_
在很多地方使用。如果有某种方法可以在数学环境中使用下划线,那就更好了,但不确定这将如何工作。需要说明的是,我想要一种可以与任何特殊 LaTex 字符一起使用的通用技术,尽管我认为重新映射大多数其他字符会带来比它本身更多的麻烦。
我不确定这里要使用什么标签,所以请随意添加。谢谢。
编辑:原来这是常见问题解答 -如何排版下划线字符。
答案1
对于下划线来说,这很容易:
\documentclass{article}
\usepackage[T1]{fontenc}
\catcode`_=12
\begingroup\lccode`~=`_\lowercase{\endgroup\let~\sb}
\mathcode`_="8000
\begin{document}
Under_score but $a_{x}$
\end{document}
实际上这句话\mathcode`_="8000
是多余的,但重复它使我们的意图更加明确。
我们让该字符_
“数学活跃”,即,它的行为类似于宏,但仅限于数学模式。这个\begingroup\lccode...
技巧将此宏定义为等同于,而\sb
这又等同于通常_
引入下标的方式。为了使它真正被视为数学活跃字符,我们需要给它类别代码 12,这也使它可打印(在数学模式之外)。但是,我们需要一种在正确位置有下划线的字体,因此我们加载 T1 输出编码。
其他特殊字符必须以不同的方式处理。例如,$
可以通过以下方式“中和”该符号:
\usepackage{fixltx2e}
\catcode`$=12
在序言中;该包是必需的,因为它“增强”了\(
和\)
命令。当然,现在必须使用这些命令输入内联公式。
对于&
,可以说
\def\AM{&}
\catcode`&=12
并用于\AM
在表格环境中标记对齐点。
此外,#
角色可以被中和,只要在说完
\catcode`#=12
不会尝试定义新的命令。
但是,我不建议更改 catcode(也许除了下划线以外)。如果要转换为其他格式,则“搜索和替换”更安全。
答案2
包裹underscore
使其_
行为与文本模式一样\textunderscore
,但不影响数学模式的行为。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{underscore}
\begin{document}
Under_score but $a_{x}$
\end{document}