仅当有意放置连字符时才允许使用连字符换行

仅当有意放置连字符时才允许使用连字符换行

我正在尝试使用 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

你有两种选择:

  1. 声明使用虚假语言连字规则nohyphenation

  2. 设置\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{

相关内容