据我所知,LaTeX 本身提供了以下方式:<<quoted text>>
。但是,俄语 babel 包也提供了这种方式:"<quoted text">
。它们在输出文档中看起来相同,但第一种在源代码中看起来更漂亮,更容易输入,但在使用时第二种方式似乎更正确babel
(或者为什么甚至存在)。有人可以解释和"<
之间的区别吗?有没有文档解释俄语的所有语言特定序列(例如连字符、引号和破折号,以开头)以及它们究竟如何影响这些标点符号的外观?<<
"<
"
答案1
没有任何区别。russianb.ldf
我们发现
\declare@shorthand{russian}{"<}{\guillemotleft}
\declare@shorthand{russian}{">}{\guillemotright}
这意味着简写"<
和">
分别翻译成\guillemotleft
和\guillemotright
。
当使用俄语时,输出编码是T2A,t2aenc.def
我们发现
\DeclareTextSymbol{\guillemotleft}{\LastDeclaredEncoding}{190}
\DeclareTextSymbol{\guillemotright}{\LastDeclaredEncoding}{191}
其基本含义是:\guillemotleft
排版当前字体 190 号插槽中的字符;对于 也类似\guillemotright
。
让我们看看使用 T2A 编码字体会发生什么情况;默认字体larm1000
是
tftopl larm1000
节目
(LIGTABLE
[...omitted...]
(LABEL O 74)
(LIG O 74 O 276)
(STOP)
(LABEL O 76)
(LIG O 76 O 277)
(STOP)
[...omitted...]
)
该tftopl
程序将 TFM(字体度量)文件解码为人类可读的格式。
请注意,这里的数字以八进制表示形式给出;八进制 74 是 的插槽<
,八进制 76 是 的插槽>
;八进制 276 是十进制 190,八进制 277 是十进制 191。
连字表规定:当<
后面跟着时<
,则打印 190 号槽中的字符来代替它们。对于 也类似>>
。
如果 T2A 编码字体遗漏了连字符,情况就会有所不同,这种情况可能发生,但只能通过错误输出检测出来。空间因子代码不会引发任何问题,因为俄语babel
设置了\frenchspacing
。
为了检查,请对以下文件运行 LaTeX
\documentclass{article}
\usepackage[russian]{babel}
\begin{document}
\showboxbreadth=\maxdimen
\showboxdepth=\maxdimen
\sbox0{"<qt">}\showbox0
\sbox0{<<qt>>}\showbox0
\end{document}
TeX 会像遇到错误一样停止两次;按回车键跳过停止。日志文件的相关部分将是
> \box0=
\hbox(6.1493+1.94397)x20.27283
.\T2A/cmr/m/n/10 <BE>
.\T2A/cmr/m/n/10 q
.\T2A/cmr/m/n/10 t
.\T2A/cmr/m/n/10 <BF>
! OK.
l.9 \sbox0{"<qt">}\showbox0
?
> \box0=
\hbox(6.1493+1.94397)x20.27283
.\T2A/cmr/m/n/10 <BE> (ligature <<)
.\T2A/cmr/m/n/10 q
.\T2A/cmr/m/n/10 t
.\T2A/cmr/m/n/10 <BF> (ligature >>)
! OK.
l.10 \sbox0{<<qt>>}\showbox0
请注意,十六进制的 BE 和 BF 分别是十进制的 190 和 191。
输出完全相同(除了在第二种情况下 TeX 已完成连字的注释)。
嗯,有区别能可以。您可以重新定义简写"<
和以做一些不同的事情,例如在“and”之后添加一些不可中断的空格(就像法语那样)。这样的空格不能用and">
添加(至少不能自动添加)。<<
>>