2009/11/3

Xetex 排歌詞



試著用 xetex 排這首的歌詞。歌詞加上 LaTeX 的斷行記號最後一段提到簡單的解法,但是我也需要用到 ruby。ruby 簡單講就是標注拼音,wiki的解釋,如何標注拼音的方法看 LGJ 的介紹就有個概念了。


建立骨架


考慮到之後要重複利用,把歌詞本體和 latex 的設定分開,不過 latex 讀檔時看來是不允許有空白。

使用的檔案:

lyrics.tex
One_more_time_One_more_chance.txt

雖然說是先建立 lyrics.tex,實際上是兩者交互著處理,需要的功能都是一個個的加上去。


============================================================
1. 建立 lyrics.tex

lyrics.tex 的內容:

\documentclass[12pt,a4paper,twocolumn]{article}
\usepackage{xunicode}
\usepackage{xltxtra}

\usepackage[top=2cm,bottom=2cm,left=1.75cm,right=1.75cm]{ geometry } %邊界

\usepackage{setspace}
\doublespacing

\usepackage{xeCJK}
\setCJKmainfont{KFhimajiMONO} %日文字型
\setmainfont{KFhimajiMONO} %日文字型

\usepackage[CJK]{xeruby} %標示日文漢字拼音
\renewcommand\rubysize{0.6} %拼音的字型大小
\renewcommand\rubysep{-1ex} %?

\renewcommand{\~}{\nolinebreak} %重定義一個不會產生空白的不斷行指令
\setlength{\parindent}{0pt} %不縮排

\begin{document}
\input{One_more_time_One_more_chance.txt}
\end{document}

ruby 這個 package 使用時需依賴 CJK,可是我想用 xeCJK 該怎辦?
剛好找到這一篇 [XeTeX] Ruby Annotation using XeTex?

________________________________________________________
1.1 找到 ruby.sty

這東西其實就在 CJK 裡面,以我的例子是:C:\Program Files\MiKTeX 2.8\tex\latex\cjk。
________________________________________________________
1.2 修改 ruby.sty

%文中沒提到,但還是改一下好了...
%\ProvidesPackage{ruby}[\filedate\space\fileversion]
\ProvidesPackage{xeruby}[\filedate\space\fileversion]

%加了之後會跟 xeCJK 衝到,註解掉也是能動作
%\newcommand\CJKglue{\hskip \z@ \@plus .08\baselineskip}

%照著文中說明註解掉 :)
%\RequirePackage{CJK}[1996/11/20]
________________________________________________________
1.3 使用 xeruby

MikTeX 有一套自己管理 package 的方法,只是放在 CJK 裡不會被 xelatex 找到。MikTeX的FAQ 提到如何安裝自行修改後的 package,更詳細的說明裡提到有三種方法,因為第三種他寫 recommended,所以我用第三種。

============================================================
2. One_more_time_One_more_chance.txt

處理歌詞的部分主要有三件事,斷行、句中空白、拼音。前兩件用 regular expression 處理就好,拼音目前我只能一個個輸入...。

我用的 regular expression,編輯器使用 emeditor,emeditor 使用的 Regular Expression Syntax
斷行(加入Latex中的斷行符號):Find: (.)\n  Replace with: \1\\\\\n
句中空白(取代成"保留空白"):Find: (.)\ (.)  Replace with: \1~\2

One_more_time_One_more_chance.txt 的內容:

作詞:山崎将義/作曲:山崎将義\\
/唄:山崎まさよし\\

これ以上\ruby{何}{なに}を失えば~心は\ruby{許}{ゆる}されるの\\
どれ\ruby{程}{ほど}の痛みならば~もういちど君に会える\\
One~more~time~季節よ~うつろわないで\\
One~more~time~ふざけあった~時間よ\\

くいちがう\ruby{時}{とき}はいつも~僕が先に\ruby{折}{お}れたね\\
わがままな\ruby{性格}{せいかく}が~なおさら\ruby{愛}{いと}しくさせた\\
One~more~chance~記憶に\ruby{足}{あし}を取られて\\
One~more~chance~次の場所を選べない\\

いつでも\ruby{捜}{さが}しているよ~どっかに君の姿を\\
\ruby{向}{むか}いのホーム~\ruby{路地裏}{ろじうら}の窓\\
こんなとこにいるはずもないのに\\
願いがもしも叶うなら~今すぐ君のもとへ\\
できないことは~もうなにもない\\
すべてかけて抱きしめてみせるよ\\

寂しさ\ruby{紛}{まぎ}らすだけなら\\
誰でもいいはずなのに\\
星が落ちそうな夜だから\\
自分をいつわれない\\
One~more~time~季節よ~うつろわないで\\
One~more~time~ふざけあった時間よ\\

いつでも捜しているよ~どっかに君の\ruby{姿}{すがた}を\\
\ruby{交差点}{こうさてん}でも~夢の中でも\\
こんなとこにいるはずもないのに\\
\ruby{奇跡}{きせき}がもしも起こるなら\\
今すぐ君に見せたい\\
新しい朝~これからの僕\\
言えなかった「好き」という言葉も\\

夏の想い\ruby{出}{で}がまわる~ふいに消えた\ruby{鼓動}{こどう}\\
いつでも捜しているよ~どっかに君の姿を\\
明け\ruby{方}{がた}の街~\ruby{桜木町}{さくらぎちょう}で\\
こんなとこに来るはずもないのに\\
願いがもしも叶うなら~今すぐ君のもとへ\\
できないことはもう何もない\\
すべてかけて抱きしめてみせるよ\\

いつでも捜しているよ\\
どっかに君の\ruby{破片}{かけら}を\\
\ruby{旅先}{たびさき}の\ruby{店}{みせ}~~\ruby{新聞}{しんぶん}の\ruby{隅}{すみ}\\
こんなとこにあるはずもないのに\\
奇跡がもしも起こるなら\\
今すぐ君に見せたい\\
新しい朝~これからの僕\\
言えなかった「好き」という言葉も\\

いつでも捜してしまう~どっかに君の笑顔を\\
\ruby{急行}{きゅうこう}待ちの~\ruby{踏切}{ふみきり}あたり\\
こんなとこにいるはずもないのに\\
\ruby{命}{いのち}が繰り返すならば~何度も君のもとへ\\
欲しいものなど~もう何もない\\
君のほかに大切なものなど 

結果:One_more_time_One_more_chance.pdf

沒有留言:

張貼留言