名前: ZR 日時: 2007-02-12 01:29:05 IPアドレス: 59.140.98.*
>>46925 これに関して気づいたことを書いておきます。 ◆ ラトビア語に関する閑話 L7x エンコーディングは ISO 8859-13 (Latin7) を基礎と していますが、実は Latin7 はバルト諸語をカバーする ものとして設計されています。従って、L7x の中には リトアニア語だけでなくラトビア語で必要なアクセント 付き文字が全て入っています。 しかも、"LaTeX latvisko\v{s}ana" が用いている LV フォントもまた Latin7 を基礎としているので、LV と L7x ではリトアニア語の文字の位置が完全に一致してい ます。従って、LV フォント用のハイフネーションである lvhyphen.tex はそのまま L7x に流用可能です。 結果として、LV フォントをインストールしなくても、L7x エンコーディングの Latin Modern (LM) フォントだけで ラトビア語が綺麗に出力できます。 ※ v1.010[2007/01/16] 以降の LM フォントには最初から L7x の tfm や map が入っているので、"Lithuanian TeX" からのものと衝突しないように注意。 %<lativian.cfg> % 既知の encoding により \latvianencoding を振り分け \expandafter\ifx\csname T@LV\endcsname\relax \expandafter\ifx\csname T@L7x\endcsname\relax % LV も L7x もない場合の応急処置 \let\latvianencoding\latinencoding \else % L7x あり \def\latvianencoding{L7x} % gcommaaccent を \c{g} の他に \v{g} でも可とする \DeclareTextComposite{\v}{L7x}{g}{236} \fi \else % LV あり \def\latvianencoding{LV} \DeclareFontSubstitution{LV}{cmr}{m}{n} % "error font" は変えない方がいいような... %\DeclareErrorFont{LV}{cmr}{m}{n}{10} \fi %\typeout{Latvian encoding = \latvianencoding} %% \DeclareRobustCommand{\LaTvian}{% \fontencoding\latvianencoding\selectfont% \let\encodingdefault\latvianencoding}% \let\latviantext\LaTvian% \addto\extraslatvian{\latviantext}% \addto\noextraslatvian{\latintext}% \endinput %%<EOF> %<lvsamp.tex> \documentclass{jsarticle} \usepackage[L7x,T1]{fontenc} \usepackage{lmodern} \usepackage[latvian,english]{babel} \begin{document} \selectlanguage{latvian} 3. un teica cits citam: \llqq Iesim un tais"isim "kie"ge"lus un dedzin"at tos dedzin"asim,\lrqq{} - jo "kie"ge"li tiem noder"eja akme"nu viet"a un zemes pi"kis ka"l"ku viet"a. \begin{flushright}\today\end{flushright} \end{document} %<EOF> ◆ ルーマニア語に関する閑話 - 指摘の通り、QX エンコーディングの下では \c{S}/ \c{T} で commaaccent 付きの文字が出力できます。 しかし、QX を使ってもルーマニア語の組版には問題 が残ります。原因は、QX には \u{A} が欠けている からです(T1 にはある)。もちろん、アクセント合成 がされるので表示は問題ないのですが、ハイフネー ションが失敗し、また PDF にした時のテキスト情報 が不正になります。 つまり、例えば LM の個々のフォントファイル自体 (lmr10.pfb とか)には Abreve, S+commaaccent, T+commaaccent のグリフが全て含まれているのに、 LaTeX の既製パッケージだけではそれらを同時には 使えない状態になっているわけです。 - QX エンコーディングの定義ファイル qxenc.def は CTAN:fonts/psfonts/polish/qfonts/qxenc.def にあります。ただこのファイルだけを入れたのでは、 この中で既定になっている qtm (QTimes) のフォント がないのでエラーになります。適宜 \DeclareFontSubstitution{QX}{lmr}{m}{n} 等と既定を変える必要があります。 ※ 最近発表された TeX Gyre フォントは QFonts の 発展企画で、"qtm" の識別子は "TeX Gyre Termes" に受け継がれています。だから TeX Gyre フォント がある時はエラーになりません。 - QX エンコーディングが使えないフォントで commaaccent を強引に出力する方法として、latin10 入力エンコー ディングを用いる方法があります。この入力エンコー ディングの設定ファイル latin10.def の中には commaaccent を合成するマクロ \textcommabelow が 定義されているので、このファイルを inputenc を 用いて読み込ませればいいわけです。 %<rosamp.tex> \documentclass[a4paper]{article} \usepackage[T1]{fontenc} \renewcommand{\rmdefault}{ppl} % Palatino を使いたい % 欲しいのは \textcommabelow であって \usepackage{inputenc} % 入力設定ではない \inputencoding{latin10} % latin10.def を読ませる \inputencoding{latin1} % 直後に本当に使いたい入力 % (あれば)に切り替える \newcommand*{\cb}{\textcommabelow} \begin{document} \cb{S}i au zis unul c\u{a}tre altul: ,,Haidem! s\u{a} facem c\u{a}r\u{a}mizi, \cb{s}i s\u{a} le ardem bine in foc.'' \cb{S}i c\u{a}r\u{a}mida le-a \cb{t}inut loc de piatr\u{a}, iar smoala le-a \cb{t}inut loc de var. \end{document} %<EOF> もっとも、この例ならば TeX Gyre Pagella を QX で 使ったほうがいいですが。
この書き込みへの返事: