日语标点符号——逗号、(touten)和句点。(kuten)——和括号「」『』()不是西方的,和.。它们是全角字形,其中已经内置了半角空间,并且它们遵守有关行开始和结束位置的规则。支持日语的引擎(例如 pLaTeX 和 LuaTeX-ja)会自动处理这些 yakumono (标点符号)的间距、字偶距和换行。因此,作为规则,您不要在它们周围添加自己的空格。 本页介绍如何选择逗号/句号样式、使用方括号以及下面的自动间距和换行规则。
逗号和句点(、。)
日语的基本标点符号是逗号、(句中休息)和句号。(句末)。使用UTF-8源,您只需在正文中输入它们,就像普通字符一样,然后它们就被设置了。它们是与半角,和.不同的码位,被视为yakumono,并在其后带有半角空格。
吾輩は猫である。名前はまだ無い。
どこで生れたか、とんと見当がつかぬ。要记住的是,这些是 全角 yakumono。 逗号、句点、括号和中间点 (·) 有效地占据了半角字形,剩余的一半保留为字符面之前或之后的空格。所以你不应该在。之后按空格键。添加字面空格实际上会使排字机已经预期的间隙加倍,从而留下不自然的开口。规则是将 yakumono 周围的空间留给引擎。
十丸或逗号句号
在横向书写的学术和技术文档中,长期以来的惯例是使用全角逗号和句号,.,而不是普通的、。(十丸)。这不是国家语言的规则;它源自JIS Z 8301(标准文件的样式),其中规定了,和.,并且在数学书籍和科学/工程论文中很常见。老一辈的日本政府指导意见长期以来褒贬不一,。但2022年文化协议会官方文件书写报告明确指出,在横向书写中,日语逗号「、」是默认的。使用哪个遵循您场地的提交规则或您所在领域的习惯 - 并且在单个文档中必须保持一致。
需要澄清的一个常见误解:jsclasses(jsarticle、jsbook 等)没有可以将标点符号切换为,.。 出现哪个 yakumono 最终由 您在源代码中输入的内容决定。 如果您想要逗号句点,最直接的方法是输入,.直接在正文中。
本稿では,記法を次のように定める.まず,集合 $A$ を……一个常见的工作流程是用 、。并对 ,进行全局查找和替换。在最后。更进一步,如果您想在输入中保留 、。 但仅将输出替换为 ,,有一些方法:将日语字符转换为宏并交换它们的定义(\catcode 技巧),在构建时通过 LuaTeX-ja 回调替换它们,或者使用编辑器扩展进行转换。请注意,所有这些都是您自己设置的机制,而不是该类的功能。
请注意,数学 中的逗号 遵循西方排版规则。像 $(x, y)$ 这样的坐标或列表分隔符使用带有小空格的半角逗号,与正文文本yakumono分开处理。即使您的散文使用逗号句号,也无需将公式内的逗号设置为全角。
括号(「」『』()等)
对于日语引用和强调,请先到达角括号「」。对话、引语和衬托短语都使用这些。当您需要将引文嵌套在另一个引文中时,对于书籍和作品的标题,请使用双角括号『』(常见惯例是“”在外面,“”在里面)。对于括号,请使用全角()来表示旁白和阅读内容。还有[]【】〔】等,用于标题、词典条目等。
| 支架 | 姓名 | 典型用途 |
|---|---|---|
「 」 | 角括号 | 对话、引语、衬托短语(主要引语) |
『 』 | 双角括号 | 作品名称;嵌套在「」里面 |
( ) | 全角括号 | 旁白、笔记、阅读材料 |
[ ] | 全角方括号 | 编辑插入、省略 |
【 】 | 光栅支架 | 标题、强标签 |
〔 〕 | 龟甲支架 | 注释;方括号的替代方案 |
也有括号,全角与半角的区别很重要。日语中原则上使用全角();将半角西文()混入日文中,会使周围的空间不均匀,看起来很尴尬。相反,内部西方(拉丁)文本使用半角( )。日语括号也是yakumono:左括号前面有一个半角空格,右括号后面有一个半角空格。
夏目漱石『吾輩は猫である』を引いて、「吾輩は猫である」と書いた(初出は 1905 年)。yakumono 周围的间距和字偶距
yakumono 带有的空格记录在 JFM(日语字体规格) 中,并在排版时自动插入,这就是为什么您在标点符号周围不输入空格的原因。当 yakumono 一起运行时,就会出现问题。 如果右括号紧跟着左括号,例如,结束符后面的半角空格和开头符前面的半角空格会合并为全角间隙。日语排版更喜欢 kern 向下 — 将其关闭到大约半角 (nibu) 空间。
pLaTeX 和 LuaTeX-ja 基于 JFM 自动执行此yakumono 字距调整。通常你什么都不做。不过,偶尔您会想要 取消 某个位置的自动空格,这就是 \inhibitglue 的用途 — 它会抑制该位置处源自 JFM 的粘合。另一方面是你很少需要它;通常将其留给自动处理就足够了。
药物的宽度也不统一。逗号、句点、左括号和中间点的空格是半角,但问号?和感叹号!被视为全角,默认情况下在它们后面带有全角空格(因此,当句子紧接在!中线之后继续时,会进行字距调整)。问号和感叹号的详细处理在单独的页面上介绍。
行开始和行结束规则(避头尾)
日语排版有 kinsoku(禁止换行)规则。主要有两种类型: gyōtō-kinsoku 指定不得以行开头的字符,以及 gyōmatsu-kinsoku 不得以行结束的字符。经典案例:右括号」、句号。、逗号、、或中间的点・不能作为行首,左括号「或(不能作为行结束。
这些也是自动强制执行的。在内部,pTeX 系列为每个字符分配一个 penalty,用于落在行开头或行结尾 (prebreakpenalty / postbreakpenalty),并选择断点,以使段落上的总惩罚最小化。在LuaTeX-ja 中,您可以使用\ltjsetparameter 调整这些,但类(jsclasses、jlreq)会加载合理的符合JLReq 的默认值,因此您通常不需要触及它们。
- 决不在行首 (gyōtō-kinsoku): 。 、 、 . )」』】〕·ー之类的。
- 永远不要在行尾(gyōmatsu-kinsoku): 左括号,例如( 「 『 【 〔。
- 悬挂标点符号: 当逗号或句号落在行尾时,某些设置会将其“悬挂”到文本边缘之外;默认值因类别而异。
日语和西方文本之间的间距
当英语单词或数字位于日语句子内时,边界需要自然的间隙。这也是自动的:在日语和西方文本之间插入的大约四分之一em(全角的四分之一)空格是\xkanjiskip。写“TeXは便利だ”,“TeX”和“は”之间会出现一个细空格。日语字符之间非常小的空格是\kanjiskip,用于行对齐。
所以你不需要自己在日本/西方边界处输入半角空格;这样做会与自动间隙发生冲突并将其打开得太远。在LuaTeX-ja 中,您可以使用\ltjsetparameter{xkanjiskip=...} 更改金额,并通过将autoxspacing 设置为 false 来禁用自动插入。在pTeX 系列中,\xspcode 和\inhibitxspcode 可以很好地控制空格位于特定字符之前还是之后。
与此同时,
% LuaLaTeX + luatexja。和欧文間のアキを少し広げる
\ltjsetparameter{xkanjiskip=0.25\zw plus 1pt minus 1pt}
2026 年に LaTeX で論文を書く。西方标点符号本身也有自己的规则(, 和 . 之后一个空格,句子结尾处稍宽一些的间隙,--- 表示破折号,双反引号/引号表示弯引号)。这些西方引号和破折号以及自动插入的空格都聚集在链接的页面上。
提交前校对yakumono
标点符号问题通常不会成为编译错误;它们仅在 PDF 中表现为视觉不适。提交之前,请阅读正文,同时检查标点符号、括号和日西文间距。在协作写作中,一章很容易使用半角括号、另一个逗号句号标点符号以及围绕西方单词的另一个手动空格,因此在此过程的后期搜索并标准化它们。
- 使用一种标点符号样式。 检查
、。、,.和,。是否意外混合。 - 不要在日语散文中使用半角括号。 在日语句子中将
( )替换为( ),为西方文本保留半角括号。 - 请勿在 yakumono 周围添加手动空格。
。、、或「后的空格可以使引擎提供的空格加倍。 - 询问日西空格。 如果文本看起来像
TeX は,请检查是否已插入空格或\xkanjiskip是否应处理它。
使用源搜索来消除偏差
仅通过查看 PDF 无法可靠地捕获标点符号漂移。在合作手稿中,在接近尾声时进行来源搜索。日语句子内的半角括号、标点符号后的手动空格以及日西边界处的额外空格很容易被忽略,因为它们不会导致编译错误。审核哪些空格属于引擎以及您实际输入的字符。在指责断行或避头尾设置之前运行此搜索;杂散类型空格通常是更简单的原因。
- 搜索
。和、。 删除日语句点和逗号后面的半角空格,特意示例除外。 - 搜索
(和「。 检查左括号内部或之后是否存在杂散空格。 - 在日语散文中搜索
( )。除非它们是西方数学或代码的一部分,否则将其替换为全角( )。 - 留下样式注释。 记录文档是否使用十丸句号或逗号句号、如何处理日语括号以及日语-西方间距的策略。