Lualatexでヘブル語を行内に表示

投稿者: | 2022-06-22

日本語は横書きの場合は左から右に表記する。そして、ヘブル語は反対に右から左に表記する。それで日本語の文章の行内にヘブル語を入れる場合には工夫が必要である。

Lualatex には \textdir XYZ というオプションがある。XYZには、それぞれ以下の意味がある。

  • X:The beginning of the page is one of T(top), L(left), R(right).
  • Y:The beginning of the line is one of T(top), L(left), R(right).
  • Z:The top of the line is one of T(top), L(left).

つまり、TLT for English, TRT for Arabic, RTT for Japanese(縦書き), LTL for Mongolian.になる。ヘブル語は、TRT。

以下はLualatexのヘッダー部分

\documentclass[paper=a4,fontsize=10.5pt,
     jafontscale=0.925,head_space=1.8cm,foot_space=2.0cm,
     gutter= 4zw,line_length=53zw]{jlreq}
%Time-stamp: <2022-06-22 13:34:39 doulos>
\usepackage{luatexja-fontspec}

% 例1、例2で使ったマクロ
\newcommand{\khebtest}[1]{{\textdir TRT{\fontspec{SBL Hebrew}[Scale=1.4,Script=Hebrew]#1}}}

% 例3、例4は、\fbox{\khebtest{xxxxx}} % xxxxxはヘブル語

% 例5で使ったマクロ
\newcommand{\khebfbox}[1]{{\fboxsep=2pt\fbox{\textdir TRT{\fontspec{SBL Hebrew}[Scale=1.4,Script=Hebrew]#1}}}}

% 例6で使ったマクロ
\newcommand{\khebfboxnor}[1]{{\fboxrule=0.0pt\fboxsep=2pt\fbox{\textdir TRT{\fontspec{SBL Hebrew}[Scale=1.4,Script=Hebrew]#1}}}}

★ 以下のヘブル語は出来上がったpdfのスクリーン・ショットです。

★ 問題:マクロ \khebtest で一応横書き日本語の行内にヘブル語を表記できる。しかし、ヘブル語文字が左側に少しずれてしまう(例1)。ヘブル語が行頭だと顕著に現象がでる(例2)。さらに、ここでは例示しないが、latex の itemize、enumerate環境ではもっと悲惨な現象がでる。

★ 解決への一歩:マクロ \khebtestを latex の fbox で囲んだだけで位置のずれはなくなる。(例3、4)

★ 解決:fbox のパラメーターを調整(セパレーターと線の太さをゼロ)して解決(例5~7)