表意文字スペースでの単語の折り返しを許可/強制する

表意文字スペースでの単語の折り返しを許可/強制する

私は漢字の練習に役立つフラッシュカードを作っていますが、フォーマットは非常にシンプルです。表面に漢字を、裏面に意味と読み方(の上-読み物とくん- 読み方は別の行に記入します。そのために私は非常に優れたドキュメント クラスを使用しておりflacards、うまく機能しています。

問題は、一部のカードには多く読み方。リストが多すぎるため折り返さなければなりません。現時点では、次の文字が収まらないときに改行します (画像の最後の 4 行):

望ましくない単語の折り返し

各読みの間のスペースは U+3000 IDEOGRAPHIC SPACE ( ) であり、XeLaTeX でその文字を単語の折り返しのスペースとして扱い、読みの途中で行が分割されないようにしたいと思います。言い換えると、結果は次のようになります (手動で作成した例):

望ましい単語の折り返し

...ただし、次の基準を満たす必要があります:

  • 手動での折り返しは不要です(カードの幅が広くなると、ラインは自動的に再フローする必要があります)
  • 折り返しのために削除されるスペースはないレンダリングされる(上の画像ではレンダリングされています)
  • 個々のエントリ間のスペースは、表意文字スペースとまったく同じ幅にする必要があります (フォントが変更された場合でも)。ただし、結果の PDF で実際の表意文字スペース文字である必要はありません (ただし、正しい文字が含まれていることが望ましいです)。

正確な入力形式は固定されておらず、必要な間隔が確保される限り、必要に応じて変更できます。

MWE:

\PassOptionsToPackage{a4paper}{geometry}
\documentclass[frontgrid,backgrid]{flacards}
\usepackage{xeCJK}
\setCJKmainfont{MS Gothic}
\renewcommand{\cardtextstylef}{\Huge}
\renewcommand{\cardtextstyleb}{}
\begin{document}
\card{明}{bright, clear\\ メイ ミョウ\\ あ(かり) あか(るい) あか(るむ) あか(らむ) あき(らか) あ(ける) -あ(け) あ(く) あ(くる) あ(かす)}
\end{document}

答え1

いくつか質問があります:

  1. CJK 文字間の改行を防止します。\CJKglue任意の 2 つの CJK 文字の間には があり、これは最初は\hskip 0pt plus 0.08\baselineskip\relax折り返しを有効にするために と定義されています。 を空のマクロに再定義して、\CJKglue折り返しを防止できます。

    (中国語のみの文書で再度申し訳ございませんxeCJK。)

  2. の前後で改行されないようにします。これらは、全角の左または右の句読点ではなく、CJK 表意文字として扱う必要があります。\xeCJKDeclareCharClassの高度なマクロがxeCJKこれを実現します。

  3. 全角スペース(U+3000)をTeXグルーにします。これにより折り返しが可能になりますが、廃棄可能(TeXbook の第 14 章を参照) これは TeXnician にとっては難しいことではありません。

完全な動作例は次のとおりです。

ここに画像の説明を入力してください

\documentclass[frontgrid,backgrid]{flacards}
\renewcommand{\cardtextstylef}{\Huge}
\renewcommand{\cardtextstyleb}{}

\usepackage{xeCJK}
\setCJKmainfont{MS Gothic}

% Prevent line breaking between CJK characters
\xeCJKsetup{CJKglue=}  % or \def\CJKglue{} for old version of xeCJK

% Prevent line breaking before ( and after )
\xeCJKDeclareCharClass{CJK}{`(, `)}

% Define a full-width space to be a \quad, which is a TeX glue
\catcode"3000=\active
\def^^^^3000{\quad}

\begin{document}
\card{明}{bright, clear\\
  メイ ミョウ\\
  あ(かり) あか(るい) あか(るむ) あか(らむ) あき(らか) あ(ける) -あ(け) あ(く) あ(くる) あ(かす)}
\end{document}

関連情報