続・初めての ConTeXt Mark IV
前々回に、「初めての ConTeXt Mark IV」[id:munepi:20120408:context] を紹介しました。
その後、ZR さん経由で W32TeX 開発者である角藤さんからのお得情報を教えてくださいました。ZR さんの「ConTeXt で日本語する件について」 [id:zrbabbler:20120416:1334595982] で、そのお得情報が言及されていますので、合わせて参照ください。
欧文と和文のフォントを分ける
今日は、前々回に利用した simplefonts モジュールにおいて、欧文と和文のフォントを分けた例を紹介します。例文は、上記の ZR さんのところから、拝借しました。
%#!context hoge-t \mainlanguage[ja] \language[ja] \setscript[hanzi] \usemodule[simplefonts] %%D Default fonts (from t-simplefonts.tex) %\setmainfont [Latin Modern Roman] %\setsansfont [Latin Modern Sans] %\setmonofont [Latin Modern Mono][features=none] %\setmathfont [Latin Modern Math] %\sethandwritingfont [Latin Modern Roman] % neither handwritten nor calligraphic are available %\setcalligraphicfont[Latin Modern Roman] % for Latin Modern but I need a default font for them \setcjkmainfont[ipaexmincho] \setcjksansfont[ipaexgothic] \setcjkmonofont[ipaexgothic] \starttext \def\AboutConTeXtInJapanese{% \ConTeXt(この中の X は /ks/ と読む)は \TeX\ 上に構成された文書生成 システムである。 最新版の「MkIV(マーク4)」は \LuaTeX\ エンジンのみをサポートし、 「MkII(マーク2)」は \pdfTeX\ と \XeTeX\ をサポートする。 (\XeTeX\ に対して「MkIII」が計画されていたが結局作られなかった。)} \stoptext
上記の ConTeXt 文章を適当なファイル名で保存して、context でタイプセットすると、以下のようになります。
これで、欧文と和文のフォントをそれぞれ Latin Modern と IPA ex に指定できました。でも、普通の日本語組版としては程遠いですね :)
それは、またおいおいやっていきます。
形式的なフォント名
simplefonts モジュールを使ったときに、デフォルトで Latin Modern が指定されていました。ここでは、形式的なフォント名に対して、Latin Modern がどのような表示になるかを眺めてみます。
%#!context symbfnt-t \usemodule[simplefonts] %%D Default fonts (from t-simplefonts.tex) %\setmainfont [Latin Modern Roman] %\setsansfont [Latin Modern Sans] %\setmonofont [Latin Modern Mono][features=none] %\setmathfont [Latin Modern Math] %\sethandwritingfont [Latin Modern Roman] % neither handwritten nor calligraphic are available %\setcalligraphicfont[Latin Modern Roman] % for Latin Modern but I need a default font for them \starttext \def\PangramExample{% The quick brown fox jumps over the lazy dog.} \def\SymbolicFontTitle#1{% \leavevmode\framed[frame=off, bottomframe=on, topframe=on]{\vbox{#1}}} \startluacode symbfnt = { -- { name = "Blackboard", sty = "\\bbd", alt = "" }, -- Used by the \\bbd macro -- { name = "Calligraphic", sty = "\\cal", alt = "" }, -- Used by the \\cal macro -- { name = "Fraktur", sty = "\\frak", alt = "" }, -- Used by the \\frak macro -- { name = "Gothic", sty = "\\goth", alt = "" }, -- Used by the \\goth macro -- { name = "OldStyle", sty = "\\os", alt = "" }, -- Used by the \\os macro -- { name = "MPtxtfont", sty = "", alt = "" }, -- The default font for MetaPost { name = "Calligraphy", sty = "\\cg", alt = "\\tf" }, { name = "Handwriting", sty = "\\hw", alt = "\\tf" }, -- { name = "MathRoman", sty = "\\mm", alt = "\\mr" }, -- { name = "MathRomanBold", sty = "\\mm", alt = "\\mr\\bf" }, -- { name = "MathItalic", sty = "\\mm", alt = "\\mi" }, -- { name = "MathItalicBold", sty = "\\mm", alt = "\\mi\\bf" }, -- { name = "MathSymbol", sty = "\\mm", alt = "\\sy" }, -- { name = "MathSymbolBold", sty = "\\mm", alt = "\\sy\\bf" }, -- { name = "MathExtension", sty = "\\mm", alt = "\\ex" }, -- { name = "MathExtensionBold", sty = "\\mm", alt = "\\ex\\bf" }, -- { name = "MathAlpha", sty = "\\mm", alt = "\\ma" }, -- { name = "MathAlphaBold", sty = "\\mm", alt = "\\ma\\bf" }, -- { name = "MathBeta", sty = "\\mm", alt = "\\mb" }, -- { name = "MathBetaBold", sty = "\\mm", alt = "\\mb\\bf" }, -- { name = "MathGamma", sty = "\\mm", alt = "\\mc" }, -- { name = "MathGammaBold", sty = "\\mm", alt = "\\mc\\bf" }, -- { name = "MathDelta", sty = "\\mm", alt = "\\md" }, -- { name = "MathDeltaBold", sty = "\\mm", alt = "\\md\\bf" }, { name = "Mono", sty = "\\tt", alt = "\\tf" }, { name = "MonoBold", sty = "\\tt", alt = "\\bf" }, { name = "MonoItalic", sty = "\\tt", alt = "\\it" }, { name = "MonoBoldItalic", sty = "\\tt", alt = "\\bi" }, { name = "MonoSlanted", sty = "\\tt", alt = "\\sl" }, { name = "MonoBoldSlanted", sty = "\\tt", alt = "\\bs" }, { name = "MonoCaps", sty = "\\tt", alt = "\\sc" }, { name = "Sans", sty = "\\ss", alt = "\\tf" }, { name = "SansBold", sty = "\\ss", alt = "\\bf" }, { name = "SansItalic", sty = "\\ss", alt = "\\it" }, { name = "SansBoldItalic", sty = "\\ss", alt = "\\bi" }, { name = "SansSlanted", sty = "\\ss", alt = "\\sl" }, { name = "SansBoldSlanted", sty = "\\ss", alt = "\\bs" }, { name = "SansCaps", sty = "\\ss", alt = "\\sc" }, { name = "Serif", sty = "\\rm", alt = "\\tf" }, { name = "SerifBold", sty = "\\rm", alt = "\\bf" }, { name = "SerifItalic", sty = "\\rm", alt = "\\it" }, { name = "SerifBoldItalic", sty = "\\rm", alt = "\\bi" }, { name = "SerifSlanted", sty = "\\rm", alt = "\\sl" }, { name = "SerifBoldSlanted", sty = "\\rm", alt = "\\bs" }, { name = "SerifCaps", sty = "\\rm", alt = "\\sc" }, } for i = 1, table.getn(symbfnt) do mmode = string.match(symbfnt[i].name, "^Math") context("\\SymbolicFontTitle{") context(symbfnt[i].sty .. symbfnt[i].alt .. " " .. symbfnt[i].name) context("}") context.par() context(symbfnt[i].sty .. symbfnt[i].alt .. " \\PangramExample") context.par() context("\\vskip\\baselineskip") end \stopluacode \stoptext
上記の ConTeXt 文章を適当なファイル名で保存して、context でタイプセットすると、以下のようになります。
「アレ?変数 mmode とかあるけどー…」というツッコミは歓迎します :) こちらもそのうち、ネタとともにやりませう。
Lua コードの埋め込み方は、Programming in LuaTeX - ConTeXt wiki にも説明があります。\@tfor とかしなくてもいいんですよ(わら
今日は、ここまで。
さて、次回はー、日本語を考慮した体裁など、今日の続きの内容になりますか、もしくは、URW 基本 35 書体についてなにか記しておきましょうか。
いまさらやけど、URW基本35書体 URL って、Adobeフォントの代替として、十分すぐるなーと思い直した!さっき、 #TeXLive 2011で全35書体を並べてみて、グッと涙腺に込み上げてきた :) URL
2012-04-16 14:48:05 via web
あとで、URW基本35書体の拡張であるTeX-GYRE URL も、全書体並べて眺めてみよう。また、グッとくるかもしれないから :)
2012-04-16 14:49:49 via web
お腹が減ってきたので、ではでは。