% \iffalse meta comment % % Copyright (c) ING 1999-2006 % % \fi % % \iffalse %<*!fdl> %<*driver> \ProvidesFile{japanese.drv} % % %<*driver> \documentclass{ltxdoc} \setcounter{StandardModuleDepth}{1} \CodelineNumbered \MakeShortVerb{\|} \OnlyDescription \begin{document} \DocInput{japanese.dtx} \end{document} % % % \fi % % \parindent=1zw % \def\babel{{\sffamily babel}システム} % \title{Babel-Option {\sffamily japanese} \\ {\Large version 1.1}} % \author{Copyright \copyright 1999, 2006 ING} % \date{} % \maketitle % \baselineskip=15pt % \def\abstractname{概 要} % \begin{abstract} % {\sffamily japanese}パッケージは\babel{}の日本語オプションを定義 % したマクロ集です。現行の\babel{}には日本語オプションが定義されて % いないので,本パッケージでは |\usepackage{japanese}|でjapanese.ldt % ファイルを読み込んでいます。 % \end{abstract} % % \section*{japanese.ldf} % % japanese.ldfは,見出し語と日付を日本語で出力するためのマクロを % 定義したファイル(languagedefinition file)です。 % % \DescribeMacro{\LdfInit} % |\LdfInit|マクロはjapanese.ldfを二重に読み込まないように防止します。 % \begin{macrocode} %<*ldf> \LdfInit{japanese}\captionsjapanese % \end{macrocode} % \DescribeMacro{\l@japanese} % 次に,|\l@japanese|コマンドが定義されているか否かを判断します。 % 定義されていれば,\babel{}は日本語用に指定したハイフネーションパターンを % 読み込みます。 % \DescribeMacro{\adddialect} % 定義されていなければ |\adddialect|で,デフォルトの言語番号0の(language.dat % で最初に指定した言語,通常は英語)パターンを読み込みます。 % % \babel{}には |\addlanguage{|{\itshape language}|}|マクロがあり,新しい % 言語{\itshape language}を定義するのに使われます。そこで,このマクロを % 定義しておけば,日本語用に外国語のハイフネーションパターンを読み込ま % なくても,見出し語と日付を切り替えて使うことができます。しかし,他の言語 % との互換性,および自動ハイフン機能が働かないため,overfullが続出するので, % 何れかの言語用ハイフネーションパターンを読み込んでおきます。 % % {\sffamily japanese}パッケージでは,language.datで英語用ハイフネーション % パターンを読み込むことで |\l@|{\itshape lang}コマンド,つま % り |\l@japanese|を定義しています。 % \begin{macrocode} \ifx\l@japanese\@undefined \@nopatterns{Japanese} \adddialect\l@japanese0\fi % \end{macrocode} % \DescribeMacro{\captionsjapanese} % |\captionsjapanese|マクロは\LaTeX{}の標準のクラスファイルで使われる % 見出し語を日本語で出力します。 % \begin{macrocode} \addto\captionsjapanese{% \def\prefacename{前 書 き}% \def\refname{参考文献}% \def\abstractname{概 要}% \def\bibname{関連図書}% \def\chaptername{第\protect\@Jchp 章}% \def\@Jchp{\thechapter\def\thechapter{}}% \def\appendixname{付 録}% \def\contentsname{目 次}% \def\listfigurename{図 目 次}% \def\listtablename{表 目 次}% \def\indexname{索 引}% \def\figurename{図}% \def\tablename{表}% \def\partname{第\protect\@Jpt 部}% \def\@Jpt{\thepart\def\thepart{}}}% % \end{macrocode} % \DescribeMacro{\datejapanese} % |\datejapanese|マクロは日本語で日付を出力するように |\today|コマンドを % 再定義します。デフォルトの出力は西暦(「1999年1月10日」の形式)です。 % 年月日と数字の間には通常のスペースが入ります。 % \begin{macrocode} \def\datejapanese{% \newif\if西暦 \西暦true% \def\西暦{\西暦true}% \def\和歴{\西暦false}% \def\today{% \if西暦% \number\year 年\nobreak \number\month 月\nobreak \number\day 日% \else \@tempcnta\year% \advance\@tempcnta-1988 平成% \ifnum \@tempcnta =1 元\else\number\@tempcnta\fi% 年\nobreak \number\month 月\nobreak\number\day 日\fi}} % \end{macrocode} % \DescribeMacro{\extrasjapanese} % |\extrasjapanese|マクロの引数には,日本語による組版上の規則に,特別な % 定義を追加することができます。|\nonextrasjapanese|マクロは追加した定義を % \DescribeMacro{\nonextrasjapanese} % キャンセルします。現在は必要がないので引数は空です。 % \begin{macrocode} \addto\extrasjapanese{} \addto\noextrasjapanese{} \ldf@finish{japanese} % % \end{macrocode} % % \section*{japanese.sty} % % japanese.styはjapanese.ldfを読み込むためのパッケージファイルです。 % \begin{macrocode} %<+package>\ifx\Ldfinit\@undefined %<+package>\def\Ldfinit{% %<+package> \chardef\atcatcode=\catcode`\@ %<+package> \catcode`\@=11\relax %<+package> \input babel.def\relax %<+package> \catcode`\@=\atcatcode \let\atcatcode\relax %<+package> \Ldfinit}\fi %<+package>\input japanese.ldf\relax % \end{macrocode} % % \section*{langxmpl.dat} % % langxmpl.datはINI\TeX{}で各言語用ハイフネーションパターンの % 読み込みを制御するlanguage.datのサンプルです。 % % \begin{macrocode} %<+dat>%% langxmpl.datをlanguage.datとリネームしてお使いください。 %<+dat>%% \endinputの行は削除してください。 %<+dat>%% %<+dat>=USenglish %<+dat>%%american ushyphen.tex %<+dat>%%ukhyphen.texはhyphen.texをリネームしたものです。 %<+dat>english ukhyphen.tex %<+dat>=UKenglish %<+dat>=british %<+dat>%%french fhyph.tex %<+dat>%%pTeX 2.1.5ではCTAN:/digests/tugboat/germanhy.texを使います。 %<+dat>%%german germanhy.tex %<+dat>japanese ukhyphen.tex %<+dat>%%次の1行は<必ず>削除してください。 % \end{macrocode} % \rightline{1999年1月} % \rightline{ING $<$t-ing@tbh.t-com.ne.jp$>$} % % \StopEventually{} % % \begin{macrocode} %<*readme> \documentclass{jarticle} \def\babel{\textsf{babel}システム} \def\japanese{\textsf{japanese}パッケージ} \begin{document} \title{Babel-Option {\sffamily japanese} \\ {\Large version 1.0}} \author{Copyright \copyright 1999 ING} \date{} \maketitle \section*{概要} japaneseパッケージは \babel{}の日本語オプションを定義したマクロ集です。 以下のファイを含んでいます。 \begin{quote} \begin{tabular}{l@{: }l} japanese.ldf & 日本語定義ファイル \\ japanese.sty & japanese.ldfを読み込むスタイルファイル \\ japanese.drv & japanese.dtxを文書化するためのドライバファイル \\ langxmpl.dat & language.datのサンプル \\ readme.tex & このファイル \\ sample.tex & \verb+\iflanguage+と \verb+\selectlanguage+の使用例 \end{tabular} \end{quote} \babel{}には japaneseオプションが定義されていません。そこで,japanese.styと ハイフネーションパターンを読み込んで「言語japanese」を \babel{}に追加します。 \section*{インストール} インストールは次の2段階です。 \begin{enumerate} \item ハイフネーションパターンをフォーマットファイルに読み込む。 \item japanese.styを読み込む。 \end{enumerate} 日本語にはハイフネーション処理がありません。しかし,何らかの ハイフネーションパターンをフォーマットファイルに読み込んでおかなければ, 欧文単語の自動ハイフン処理は行われずOverfullになります。 また,\verb+\iflanguage+コマンドで,現在どの言語がアクティブなのかを 調べることができません。 ここでは無難に,英語のハイフネーションパターンをフォーマットファイルに 読み込んでおくことをお勧めします。なお,英語のハイフネーションパターンは, \LaTeX{}の配布パッケージに含まれているhyphen.texをリネーム\footnote{% 厳密に言えば,米語と英語のハイフネーションは異なります。ここでは便宜的に 両者を同一のものとして扱っています。}して読み込みます。 langxmpl.datを参照してください。(注意:\LaTeX{}の配布パッケージに含まれ ているhyphen.cfgをphyphen.cfgなどのようにリネームしておいてください。) \japanese{}ではbabelのオプションで \verb+japanese+を指定するのではなく, japanese.styを単独で読み込みます。 この場合デフォルトの言語は日本語です。 \begin{quote}\small\begin{verbatim} \documentclass{jreport} \usepackage[...,english,...]{babel} \usepackage{japanese} \begin{document} 本文 \end{document} \end{verbatim}\end{quote} \section*{備考} \babel{}がサポートする他の言語と同じ使い方をするときは,babel.styを 修正します。babel.styをmybabel.styなどにコピーして,それに次の1行を 追加します。 \begin{quote} \verb+\DeclareOption{japanese}{\input{japanese.ldf}}+ \end{quote} 使い方の例を示します。デフォルトの言語は,オプションで最後に指定した 言語になります。 \begin{quote}\small\begin{verbatim} \documentclass{jreport} \usepackage[english,japanese,...]{mybabel} \begin{document} 本文 \end{document} \end{verbatim}\end{quote} ここで改変したmybabel.styは個人的な使用に止めてください。 \section*{謝辞} Babel-Option {\sffamily japanese}の作成に当って,バグフィックスや改良案を ご提案いただいた方に感謝します。 bookworm $<$BYV01204$>$さんから,新しい言語を定義し,それに固有の 言語番号を付けるマクロ \verb+\addlanguage+の機能について,詳しい 解説をいただきました。本パッケージでは採用していませんが,\babel{} の言語切り替え機能を理解する上でたいへん参考になりました。 Tony $<$PAG01322$>$さんから,キャプションと日付の定義について ご提案をいただきました。 大石勝 $<$DZH00446$>$さんから,初版に含まれていた \verb+\ifx\undefined+ のバグをご指摘いただきました。 \section*{COPYRIGHT NOTICE} This package is free software that can be redistributed and/or modified under the terms of the \LaTeX{} Project Public License as specified in the file \texttt{macros/latex/base/lppl.txt} on any CTAN archive server, such as \texttt{http:/ring.wakwak.com/pub/text/CTAN/}. \section*{変更履歴} 日付の定義に初歩的なミスがあったのを修正しました。(2005年2月) \bigskip \rightline{2005年2月} \rightline{ING $<$t-ing@tbh.t-com.ne.jp$>$} \end{document} % % \end{macrocode} % % \begin{macrocode} %<*sample> \documentclass{report} \usepackage[german,english]{babel} \usepackage{japanese} \makeatletter \def\tbcaption{\def\@captype{table}\caption} \makeatother \def\yes{--- はい。今日は\today です。 \tbcaption{キャプションの例}} \def\no{--- いいえ} \def\TEXT{Textverarbeitung mit einem Rechner kann in vielf\"altiger Weise erfolgen. Eigenschaften und Leistungsf\"ahigkeit sind hierbei weniger vom jeweiligen Rechnertype, sondern vielmehr vom verwendeten \textit{Textverarbeitungsprogramm} bestimmt.} \def\se{\selectlanguage{english}} \def\sj{\selectlanguage{japanese}} \def\sg{\selectlanguage{german}} \setlength{\textheight}{23cm} \begin{document} \se \chapter{babel} 最初は英語だったはずだが.... (languageの値は\the\language) \bigskip \TEXT ここは英語? \iflanguage{english}{\yes}{\no}\par -- --ドイツ語? \iflanguage{german}{\yes}{\no}\par -- --日本語? \iflanguage{japanese}{\yes}{\no} \sj \begin{flushright} (ここで日本語に変更する。languageの値は\the\language) \end{flushright} \TEXT 変だな,ここは英語? \iflanguage{english}{\yes}{\no}\par -- --ドイツ語? \iflanguage{german}{\yes}{\no}\par -- --日本語? \iflanguage{japanese}{\yes}{\no} \sg \begin{flushright} (ここでドイツ語に変更する。languageの値は\the\language) \end{flushright} \TEXT わからなくなった,ここは英語? \iflanguage{english}{\yes}{\no}\par -- --ドイツ語? \iflanguage{german}{\yes}{\no}\par -- --日本語? \iflanguage{japanese}{\yes}% {\no \sj} それなら日本語にしよう。languageの値は\the\language\tbcaption{\today} \end{document} % % \end{macrocode> % % \Finale