我正在尝试使用 XeTeX 排版一份使用台语(台湾罗马拼音)的文档,该拼音用连字符分隔单词中的音节,这意味着连字符非常常见。我还使用该paracol
包显示相应的中文字符。我希望仅当单词中有连字符时才允许使用连字符换行符,并禁止使用任何其他连字符。
下面是我的问题的一个例子。此代码:
\documentclass[12pt,oneside]{book}
\usepackage{xeCJK}
\usepackage{lettrine}
\usepackage{paracol}
\usepackage{fontspec}
\setlength{\columnsep}{25pt}
\setCJKmainfont{MOESongUN}
\setCJKmonofont{TW-Sung-Ext-B}
\setmainfont{Charis SIL}
%avoid overfull hbox with narrow columns
\tolerance=400
\hbadness=399
\setlength{\emergencystretch}{1em}
\newcommand{\ver}[1]{\textsuperscript{#1 }\nolinebreak}
\newcommand{\ch}[1]{\lettrine[lines=3,nindent=0em]{#1 }{\ver{1}}}
\newcommand{\they}{\texttt{
答案1
你有两种选择:
声明使用虚假语言连字规则
nohyphenation
设置
\hyphenpenalty
为 10000,除了明确的连字符外,不允许使用连字符
\languageshorthands
下面的代码中我改变了中文部分的字体;只有按照方法1来做才需要添加定义。
一旦决定了方法,就可以将其插入到的定义中\paral
。
\documentclass[12pt,oneside]{book}
\usepackage{xeCJK}
\usepackage{lettrine}
\usepackage{paracol}
\usepackage{fontspec}
\setlength{\columnsep}{25pt}
%\setCJKmainfont{MOESongUN}
%\setCJKmonofont{TW-Sung-Ext-B}
\setCJKmainfont{Hiragino Mincho Pro}
\setCJKmonofont{Hiragino Mincho Pro}
\setmainfont{Charis SIL}
%avoid overfull hbox with narrow columns
\tolerance=400
\hbadness=399
\setlength{\emergencystretch}{1em}
\newcommand{\ver}[1]{\textsuperscript{#1 }\nolinebreak}
\newcommand{\ch}[1]{\lettrine[lines=3,nindent=0em]{#1 }{\ver{1}}}
\newcommand{\they}{\texttt{