BobbyQuineのブログ(備忘録)

Linux関係の備忘録、その他タバコ、Vape関連なんかも。

LaTeXでロシア語と日本語を共存させてノートがとりたい(キリル文字直打ち)

ども、BobbyQuineです。今回はLaTeXのお話。どうしてもロシア語の授業のノートをLaTeXで取りたかったのですが、どうにもjarticleだと全角キリル文字になってしまう。

これだと気持ち悪いし読み辛いしでどうしようもない。なのでチャチャッとググってみたら「多言語使うならbabelを使え!!」とのこと。しかし、このbabel、キリル文字に対応させた英字で打っていくと言うものでした。わざわざ対応覚えるのも面倒だし、こちとらru配列せっかく覚えたから使いたい。ということでキリル文字打ちの文章部分を対応する英字に変換していくシェルスクリプトを書いていこうと思う。今回も使用OSはArch Linux、使用するのはTexLive、下記URLで作成した環境であるものとする。

http://bobbyquine.hatenablog.com/entry/2018/01/26/001125

 

参考ページ

http://a011w.broada.jp/wbaefznh35st/latex/babel130.html

http://a011w.broada.jp/wbaefznh35st/latex/sample_babel_russian.pdf

 

 

その前に、

 

$ sudo pacman -S texlive-langcyrillic

 

キリル文字回りに必要なものを入れておく。

 

シェルスクリプト

http://a011w.broada.jp/wbaefznh35st/latex/sample_babel_russian.pdf

 こちらを参考にキリル文字を対応する英字に変換するシェルスクリプトを書いてく。

まぁご覧いただければわかるクソコードである。シェルスクリプト内のsed部分は面倒くさくなってシェル芸で書き揃えた。ついでに書いとくとシェル芸ばっかやってるとシェルスクリプトの細かい部分忘れてて結構手間取った。

※2018/10/9 追記: 下記シェルスクリプトに引用符"«"、"»"を追加。それぞれ"<<<<"、">>>>"で入力できるようにした。

 

以下ファイル内(filename = rulatex)--------------------------------------------------------------------------

 

#!/bin/bash

realtex=$(echo $1|sed "s/.tex/.dvi/")
mkdir /tmp/rulatex
cat $1|sed -e "s/<<<</«/g" -e "s/>>>>/»/g" -e "s/А/{A}/g" -e "s/а/{a}/g" -e "s/Б/{B}/g" -e "s/б/{b}/g" -e "s/В/{V}/g" -e "s/в/{v}/g" -e "s/Г/{G}/g" -e "s/г/{g}/g" -e "s/Д/{D}/g" -e "s/д/{d}/g" -e "s/Е/{E}/g" -e "s/е/{e}/g" -e "s/Ё/{E0}/g" -e "s/ё/{e0}/g" -e "s/Ж/{Z1}/g" -e "s/ж/{z1}/g" -e "s/З/{Z}/g" -e "s/з/{z}/g" -e "s/И/{I}/g" -e "s/и/{i}/g" -e "s/Й/{I0}/g" -e "s/й/{i0}/g" -e "s/К/{K}/g" -e "s/к/{k}/g" -e "s/Л/{L}/g" -e "s/л/{l}/g" -e "s/М/{M}/g" -e "s/м/{m}/g" -e "s/Н/{N}/g" -e "s/н/{n}/g" -e "s/О/{O}/g" -e "s/о/{o}/g" -e "s/П/{P}/g" -e "s/п/{p}/g" -e "s/Р/{R}/g" -e "s/р/{r}/g" -e "s/С/{S}/g" -e "s/с/{s}/g" -e "s/Т/{T}/g" -e "s/т/{t}/g" -e "s/У/{U}/g" -e "s/у/{u}/g" -e "s/Ф/{F}/g" -e "s/ф/{f}/g" -e "s/Х/{H}/g" -e "s/х/{h}/g" -e "s/Ц/{C}/g" -e "s/ц/{c}/g" -e "s/Ч/{Q}/g" -e "s/ч/{q}/g" -e "s/Ш/{X}/g" -e "s/ш/{x}/g" -e "s/Щ/{W}/g" -e "s/щ/{w}/g" -e "s/Ъ/{P2}/g" -e "s/ъ/{p2}/g" -e "s/Ы/{Y}/g" -e "s/ы/{y}/g" -e "s/Ь/{P1}/g" -e "s/ь/{p1}/g" -e "s/Э/{E1}/g" -e "s/э/{e1}/g" -e "s/Ю/{J2}/g" -e "s/ю/{j2}/g" -e "s/Я/{J1}/g" -e "s/я/{j1}/g" > /tmp/rulatex/$1

platex /tmp/rulatex/$1 << EOF

 

EOF
dvipdfmx $realtex

 

-----------------------------------------------------------------------------------------------------------------以上

 

 

いい加減コピペやめてちゃんとファイルとしてアップロードしたいもんだけれども、やりかたがよーわからんw。

 

さて、せっかくなのでコマンドとしてパス通しときましょ。

http://bobbyquine.hatenablog.com/entry/2018/03/24/164602

 

実際に書いてみる

まぁbabelについてはこの辺のページがわかりやすい

https://user.ecc.u-tokyo.ac.jp/users/user-15826/wiki/?TeX/Manual/Babel

 

とりあえずテストファイル置いとく。

 

以下ファイル内(filename = test.tex)------------------------------------------------------------------------

 

\documentclass[a4j]{jsarticle}
\title{Russian Test(\foreignlanguage{russian}{Русский язык})}
\author{BobbyQuine}
\usepackage[OT2,T1]{fontenc}
\usepackage[russian,japanese]{babel}
\begin{document}
\maketitle
\begin{otherlanguage}{russian}
\section{русский язык}

this is the test.

\foreignlanguage{russian}{Где ты?}


ロシア語

 

\selectlanguage{russian}
Я тебя не отдам

\end{document}

 

--------------------------------------------------------------------------------------------------------------------以上

 

 

作ったtest.texを作ったrulatexコマンドで試してみる。

 

$ rulatex test.tex

 

ちなみにtest.tex内の赤字は今回の重要ポイント的な部分。

 

\usepackage[OT2,T1]{fontenc}

キリル文字にはOT2というのが必要だが、T1も無いと英語が使えなくなる。正直僕もよく分かっちゃいない。

 

\usepackage[russian,japanese]{babel}

ここではbabelで使う言語の設定的な。正直メインがjapaneseなのでここでjapanese設定いるか分からん。

 

ドキュメント内でのロシア語の書き方は複数ある。

\begin{otherlanguage}{russian}

\end{otherlanguage}

で囲んだところに書く方法、

\selectlanguage{russian}

の後に書く方法、

\foreignlanguage{russian}{Где ты?}

のように書く方法である。

二つめの書き方では、次に\selectlanguageで言語を替えるまで適応される。

三つめの書き方は日本語文章中に少しロシア語単語を書きたいときなどに便利である。

 

正直書くの飽きてきたので今回はこの辺で。アクセント記号にも対応させたものをそのうち書くかも。皆さん、ロシア語を極めましょう。Пока!!