我在美国键盘上使用葡萄牙语布局(我的笔记本电脑是在那里买的),因此我丢失了反斜杠键。有没有办法使用 overleaf 上的另一个键为反斜杠创建新的快捷键?
我没有数字键盘,所以我不能使用 Altgr+92,而 Crtl+Space 也不是那么有用,因为每个段落只能使用一次。
答案1
正如评论中提到的,您最好找到一种系统范围的方法将键盘键重新映射到字符\
。
但是,(La)TeX 还提供了在文档中输入某些字符的其他方法。我在这里看到两个选项:
使用特殊
^^
输入处理:当 TeX^^
在输入流中看到两个上标字符时,它会以不同的方式解析以下字符。序列^^x
,其中x
是字符代码在 0 到 127 之间的字符,被替换为相同范围内的字符加/减 64。在我们的例子中 的\
字符代码为 92,因此x
在我们的例子中 将是代码为 92-64 = 28 的字符。不幸的是,这超出了通常可以打印/输入的字符范围,所以这是不可能的。接下来,将序列
^^xy
(其中x
和y
是十六进制数字(0
...9
,a
...f
))替换为具有十六进制数 xy 所表示的字符代码的字符。在我们的例子中,该序列为 92 10 = 5c 16。因此,我们的首选是使用
^^5c
而不是\
。使用 catcodes:在输入处理的第一阶段之后,TeX 会为每个字符分配所谓的类别代码 (catcode),这些代码会影响字符序列的进一步处理。例如,
\
默认情况下,分配了 catcode 0(转义字符)。每当读取转义字符时,后面的字母字符序列(catcode 11)都会合并为单个输入标记(控制序列),例如,字符\
、f
、o
、o
、{
、}
将成为标记\foo
、{
、}
。幸运的是,我们可以将任何输入字符的 catcode 更改为任何其他 catcode。此分配的语法是
\catcode`x=`y
其中x
和y
是任意字符(特殊字符必须另外用 转义\
)。因此,我们的第二个选择是使用,比如说,从现在起
\catcode`/=0
将所有的 s 都设为/
转义字符。当然,最初的反斜杠必须从其他地方复制。;-)
第二种方法使用起来有点棘手,因为新的转义字符可能会在我们意想不到的地方被误解。/
例如,一些较旧的软件包在日期中使用。像 这样的日期2019/07/01
将被标记为2
、0
、1
、9
、/0
、7
,/0
并且1
TeX 会抱怨该命令/0
未定义。因此,如果使用错误的替换字符或在文档的错误位置使用,第二种方法可能会中断。
但是,我们可以结合这两种方法:首先,我们使用方法一来处理 LaTeX 序言,然后切换到方法二,并祈祷文档的其余部分不会出现问题:
^^5cdocumentclass{article}
^^5cusepackage{xcolor}
% load more packages here using ^^5c
^^5ccatcode`/=0
/begin{document}
/textit{Hello world!}
/end{document}
输出
你好世界!
再次,应该使用适当的键盘重新映射。