upTeX, upLaTeX --- 内部unicode版 pTeX, pLaTeX ã®å®Ÿè£… 2025.01.03 Ver2.00 TANAKA, Takuji ttk(at)t-lab(dot)opal(dot)ne(dot)jp â—‡ upTeX開発ã®ãらㄠupTeX Ver0.02 〜 Ver1.35 ASCII pTeX/pLaTeXã¯ã€é«˜å“質ã®æ—¥æœ¬èªžçµ„版ソフトウェアã¨ã—ã¦ã€ã„ã㤠ã‹ã‚ã‚‹TeXã®æ—¥æœ¬èªžåŒ–ã®ä¸ã§ã‚‚デファクトスタンダードã®åœ°ä½ã«ã‚る。縦組 ã®æ©Ÿèƒ½ã‚„日本語組版ã®å“質ã¯ã‚‚ã¨ã‚ˆã‚Šã€ä¿¡é ¼æ€§ã®é«˜ã•ã‚„周辺ソフトウェア㮠充実ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼å±¤ã®åŽšã•ãªã©ã€å¤šãã®ç‚¹ã§åœ§å€’çš„ãªé…力ãŒã‚る。ã—ã‹ã—ã€ç›´ 接使ãˆã‚‹æ–‡å—集åˆã¯ã€åŽŸå‰‡çš„ã«JIS X 0208(JIS第1,2水準)ã®ç¯„囲ã«é™å®šã•ã‚Œ ã¦ã„る。例ãˆã°ä¸¸ä»˜ãæ•°å—ãªã©ã¯ã€ã€Œæ©Ÿç¨®ä¾å˜æ–‡å—ãªã®ã§ä½¿ãˆã¾ã›ã‚“ã€ã¨ã„ ã†ã“ã¨ã«ãªã£ã¦ã„る。ãã®ä¸€æ–¹ã€æ˜¨ä»Šã®ã‚³ãƒ³ãƒ”ュータ周辺ã®ç’°å¢ƒã§ã¯ã€ JIS2004ã“ã¨JIS X 0213(第3,4æ°´æº–ã‚’è¿½åŠ )ã‚„ã€Unicodeã€Adobe-Japan1-6㮠よã†ãªå…¬çš„/ç§çš„ãªè¦æ ¼ã€Machintoshæ載ã®ãƒ’ラギノã€Windowsæ載ã®MS明æœã€ Acrobatã«æ·»ä»˜ã®å°å¡šæ˜Žæœãªã©ã€JIS第1,2水準を超ãˆã‚‹ç¯„囲ã®æ–‡å—を容易㫠利用å¯èƒ½ãªç’°å¢ƒã¯ã©ã‚“ã©ã‚“æ•´ã£ã¦ããŸã€‚ã‚‚ã¯ã‚„ã€JIS第1,2水準ã§æˆ‘æ…¢ã—ã¦ã„ ã‚‹ã®ã¯ã¤ã¾ã‚‰ãªã„。機種ä¾å˜æ–‡å—ã¯ä½¿ãˆã¾ã›ã‚“ã¨ã„ã£ã¦æ¸ˆã¾ã™ã“ã¨ãŒã§ãã‚‹ よã†ãªæ™‚代ã§ã¯ãªã„ã®ã§ã‚る。 ã“れを克æœã™ã‚‹åŠªåŠ›ã‚‚繰り広ã’られã¦ããŸã€‚ãã®ã²ã¨ã¤ã«UTF/OTFパッケー ジãŒã‚る。巨大ãªvirtual fontã«å¤šåˆ†å‰²ã™ã‚‹æ–¹æ³•ã§å·§å¦™ã«pTeXã®ç‹ã„æ–‡å—空 é–“ã‚’ã‹ã„ããã‚Šã€Unicodeã‚„Adobe-Japan1-6ã¨ã„ã£ãŸå¤§æ–‡å—集åˆã‚’利用ã§ãã‚‹ よã†ã«ã—ãŸåŠŸç¸¾ã¯å¤§ãã„。ã—ã‹ã—ã€ãƒžã‚¯ãƒãƒ™ãƒ¼ã‚¹ã§ã‚ã‚Šã€ç›´æŽ¥æ–‡å—入力ã™ã‚‹ ã“ã¨ã‚‚ã§ããªã„ã—aux, logãªã©ã«ç›´æŽ¥æ–‡å—ã¨ã—ã¦å‡ºåŠ›ã™ã‚‹ã“ã¨ã‚‚ã§ããªã„㪠ã©ã€åˆ¶é™äº‹é …も多ã„。Utf82TeXã§ã¯ã€ãƒ—リプãƒã‚»ãƒƒã‚µã‚’利用ã™ã‚‹ã“ã¨ã§ã€ UTF/OTFパッケージã®å…¥åŠ›ã®ç¹é›‘ã•ã‚’å…‹æœã—ã¦ã„ã‚‹ãŒã€å†…部ã¯pTeXã§ã‚ã‚‹ã“㨠ã«å¤‰ã‚ã‚Šãªã制é™äº‹é …を完全ã«å…‹æœã§ããŸã‚ã‘ã§ã¯ãªã„。ptex-utf8, platex-utf8 ã¯ã€pTeX入力ã®UTF-8化ã®å¤§ããªä¸€æ©ã§ã‚ã‚‹ã—ã€^^ab化ãªã©ã® 工夫ã§\inputenc{utf8}ã¨ã®è¦ªå’Œæ€§ãŒå‘上ã—ã¦ã¯ã„ã‚‹ã‚‚ã®ã®ã€æ—¥æœ¬èªžã®åŸºæœ¬ 部分ã¯ã‚„ã¯ã‚ŠJIS X 0208ã®ç¯„囲ã«ç•™ã¾ã£ã¦ã„る。ã„ãšã‚Œã®ã‚¢ãƒ—ãƒãƒ¼ãƒã‚‚〠JIS第1,2水準外ã®ç¾ä»£ã®æ–°ã—ã„標準を普通ã®æ–‡å—ã¨ã—ã¦ç›´æŽ¥æ™®é€šã«ä½¿ãˆã‚‹ã‚ˆ ã†ã«ãªã‚‹ã¾ã§ã«ã¯è‡³ã£ã¦ã„ãªã„。Omega/lambda, XeTeXãªã©TeXã®Unicodeæ‹¡ å¼µã¯ã‚ã‚‹ã‚‚ã®ã®ã€æ—¥æœ¬èªžã®çµ„版å“質ã®ç¹Šç´°ãªéƒ¨åˆ†ã¾ã§è¡Œã届ã„ã¦ã„ã‚‹ã¨ã¯è¨€ ã„ãŒãŸã„よã†ã§ã‚ã‚‹ã—ã€ãƒžã‚¯ãƒé¡žã®å……実ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼å±¤ã®åŽšã•ã‚„å‚考書ã®å¤šã• ãªã©ã‚’å«ã‚ãŸç’°å¢ƒæ•´å‚™ã¯ã¾ã ã¾ã ã§ã‚る。 pTeXã«ã‚‚弱味ã¯ã‚る。å‰è¿°ã®æ–‡å—集åˆã®å•é¡Œä»¥å¤–ã«ã‚‚ã€äºŒç‚¹æŒ™ã’ã¦ã¿ã‚ˆã†ã€‚ 一ã¤ã¯ã€8bitã®éžè‹±èªžæ¬§æ–‡ã¨ã®è¦ªå’Œæ€§ã§ã‚る。もã¨ã‚‚ã¨pTeXã¯ã€8bitç›®ãŒç«‹ ã£ãŸæ–‡å—コードãŒEUCã‚„Shift_JISã®ãƒ‘ターンã«ãƒžãƒƒãƒã™ã‚‹ã¨ã€å’Œæ–‡å‡¦ç†ã«å›ž ã™ã€‚ãã®å‹•ä½œãŒå›ºå®šã•ã‚Œã¦ã„ã‚‹ãŸã‚ã«ã€8bitを使ã†ã‚ˆã†ãªæ—¥æœ¬èªžä»¥å¤–ã®æ–‡å— コードãŒç›´æŽ¥å‡¦ç†ã§ããªã„。近年ã®pTeX+babelã¯ã€ãã®å‹•ä½œã‚’ã‹ã„ããã‚‹å·¥ 夫をè¦ã—ã¦ãŠã‚Šã€å˜ç´”ã¨ã¯è¨€ã„ãŒãŸã„上ã«8bit欧文ã®ç›´æŽ¥å‡¦ç†ã‚‚困難ã§ã‚る。 ã‚‚ã†ä¸€ã¤ã¯ã€pTeXã®åˆ©ç”¨ãŒæ—¥æœ¬èªžã«é™ã‚‰ã‚Œã¦ã„ã‚‹ã“ã¨ã§ã‚る。ä¸å›½èªž/韓国 語ã¨ã®æ··æ¤ã¯ã€UTF/OTFパッケージã§å¯èƒ½ã«ãªã£ãŸã¨ã¯ã„ãˆã€ãƒžã‚¯ãƒãƒ™ãƒ¼ã‚¹ã® ä¸ä¾¿ã•ã¯å¦ã‚ãªã„。Unicode時代ã«ã‚ã£ã¦ã€ãƒãƒ¼ã‚«ãƒ«ãªã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯å›½éš›çš„ ãªãƒ‡ã‚£ã‚¹ãƒˆãƒªãƒ“ューションã®ä¸ã§obsolete扱ã„ã‚’å—ã‘るよã†ã«ãªã£ã¦ããŸã¨ èžã。pTeX内部ã®å‹•ä½œã‚’よã見るã¨ã€ä¸å›½èªž/韓国語をå«ã‚“ã I18Nã‚’æ–½ã™ã“㨠ã¯ã•ã»ã©é›£ã—ããªã„よã†ã«æ€ãˆã‚‹ãŒã€å®Ÿéš›ã«ãã†ã—ãŸè©±ã¯èžã„ãŸã“ã¨ãŒãªã„ ã®ã¯å®Ÿã«ã‚‚ã£ãŸã„ãªã„ã“ã¨ã§ã‚る。日ä¸éŸ“(CJK)æ··æ¤ã¨ã„ã†é¢ã§ã¯CJK-latex ã®ã‚ˆã†ãªãƒžã‚¯ãƒãƒ™ãƒ¼ã‚¹ã®ã‚¢ãƒ—ãƒãƒ¼ãƒã‚‚ã‚ã‚‹ãŒã€å’Œæ–‡ã®çµ„版å“質やå„種制é™ã® 多ã•ã¯å•é¡Œã§ã‚る。pTeXã§CJKã®æ–‡å—を直接扱ã†ã‚ˆã†ãªæ‹¡å¼µæ³•ã®æ–¹ãŒé¥ã‹ã«ã‚ˆ ã„解ã¨ãªã‚‹ã“ã¨ã¯é–“é•ã„ãªã„。 本upTeXã®ç›®æ¨™ã¯ã€pTeXã®åˆ©ç‚¹ã‚’ãã®ã¾ã¾å—ã‘継ãŽã¤ã¤ã€ä¸Šè¨˜ä¸‰ã¤ã®å¼±ç‚¹ ã‚’å…‹æœã—ãŸpTeXã®ç„¡ç†ã®ãªã„自然ãªæ‹¡å¼µã«ã‚ˆã‚Šã€æ–°æ™‚代ã®æ—¥æœ¬èªž(+æ±ã‚¢ã‚¸ã‚¢) 標準TeXã®åœ°ä½ã‚’目指ã™ã“ã¨ã«ã‚る。文å—集åˆã®é¢ã§ã¯ã€pTeXã®å’Œæ–‡ãŒJIS X 0208ã®ç¯„囲ã ã£ãŸã®ã«å¯¾ã—ã€upTeXã§ã¯å†…部コードをUnicode化ã—ãã®ä¸ã® CJKã®ãƒ¬ãƒ‘ートリーã®ç¯„囲を和文ã®çµ„版ã«åˆ©ç”¨ã™ã‚‹ã€‚8bit欧文ã¨ã®è¦ªå’Œæ€§ã® é¢ã§ã¯ã€ãƒ—リミティヴã®æŒ‡å®šã«ã‚ˆã‚Šã€å’Œæ–‡/欧文ã®åˆ‡æ›¿ãˆã‚’å¯èƒ½ã«ã™ã‚‹ã€‚国 際化ã®é¢ã§ã¯ã€pTeXã§ã¯æ—¥æœ¬èªžé™å®šã ã£ãŸã®ã«å¯¾ã—ã€upTeXã§ã¯Unicode化㫠よりä¸å›½èªž/韓国語を強化ã™ã‚‹ã€‚ã“れらã®æ‹¡å¼µã«ã‚ˆã‚Šã€å…¨ä¸–界制覇ã¯ç„¡ç†ã« ã—ã¦ã‚‚æ±ã‚¢ã‚¸ã‚¢(CJK)標準TeXã®åœ°ä½ã«è¿‘付ããŸã„。ãã“ã¾ã§ã„ã‘ã‚Œã°ã€ä¸éŸ“ ã®TeXユーザーや開発者ã®æ–¹ã€…ã‚‚ã“ã®æ‹¡å¼µç‰ˆpTeXã®åˆ©ç”¨ç’°å¢ƒã®ã•ã‚‰ãªã‚‹æ”¹å–„ ã«åŠ›ã«ãªã£ã¦ãれるã‹ã‚‚ã—ã‚Œãªã„。壮大ãªç›®æ¨™ã§ã¯ã‚ã‚‹ãŒã€åœŸå°ã®pTeXã®ç”³ ã—分ã®ãªã„高ã¿ã‚’出発点ã¨ã—ã¦ã€ç„¡ç†ã®ãªã„自然ãªæ‹¡å¼µã‚’ç€å®Ÿã«è¡Œã£ã¦ã„ã‘ ã°ã€æˆæžœã‚’出ã—ã¤ã¤ç›®æ¨™ã«è¿‘ã¥ã‘ã‚‹ã§ã‚ã‚ã†ã¨ç›®è«–ã‚“ã§ã„る。 â—‡ upTeX開発ã®ãらㄠupTeX Ver2.00 〜 upTeX/upLaTeX Ver1.xx ã¯ã€2007å¹´ã®é–‹ç™ºé–‹å§‹ä»¥æ¥ã€ç§è‡ªèº«ã®ä½œæ¥ã« åŠ ãˆå¤šãã®æ–¹ã®ã”å”力を得ã¦æ©Ÿèƒ½è¿½åŠ や周辺環境ã®å……実ã€ä¸å…·åˆã®ä¿®æ£ãŒç¶™ç¶š ã—ã€ãŠè”様ã§ãƒ¦ãƒ¼ã‚¶ãƒ¼å„ä½ã®å¹…広ã„支æŒã‚’å—ã‘ã‚‹ã“ã¨ãŒã§ããŸã€‚TeX Liveã® é…布ã«ã‚‚åŽéŒ²ã—ã¦ã„ãŸã ã‘るよã†ã«ãªã‚Šã€å½“åˆã®ç›®æ¨™ã ã£ãŸpTeX/pLaTeX㮠自然ãªUnicodeæ‹¡å¼µã«ã‚ˆã‚‹å’Œæ–‡+CJKã®å……実ã¨ã€ã•ã‚‰ã«ã€æ—¥æœ¬èªž(+æ±ã‚¢ã‚¸ã‚¢) 標準TeXã®ä¸ã®ä¸€ã¤ã¨ã—ã¦åœ°ä½ã‚’å ã‚ã‚‹ã¨ã“ã‚ã¾ã§é”æˆã§ããŸã‚ˆã†ã«æ€ã†ã€‚ 関係å„ä½ã«å¾¡ç¤¼ã‚’申ã—上ã’る。 一方ã€2007å¹´ã®é–‹ç™ºå½“時を振り返ã£ã¦ã¿ã‚‹ã¨ã€XeTeXã‚„LuaTeXã®å°é 㯠予想ã§ããŸã‚‚ã®ã®ã€8bit欧文LaTeX(pdfLaTeX)ã¾ã§ã‚‚Unicode化ãŒé€²å±•ã— è¦å®šã®æ–‡å—コードãŒUTF-8ã«ãªã‚‹ã¨ã“ã‚ã¾ã§ã¯æƒ³åƒãŒé›£ã—ã‹ã£ãŸã€‚ upTeX/upLaTeXã¯ä»Šã¾ã§æ¬§æ–‡ã®å‡¦ç†ã¯Knuth TeX以æ¥ã®ä¼çµ±çš„ãª8bit㮠範囲ã«ã¨ã©ã‚ã¦ã„ãŸãŒã€ä»Šã¨ãªã£ã¦ã¯å’Œæ–‡(ã¾ãŸã¯CJK)ã¨ã®2階建ã¦æ§‹é€ ㌠複雑ã§ã‚ã‹ã‚Šã«ãã„上ã€XeLaTeXã‚„LuaLaTeXã®Unicodeã‚’å‰æã¨ã—ãŸå‡¦ç† ã¨upLaTeXã®æ¬§æ–‡8bit部分ãŒé¦´æŸ“ã¾ãšã«è‹¦åŠ´ã™ã‚‹ã“ã¨ãŒå¢—ãˆã¦ããŸã€‚ãã® çµæžœLaTeXã®é€²åŒ–ã«ã¤ã„ã¦ã„ã‘ãªã„ã ã‘ã§ãªãupLaTeXãã®ã‚‚ã®ã®å˜ç¶šã‚’ å±ã¶ã‚€å£°ã‚‚出ã¦ãã¦ã„る。 ãã“ã§ã€upTeX/upLaTeXãŒæ¬§æ–‡16bitを扱ãˆã‚‹ã‚ˆã†ã«ãªã‚Šå’Œæ–‡ã¨æ¬§æ–‡ã® ã©ã¡ã‚‰ã‚‚「Unicode 1æ–‡å—1トークンã€ã§æ‰±ãˆã‚‹ã‚ˆã†ã«ãªã‚Œã°ã€ãã®ã‚ˆã†ãª å±æ©Ÿçš„状æ³ã‚’回é¿ã™ã‚‹éµã«ãªã‚Šãã†ã 。ãれもã€å…·ä½“çš„ã«ã¯kcatcodeã® æ‹¡å¼µã«ã‚ˆã‚‹è¿½åŠ オプションã¨ã—ã¦ã€å¾“æ¥ã®æ¬§æ–‡8bit動作ã¸ã®å‰¯ä½œç”¨ãªã—㫠実装ã§ããã†ã 。 ã—ãŒã‚‰ã¿ã®ã‚るソフトウェアã®å»¶å‘½æŽªç½®ã®ãらã„ãŒã‚ã‚‹ã“ã¨ã¯å¦ã‚ãªã„ãŒã€ pTeX/pLaTeX系列ã®Unicode版後継者ã¨ã—ã¦ã®å½¹å‰²ã‚’ã“ã‚Œã‹ã‚‰ã‚‚引ã続ã æ‹…ã£ã¦ã„ãã“ã¨ã‚’目指ã—ãŸã„。 â—‡ 主ãªé–‹ç™ºæ–¹é‡ <0> pTeX ã®åŸºæœ¬çš„ãªæ©Ÿèƒ½ã¯ãã®ã¾ã¾ã§ã€å†…部ã®å’Œæ–‡å‡¦ç†ã‚’ EUC/SJIS ã‹ã‚‰ Unicode ã«å¤‰æ›´ã™ã‚‹ã€‚ jfm ã®ä½¿ç”¨ã€dvi命令(255)ã®æ‹¡å¼µãªã©ã€pTeX 独自ã®ç‰¹æ®Šãªæ‹¡å¼µã‚„ 組版ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ç‰ã¯ä¸€åˆ‡ã•ã‚らãšã«ã€ãã®ã¾ã¾å—ã‘継ã。 ã“ã®ãŸã‚ã€dviware ãªã©ã¯ pTeX 用拡張ã¨ã»ã¼åŒç‰ã®ç‰¹æ®Šå‡¦ç†ãŒè¦ã‚‹ã€‚ 欧文用 dviware ã§ã¯å¯¾å¿œã§ããªã„å ´åˆãŒã‚る点ã§ã¯ pTeX ã¨åŒã˜ã€‚ <1> Unicode 化ã«ãŠã„ã¦ã¯ã€pTeX ã®è‡ªç„¶ãªæ‹¡å¼µã‚’è¡Œã„〠pTeX ã®ã„ãã¤ã‹ã®å¼±ç‚¹ã‚’å…‹æœã™ã‚‹ã€‚ ã“ã®ç‚¹ã«ãŠã„ã¦ã€å¿…è¦ãªã‚‰ pTeX ã‹ã‚‰ã®æ”¹é€ é‡ãŒå¤šå°‘増ãˆã‚‹ã®ã¯åŽã‚ãªã„。 <2> pTeX ã¨ã®äº’æ›æ€§ã¯å‡ºæ¥ã‚‹ã ã‘ç¶æŒã™ã‚‹åŠªåŠ›ã‚’ã™ã‚‹ã€‚ãã®ä¸€æ–¹ã€ Unicode ã®æ–‡å—集åˆã‚„æ§‹é€ ã‚’å‰æã¨ã—ã¦è¦‹ãŸã¨ãã«ã‚ã¾ã‚Šã«ä¸è‡ªç„¶ãªéƒ¨åˆ†ã¯ã€ 互æ›æ€§ã®ç¶æŒã‚’ã‚ãらã‚る。 例ãˆã°ã€kcatcode ã® default 値〠kcatcode ã®åˆ‡æ›¿ãˆã®ãƒ–ãƒãƒƒã‚¯ã®å˜ä½ãªã©ã€‚ <3> 8bit 欧文コードã®å‡¦ç†ãŒå¯èƒ½ã«ãªã‚‹ã‚ˆã†ã€å’Œæ–‡/欧文ã®åˆ‡æ›¿ãˆç”¨ã® プリミティヴを拡張ã€æ–°è¨ã™ã‚‹ã€‚ pTeX ã§ã¯æ¥µã‚ã¦é™å®šçš„ã ã£ãŸã€æ¬§æ–‡ Babel ã¨ã®æ•´åˆæ€§ãŒå‘上ã™ã‚‹ã€‚ 内部 Unicode 化を本当ã«è¡Œã£ã¦ã„ã‚‹ã®ã¯ CJKトークンã ã‘ã§ã‚り〠欧文部分ã¯ã‚ªãƒªã‚¸ãƒŠãƒ«ã®æ¬§æ–‡ TeX ã¨åŒç‰ã§ã‚る。 pTeX ã‹ã‚‰è¦‹ã‚‹ã¨æ¬§æ–‡éƒ¨åˆ†ã®æ©Ÿèƒ½ãŒå‘上ã—ã¦ã„るよã†ã«è¦‹ãˆã‚‹ãŒã€ 欧文 TeX ã‹ã‚‰è¦‹ã‚‹ã¨ pTeX ãŒæ¬§æ–‡ TeX ã®æ©Ÿèƒ½ã‚’阻害ã—ã¦ã„ãŸéƒ¨åˆ†ã‚’å–り除ã„ãŸã ã‘ã§ã‚る。 <4> (upTeX-2.00æ–°è¦ã€å®Ÿé¨“çš„) 16bit 欧文コードã®å‡¦ç†ãŒå¯èƒ½ã«ãªã‚‹ã‚ˆã†ã€ 和文/欧文ã®åˆ‡æ›¿ãˆç”¨ã«kcatcodeã‚’æ‹¡å¼µã™ã‚‹ã€‚ ã“ã®ã¨ã欧文ã®æ–‡å—コードã¯Unicodeã®ã¿ã‚’想定ã—ã€æœ€å¤§å€¤ U+2E7F ã¾ã§ã¨ã™ã‚‹ã€‚和文ã®ã¿ãªã‚‰ãšæ¬§æ–‡ã‚‚「Unicode 1æ–‡å—1トークン〠(catcode 4bit + charcode 16bit) ã¨ãªã‚‹ã€‚フォントã®ãƒ¡ãƒˆãƒªãƒƒã‚¯ ã¨ã—ã¦ã¯ OFM Level-0 ã‚’èªã¿è¾¼ã‚“ã§ç”¨ã„るよã†ã«æ‹¡å¼µã™ã‚‹ã€‚ 8bit 欧文ã¨ã®æ··åœ¨ã‚‚ã€kcatcodeã®åˆ‡ã‚Šæ›¿ãˆã«ã‚ˆã‚Šå¯èƒ½ã§ã‚る。 フォントã¾ã§å«ã‚ãŸå®‰å®šãªç’°å¢ƒã¨ã—ã¦æä¾›ã§ãã‚‹ã«ã¯ã¾ã 時間ãŒæŽ›ã‹ã‚Šãㆠã§ã‚ã‚Šã€å½“é¢ã€Œå®Ÿé¨“çš„ã€ã¨ä½ç½®ã¥ã‘ã‚‹ã“ã¨ã«ã™ã‚‹ã€‚ <5> pTeX ã®å’Œæ–‡ãƒˆãƒ¼ã‚¯ãƒ³ã‚’ CJKトークンã¨ã—ã¦æ‰±ã„〠ä¸å›½èªž/韓国語対応を強化ã™ã‚‹ã€‚ <6> pTeX ã®å’Œæ–‡ãƒˆãƒ¼ã‚¯ãƒ³ã® 16bit ã‚’å˜ç´”ã« Unicode (UCS2ç‰) 化ã™ã‚‹ã¨ 欧文トークン (catcode 4bit + charcode 16bit) ã¨è¡çªã—ã¦ã—ã¾ã†ã€‚ ã“れを回é¿ã™ã‚‹æ‰‹æ³•ã¯ä½•é€šã‚Šã‹è€ƒãˆã‚‰ã‚Œã‚‹ãŒã€ CJKトークンã®ä¸Šé™ã®æ‹¡å¼µã‚’è¡Œã„〠CJKトークンを (kcatcode 5bit+charcode 24bit) ã§æ‰±ã†ã€‚ pTeX ã‹ã‚‰ã®æ”¹é€ é‡ã¯ã‚„や大ãã„ãŒã€æ¬§æ–‡ TeX ã¨ã®å¯¾ç§°æ€§ã¯è‰¯ããªã‚‹ã€‚ <7> U+2xxxx (Supplimentary Ideograph Plane, SIP) ã‚„ U+3xxxx (Tertiary Ideograph Plane, TIP) ã®æ¼¢å—ãªã© BMP以上ã‹ã¤å…¨è§’å¹…ã®æ–‡å—をサãƒãƒ¼ãƒˆã™ã‚‹ã€‚ BMP以上ã‹ã¤å…¨è§’幅以外ã®æ–‡å—ã¯ã€jfmã®æ‹¡å¼µã«ã‚ˆã‚Šã‚µãƒãƒ¼ãƒˆã™ã‚‹ã€‚ <8> 日本ãƒãƒ¼ã‚«ãƒ«è‰²ã‚’è–„ã‚ã‚‹ã ã‘ã®ç›®çš„ã§ã®æ©Ÿèƒ½å¤‰æ›´ã€æ•´ç†ã€å‰Šé™¤ã¯è¡Œã‚ãªã„。 \xkanjiskip, \euc ãªã©ã¯ãã®ã¾ã¾ã®å称ã€æ©Ÿèƒ½ã§ç¶æŒã™ã‚‹ã€‚ ç†ç”±ã¯ã€å°‘々ã®æ‰‹å½“ã§æ—¥æœ¬ãƒãƒ¼ã‚«ãƒ«è‰²ãŒæ‰•æ‹ã§ãã‚‹ã¯ãšã‚‚ãªã〠pTeX ã¨ã®äº’æ›æ€§ã‚’下ã’ã‚‹ã ã‘ã«éŽãŽãªã„çµæžœã«ãªã‚‹ã§ã‚ã‚ã†ã‹ã‚‰ã€‚ ã“ã®æ–¹é‡ã«ã‚ˆã‚Šã€pTeX ãŒæŠ±ãˆã¦ã„ãŸå¼±ç‚¹ã¯ã„ãã¤ã‹è§£æ¶ˆã§ãã‚‹ã‚‚ã®ã®ã€ pTeX ã®ç‰¹æ®Šæ€§ (全角ç‰å¹…フォントå‰æã® jfm ç‰) ã¯ä¿ãŸã‚Œã¦ã„ã‚‹ã—〠pdfTeX ãªã©æ¬§æ–‡ TeX ã®è¿‘å¹´ã®å‹•å‘ã‹ã‚‰é ã離れãŸã¾ã¾ã§ã‚ã‚‹ã—〠OpenType ã®æ–°æŠ€è¡“ãªã©ã‚’駆使ã§ãã¦ã„ã‚‹ã‚ã‘ã§ã‚‚ãªã„。 世界ã®æœ€æ–°ã® TeX 環境や他㮠Unicode æ‹¡å¼µ (XeTeX, LuaTeX ç‰)㨠比較ã™ã‚‹ã¨ã€æ—§ãã•ãä¸é€”åŠç«¯ãªå°è±¡ã‚’å—ã‘ã‚‹ã‹ã‚‚ã—ã‚Œãªã„。 ã—ã‹ã—ã€pTeX ã¨ã®äº’æ›æ€§ãŒã»ã¼ 100% ã® Unicode 版 CJK TeX ã¨ãªã‚Š pTeX ã‚’ä¸å¿ƒã«æŽ¨ç§»ã—ã¦ããŸæ—¥æœ¬ã® TeX ユーザー㌠éŽåŽ»ã®è³‡ç”£ã‚’利用ã—ã¤ã¤æ‰‹æ—©ã Unicode ã®ãŠã„ã—ã„部分を享å—ã™ã‚‹ãŸã‚ã«ã€ 的確㪠solution ã«ãªã£ã¦ã„ã‚‹ã¨æ€ã†ã€‚ æ£ç›´ãªã¨ã“ã‚ã€æ—¥æœ¬ãƒãƒ¼ã‚«ãƒ«è‰²ã¯ä¾ç„¶éžå¸¸ã«å¼·ã ä¸éŸ“ã® TeX ユーザーãŒä½¿ã„ãŸããªã‚‹ã‚‚ã®ã«ãªã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã®ç‚¹ã§ ã‚ã¾ã‚ŠæœŸå¾…ã¯å¤§ããæŒã¦ãªã„ã‹ã‚‚ã—ã‚Œãªã„ãŒã€ 日本㮠TeX ユーザーãŒä¸å›½èªž/韓国語を混æ¤ã™ã‚‹ã‚ˆã†ãªç”¨é€”ã«ã¯å‘ã„ã¦ã„ã‚‹ã¨æ€ã†ã€‚ â—‡ 主ãªä»•æ§˜ <0> åå‰ã‚’upTeX, upLaTeX ã¨å‘½åã™ã‚‹ã€‚ unicode版pTeXã¨ã„ã†ä¸»æ—¨ã§ã€‚ 出æ¥ã‚‹ã“ã¨ã¯æ¬§æ–‡TeX + pTeXã®å’Œæ–‡æ‹¡å¼µéƒ¨åˆ†ã®Unicode版ãªã®ã§ã€ uTeX ã¨ã‹ universal TeX ã¯ãŠã“ãŒã¾ã—ã„。 <1> CJKトークンã®å†…部コードã¨ã—ã¦Unicodeを使用ã™ã‚‹ã€‚ 入出力ãƒãƒƒãƒ•ã‚¡ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã¯UTF-8。 内部エンコーディングã¯ã»ã¼UTF-32(註1)。 <2> 入力ファイル(.texãªã©)ã¯UTF-8ã¨ISO-2022-JPã®è‡ªå‹•åˆ¤å®šã€‚ 出力ファイル(.log, .auxãªã©)ã¯UTF-8。 <3> tfm(jfm)ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã¯ã»ã¼UTF-32(註2)〠エンコーディングå㯠JY2, JT2 ã¨ã™ã‚‹ã€‚ U+FFFF以下ã®æ–‡å—ã§ã¯ã€jfmã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¯å¾“æ¥ã®pTeXã¨äº’æ›ã§ã‚る。 U+FFFFを越ãˆã‚‹æ–‡å—ã¯ã€defaultã§ã¯U+2xxxx(SIP)ã®æ¼¢å—を想定ã—〠chartype ㌠defaultã® 0 ã®å…¨è§’ç‰å¹…æ–‡å—ã¨ã—ã¦çµ„版ã™ã‚‹ã€‚ U+FFFF超ãˆã‹ã¤å¯å¤‰æ–‡å—幅を扱ãˆã‚‹ã‚ˆã†jfmã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã‚’ æ–‡å—コード24bitã«æ‹¡å¼µã™ã‚‹ãŒã€æ‹¡å¼µjfmã«å¯¾å¿œã—ãŸdviwareã‚’å¿…è¦ã¨ã™ã‚‹ã€‚ <4> dvi, vfã«ã¯Unicodeスカラー値を2〜3ãƒã‚¤ãƒˆã§è¨˜éŒ²ã™ã‚‹(註2)。 U+FFFF以下ã®æ–‡å—ã¯set2ã§ã€U+FFFFを越ãˆã‚‹æ–‡å—ã¯set3ã§æ‰±ã†ã€‚ 和文ã¨ã—ã¦æ‰±ãˆã‚‹æ–‡å—コードã®æœ€å¤§å€¤ã¯Unicodeã®æœ€å¤§å€¤U+10FFFF。 ã•ã‚‰ã«ã€0x220000以上0xFFFFFF以下をUnicodeåˆæˆæ–‡å—用㮠内部文å—コードã¨ã—ã¦ä½¿ç”¨ã™ã‚‹(upTeX-1.35æ–°è¦)。 <5> 和文ã€æ¬§æ–‡ã®åˆ‡æ›¿ãˆã¯ã€ã‚³ãƒ¼ãƒ‰ãƒ¬ãƒ³ã‚¸ã®ãƒã‚§ãƒƒã‚¯ã«åŠ ãˆkcatcodeを見ã¦è¡Œã†ã€‚ kcatcode=16,17,18ãªã‚‰æ¼¢å—,ã‹ãª,和文ãã®ä»–記å·(pTeXã¨åŒæ§˜)ã§ã€ kcatcode=15ãªã‚‰æ¬§æ–‡8bitã€éžCJKã®æ–‡å—(æ–°è¦)。 kcatcode=14(latin_ucs)ãªã‚‰æ¬§æ–‡16bit Unicode〠éžCJKã®æ–‡å—(upTeX-2.00æ–°è¦)。 kcatcode=19ãªã‚‰hangul(æ–°è¦)。hangul直後ã®æ”¹è¡Œã¯æ¬§æ–‡åŒæ§˜ 空白ã¨çœ‹åšã™ãŒã€ãれ以外ã®ç‚¹ã§ã¯ã€æ¼¢å—ã¨å…¨ãåŒã˜å‹•ä½œã«ãªã£ã¦ã„る。 kcatcode=20ãªã‚‰modifier(upTeX-1.35æ–°è¦)。Unicodeã§åˆæˆç”¨ã®æ–‡å— ã¾ãŸã¯ç•°ä½“å—セレクタ。 <6> 欧文ã¨åˆ¤å®šã•ã‚Œã‚Œã°UTF-8ã®8bitå¯å¤‰é•·æ–‡å—列ã¨ã—ã¦å†…部処ç†ã™ã‚‹ã€‚ オリジナルã®æ¬§æ–‡TeXã¨å®Œå…¨ã«äº’æ›ã®å‡¦ç†ãŒã§ãる。 ã™ãªã‚ã¡ã€æ¬§æ–‡LaTeXã®\inputenc{utf8}ã‚„BabelãŒéšœå®³ãªã利用ã§ãる。 <7> (upTeX-2.00æ–°è¦) kcatcode=14(latin_ucs)ãŒè¨å®šã•ã‚ŒãŸçŠ¶æ…‹ã§ UTF-8ã®å…¥åŠ›ãƒãƒƒãƒ•ã‚¡ã§8bitæ–‡å—コード列ãŒæ£è¦ã®UTF-8ã¨ã—㦠U+2E7F 以下ã¨èªã¿å–れるã¨ãã€Unicodeã®æ¬§æ–‡ã§ã‚ã‚‹ã¨è§£é‡ˆã—㦠符å·ä½ç½® 0x80~0x2E7F ã®æ¬§æ–‡æ–‡å—ノードを生æˆã™ã‚‹ã€‚ オリジナルã®æ¬§æ–‡Omega/Alephã¨äº’æ›ã®å‡¦ç†ãŒã§ãる。 <8> 和文ã¨åˆ¤å®šã•ã‚Œã‚Œã°pTeXã¨åŒæ§˜ã®å‡¦ç†ãŒã§ãる。 ã™ãªã‚ã¡ã€çµ„版ã¯ã‚‚ã¡ã‚ん〠漢å—,ã‹ãªã‚’コントãƒãƒ¼ãƒ«ãƒ¯ãƒ¼ãƒ‰ã«ä½¿ã†æ©Ÿèƒ½ç‰ãŒéšœå®³ãªã利用ã§ãる。 <9> kcatcodeã®åˆ‡æ›¿ãˆã¯Unicodeã®Block毎ã«å¯èƒ½ã€‚ ( http://www.unicode.org/Public/UNIDATA/Blocks.txt ) ( ã¡ãªã¿ã«ã€ã‚ªãƒªã‚¸ãƒŠãƒ«pTeXã§ã¯2ãƒã‚¤ãƒˆæ–‡å—ã®ã†ã¡ä¸Šä½ãƒã‚¤ãƒˆæ¯Žã€‚ ) <10> 和文ã®å†…部コードã¯ã€kcatcode 5bit+charcode 24bit ã§å‡¦ç†ã™ã‚‹ã€‚ 内部コードãŒæ¬§æ–‡(catcode 4bit+charcode 16bit)ã¨é‡ãªã‚‹ã“ã¨ã¯ãªã„。 <11> 従æ¥ã®pTeXã§ã¯ã€kcatcodeã®å‚照を文å—コードã‹ã‚‰kcatcodeã®è¡¨ã‚’引ã 間接的ã«è¡Œã†æ–¹æ³•ã‚’è¡Œã£ã¦ã„る。ã“ã®æ–¹æ³•ã‚’ ファイルãªã©ã‹ã‚‰ã®èªã¿è¾¼ã¿æ™‚ã¨å†…部処ç†æ™‚ã®ä¸¡æ–¹ã§è¡Œã£ã¦ã„る。 upTeXã§ã¯ã€ãƒ•ã‚¡ã‚¤ãƒ«ãªã©ã‹ã‚‰ã®èªã¿è¾¼ã¿æ™‚ã¯åŒæ§˜ã§ã‚ã‚‹ãŒã€ 内部処ç†æ™‚ã«ã¯ã€<10>ã§CJKトークン毎ã«æŒ¯ã£ãŸkcatcodeã‚’èªã¿è¾¼ã‚€ã‚ˆã†ã« 変更ã—ãŸã€‚ãŸã¨ãˆåŒã˜æ–‡å—コードã§ã‚‚kcatcodeã®é€”ä¸å¤‰æ›´ã‚’è¡Œãˆã°ã€ CJKトークン毎ã«ç•°ãªã‚‹kcatcodeを割り当ã¦ã‚‹ã“ã¨ãŒå‡ºæ¥ã‚‹ã‚ˆã†ã«ãªã‚‹ã€‚ <12> æ–°ã—ã \ucs プリミティヴを新è¨ã€‚ \char\ucs"301C, \kchar\ucs"301C ã¯U+301C(波ダッシュ)ã«ãªã‚‹ã€‚ <13> uptex, uplatex ãªã©ã§ã¯ -kanji=uptex ã¨æŒ‡å®šã—㦠動ãよã†ã«å®Ÿè£…ã—ãŸã€‚ ãã®ä»–ã®æ¼¢å—コード指定ã®å ´åˆã¯ã€ 基本的ã«å¾“æ¥ã®pTeXã¨åŒæ§˜ã®çµæžœã«ãªã‚‹ã¯ãšã€‚ <14> å„æ–‡å—ãŒå®Ÿéš›ã®ãƒ•ã‚©ãƒ³ãƒˆã§åˆ©ç”¨å¯èƒ½ãªæ–‡å—ã‹ã©ã†ã‹ã®åˆ¤å®šã¯ uptex 本体ã§ã¯è¡Œã‚ãªã„。ã“ã®åˆ¤å®šã¯ dviware ã§è¡Œã†ã“ã¨ã«ãªã‚‹ã€‚ 「任æ„ã®éƒ¨åˆ†å®Ÿè£…を容èªã—ã¦ã„ã‚‹ Unicode ã«ãŠã„㦠文å—集åˆã®ç¯„囲ã®å›ºå®šçš„ãªåˆ¤å®šã¯ä¸å¯èƒ½ã ã€ã¨ã„ã†ç†ç”±ã‚‚ã‚ã‚‹ãŒã€ ã“ã®ä»•æ§˜ã¯ pTeX ã§ã‚‚åŒæ§˜ã¨ãªã£ã¦ã„る。 <15> æ–°ã—ã \kchar, \kchardef ãƒ—ãƒªãƒŸãƒ†ã‚£ãƒ´ã‚’ã‚’è¿½åŠ ã€‚ \char`<æ–‡å—>, \chardef ã§ã¯ kcatcode=14ã‹ã¤æ–‡å—コードãŒ128〜0x2E7Fã®å ´åˆã«ã¯16bit 欧文動作〠ãã®ä»–æ–‡å—コードãŒ255以下ã®å ´åˆã«ã¯8bit 欧文動作〠256以上ã®å ´åˆã«ã¯å’Œæ–‡å‹•ä½œã¨ãªã‚‹ã€‚ \kchar`<æ–‡å—>, \kchardef ã§ã¯æ–‡å—コード範囲ã«ã‚ˆã‚‰ãšå’Œæ–‡å‹•ä½œã¨ãªã‚‹ã€‚ <16> (upTeX-2.00æ–°è¦) æ–°ã—ã ^^^^pqrs è¨˜æ³•ã‚’è¿½åŠ ã€‚ãã®ã¨ãã® kcatcodeã®è¨å®šã®çŠ¶æ…‹ã«ä¾ã‚‰ãšæ¬§æ–‡16bit Unicodeã® U+PQRS ã«ãªã‚‹ã€‚ 欧文Omega/Alephã¨äº’æ›ã€‚ <17> set3ã‚’å«ã‚€ãƒ•ã‚©ãƒ³ãƒˆ(vf)ã‚’å«ã‚€ãƒ•ã‚©ãƒ³ãƒˆ(vf)を標準ã¨ã™ã‚‹ã€‚ <18> ISO-2022-JP{-3,-2004}, EUC-JISX0213, Shift_JISX0213ãªã©ã® JIS X 0213系エンコーディングも使用å¯èƒ½ã«ã™ã‚‹æ¡ˆã‚‚ã‚ã£ãŸãŒ 開発å‡çµã™ã‚‹ã€‚ (註1) 32bitã§ã¯ãªã24bitã§æ‰±ã£ã¦ã„る点ã§åŽ³å¯†ã«ã¯UTF-32ã§ã¯ãªã„。 ã‚ã‚‹ã„ã¯ã€æ£è¦ã®Unicodeスカラー値(≒コードãƒã‚¤ãƒ³ãƒˆ)ã‚’ 24bitã§è¡¨ã—ãŸã‚‚ã®ã¨ã„ã£ã¦ã‚‚よã„。 (註2) æ£è¦ã®Unicodeスカラー値(≒コードãƒã‚¤ãƒ³ãƒˆ)㨠ç‰ã—ã„値を16/24bitã§è¡¨ã—ãŸã‚‚ã®ã€‚ ã™ãªã‚ã¡ã€UTF-32ã®ä¸‹ä½16bit/24bitã¨ç‰ã—ã„。 â—‡ 内部処ç†ã®æµã‚Œ (1) pTeX入力 [8bitå¯å¤‰é•·(UTF8)] ↓ <1> ptexenc [8bitå¯å¤‰é•·(UTF8)] ↓ (2) 入力ãƒãƒƒãƒ•ã‚¡ãƒ¼ [8bitå¯å¤‰é•·(UTF8)] ↓ <2> multistrlen,kcatcodeç‰ã§å’Œæ–‡/欧文を判定ã—ã¦å¤‰æ› ↓ (3) 内部レジスター [和文5+24bit, 欧文4+16bit] { 最大29bit 欧文ã¨å’Œæ–‡ã§åˆ¥æ§‹æˆâ€»1 } ↓ <3> マクãƒå±•é–‹ ↓ (4) çµ„ç‰ˆå‡¦ç† [和文5+24bit, 欧文4+16bit] (4a) tfm, jfm, ofmã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ [和文24bit, 欧文4+16bit] ※2 <4a> ptexenc (4b) dviã¸ã®å…¥å‡ºåŠ› [和文5+24bit, 欧文4+16bit] ※3 <4b> ptexenc ↓ (5) 出力ãƒãƒƒãƒ•ã‚¡ãƒ¼ [8bitå¯å¤‰é•·(UTF8)] ↓ <5> ptexenc ↓ (6) 出力 (log, 端末ãªã©) [8bitå¯å¤‰é•·(UTF8)] ※1: 欧文ã¯catcode 4bit + æ–‡å—コード16bit (最大0x2E7F)。 和文ã¯kcatcode 5bit + æ–‡å—コード24bit。 オリジナルpTeXã§ã¯ã€å’Œæ–‡ã¯æ–‡å—コード16bit, kcatcodeã¯ã€æ–‡å—コードを引数ã¨ã—ã¦è¡¨ã‚’å‚ç…§ã—ã¦æ±‚ã‚ã¦ã„ãŸãŒã€ upTeXã§ã¯ã€æ¬§æ–‡ã¨åŒç‰ã«(k)catcodeã¨æ–‡å—コードã®çµ„ã¨ãªã‚‹ã‚ˆã†ã«å¤‰æ›´ã—ãŸã€‚ 和文/欧文トークン㯠29bit ã‚’é‡ãªã‚‰ãªã„よã†ã«ä½¿ç”¨ã—ã¦ã„ã‚‹ã“ã¨ã«ãªã‚‹ã€‚ U+10FFFFã®Unicode最大値ã¾ã§ã‚’和文ã¨ã—ã¦å‡¦ç†ã§ãã‚‹ã“ã¨ã‚’想定ã—ã¦ã„る。 ※2: U+FFFF超ã®æ–‡å—ã¯å…¨è§’åŒå¹…(U+2xxxxã®æ¼¢å—ãªã©)を想定ã—ãŸå ´åˆ U+2xxxxã®char typeã‚’defaultã®0番ã¨è§£é‡ˆã—〠jfmã¯å¾“æ¥ã®pTeX(16bit)ã®ä»•æ§˜ã®ç¯„囲ã§å‡¦ç†ãŒå¯èƒ½ã€‚ U+FFFF超ã‹ã¤å¯å¤‰å¹…ã¯æ‹¡å¼µjfmã§å¯¾å¿œã™ã‚‹ã€‚ (2), (3), (4)ã®ã‚ãŸã‚Šã§æ¬§æ–‡8bit(TeX),欧文16bit(Omega/Aleph)ã¨ã® å…±å˜ã‚‚å¯èƒ½ã€‚ ã•ã‚‰ã«OTPインタープリターをçªã£è¾¼ã‚ã° upTeX + Omega = upOmegaãŒå‡ºæ¥ã‚‹??? â—‡ æ–‡å—コード関連ã®ã¾ã¨ã‚ [凡例] â—‹:欧文ã€â–³:欧文8bit多byteã®æ“¬ä¼¼çš„ãªå‹•ä½œ â– :和文ã€â€”:使用ä¸å¯ token:内部トークンã§ã®æ–‡å—コード text:SJIS/EUC/UTF-8ãªã©å…¥å‡ºåŠ›ã®æ–‡å—コード ( ):defaultã§ã¯ãªã„ [欧文TeX] token text ^^ab \char 〜0x7F â—‹ â—‹ â—‹ â—‹ 〜0xFF â—‹ â—‹[a] â—‹ â—‹ 0x100〜 — â–³[b] — — [pTeX] token text ^^ab \char 〜0x7F â—‹ â—‹ â—‹ â—‹ 〜0xFF â—‹ —[c] â—‹[f] â—‹ 0x100〜 — —[d] — — 0x8000〜 â– â– [e] — â– [g] [upTeX(v.0.10〜)] token text ^^ab \char \kchar 〜0x7F â—‹â– [h] â—‹ [i] â—‹ â—‹[l] â– [o] 〜0xFF â—‹â– [h] (â—‹)â– [j] â—‹ â—‹[m] â– [o] 0x100〜 â– (â–³)â– [k] — â– [n] â– [o] [upTeX(v.2.00〜) 㧠kcatcode=14(latin_ucs) ã®ã¨ã] token text ^^^^abcd \char 〜0x7F â—‹ â—‹ â—‹ â—‹ 〜0xFF â—‹ â—‹[p] â—‹ â—‹ 〜0x2E7F â—‹ — â—‹ â—‹ 0x2E80〜 — — — — [a] 8bit1byteã§æ‰±ã†ã®ãŒåŸºæœ¬ã€‚[b]ã®ãŸã‚ã«ã“ã®é ˜åŸŸãŒä½¿ã‚れるã“ã¨ã‚‚ã‚る。 [b] 8bit多byteã®å‡¦ç†ã‚’activeæ–‡å—化ã§å®Ÿç¾ã™ã‚‹æ‰‹æ³•(inputenc,CJK-LaTeXç‰)ãŒã‚る。 [c] SJIS/EUCã®ãƒ‘ターンã«åˆã‚ãªã„å ´åˆã®ã¿é€šã‚‹ã€‚欧文TeXã‹ã‚‰è¦‹ã‚‹ã¨åˆ¶é™äº‹é …ã«ãªã‚‹ã€‚ 回é¿ã«ã¯ã€^^ab, \char ãªã©ã§ã™ã‚‹ã—ã‹ãªã„。 [d] [b]ã®æ–¹æ³•ãŒä½¿ãˆãªã„。欧文TeXã‹ã‚‰è¦‹ã‚‹ã¨åˆ¶é™äº‹é …ã«ãªã‚‹ã€‚ 回é¿ã«ã¯ã€^^ab, \char ãªã©ã§ã™ã‚‹ã—ã‹ãªã„。 [e] 入力ã§ã¯8bit2byte。SJIS/EUCã®ãƒ‘ターンã«åˆã†å ´åˆã®ã¿æœ‰åŠ¹ã€‚ [f] ã“ã“ã®ä¸å…·åˆè§£æ¶ˆã«ã‚ˆã‚ŠpTeX+babelãŒå®Ÿç¾å¯èƒ½ã«ãªã£ãŸã€‚ [g] 和文ï¼æ¬§æ–‡ã¯ã‚³ãƒ¼ãƒ‰ãƒ¬ãƒ³ã‚¸ã§ç°¡æ˜Žã«åŒºåˆ¥ã§ãる。 [h] 和文ã®å ´åˆã¯kcatcode付ãã§ç®¡ç†ã•ã‚Œã‚‹ã®ã§ã€æ¬§æ–‡ã¨åŒºåˆ¥ã§ãる。 [i] 欧文ã®ã¿å¯èƒ½ã€‚和文ã¯ä¸å¯ã€‚ [j] defaultã¯å’Œæ–‡(**)。kcatcodeã®åˆ‡ã‚Šæ›¿ãˆã«ã‚ˆã‚Šå’Œæ–‡æ¬§æ–‡åŒ–ãŒå¯èƒ½ã€‚ [k] defaultã¯å’Œæ–‡(**)。kcatcodeã®åˆ‡ã‚Šæ›¿ãˆã«ã‚ˆã‚Šæ¬§æ–‡ã®8bit多byte扱ã„ãŒå¯èƒ½ã€‚ [l] 欧文ã®ã¿å¯èƒ½ã€‚和文ã¯ä¸å¯ã€‚ [m] 欧文ã®ã¿å¯èƒ½ã€‚和文ã¯ä¸å¯ã€‚一部(例ãˆã°\char\jis"215F(×)ãªã©)ãŒpTeX ã¨éžäº’æ›ã«ãªã‚‹ã€‚ [n] 和文ã®ã¿å¯èƒ½ã€‚欧文ã¯ä¸å¯ã€‚pTeXã¨ã®äº’æ›æ€§ã®ãŸã‚用æ„。 [o] 和文ã®ã¿å¯èƒ½ã€‚欧文ã¯ä¸å¯ã€‚ [p] UTF-8ã®å¯å¤‰é•·å¤šãƒã‚¤ãƒˆã®ã¿å¯èƒ½ã§ã‚ã‚Šã€æ–‡å—集åˆã¯Unicodeã®ã¿ã‚’想定ã™ã‚‹ã€‚ activeæ–‡å—化ã—ã¦ã¯ãªã‚‰ãªã„。 (**) "Latin-1 Letters" (0xAA, 0xBA, 0xC0..0xD6, 0xD8..0xF6, 0xF8..0xFF), "Latin Extended-A" (0x100..0x17F) ã®æ–‡å—ã¯upTeX-1.23より〠ã¾ãŸ "Latin Extended-B" (0x180..0x24F), "Latin Extended Additional" (0x1E00..0x1EFF) ã®æ–‡å—ã¯upTeX-1.24より defaultを欧文(not_cjk)ã¨ã™ã‚‹è¨å®šã‚’è¡Œã£ãŸã€‚ â—‡ pTeX ã¨ã®å¯¾ç…§è¡¨ â—Ž デフォルトã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚° JY1 → JY2 JT1 → JT2 â—Ž min10ç³»ã®ãƒ•ã‚©ãƒ³ãƒˆ(オプション, uptex-1.xxã®é…布ã«ã¯å«ã¾ãªã„) min10.tfm → umin10.tfm min9.tfm → umin9.tfm min8.tfm → umin8.tfm min7.tfm → umin7.tfm min6.tfm → umin6.tfm min5.tfm → umin5.tfm goth10.tfm → ugoth10.tfm goth9.tfm → ugoth9.tfm goth8.tfm → ugoth8.tfm goth7.tfm → ugoth7.tfm goth6.tfm → ugoth6.tfm goth5.tfm → ugoth5.tfm min10.vf → umin10.vf min9.vf → umin9.vf min8.vf → umin8.vf min7.vf → umin7.vf min6.vf → umin6.vf min5.vf → umin5.vf goth10.vf → ugoth10.vf goth9.vf → ugoth9.vf goth8.vf → ugoth8.vf goth7.vf → ugoth7.vf goth6.vf → ugoth6.vf goth5.vf → ugoth5.vf â—Ž jis.tfmç³»ã®ãƒ•ã‚©ãƒ³ãƒˆ(オプション, uptex-1.xxã®é…布ã«ã¯å«ã¾ãªã„) jis.tfm → ujis.tfm jisn.tfm → ujisn.tfm jis-v.tfm → ujis-v.tfm jisn-v.tfm → ujisn-v.tfm jisg.tfm → ujisg.tfm jisng.tfm → ujisng.tfm jisg-v.tfm → ujisg-v.tfm jisng-v.tfm → ujisng-v.tfm jis.vf → ujis.vf jisn.vf → ujisn.vf jis-v.vf → ujis-v.vf jisn-v.vf → ujisn-v.vf jisg.vf → ujisg.vf jisng.vf → ujisng.vf jisg-v.vf → ujisg-v.vf jisng-v.vf → ujisng-v.vf â—Ž rml.tfmç³»ã®ãƒ•ã‚©ãƒ³ãƒˆ(オプション, uptex-1.xxã®é…布ã«ã¯å«ã¾ãªã„) rml.tfm → urml.tfm rmlv.tfm → urmlv.tfm gbm.tfm → ugbm.tfm gbmv.tfm → ugbmv.tfm â—Ž upjisr-{hv}.tfmç³»ã®ãƒ•ã‚©ãƒ³ãƒˆ(デフォルトã€æ–°è¦) ------- → upjisr-h.tfm (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定) ------- → upjisg-h.tfm (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定) ------- → upjisr-v.tfm (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定) ------- → upjisg-v.tfm (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定) ------- → upjisr-hq.tfm (UniJIS-UCS2-Hを想定) ------- → upjisg-hq.tfm (UniJIS-UCS2-Hを想定) ------- → upjisr-h.vf (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定, set3使用) ------- → upjisg-h.vf (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定, set3使用) ------- → upjisr-v.vf (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定, set3使用) ------- → upjisg-v.vf (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定, set3使用) ------- → upjisr-hq.vf (UniJIS-UCS2-Hを想定) ------- → upjisg-hq.vf (UniJIS-UCS2-Hを想定) ------- → uprml-h.tfm (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定) ------- → upgbm-h.tfm (UniJIS-UTF16-Hã¾ãŸã¯UniJISup-UTF16-Hを想定) ------- → uprml-v.tfm (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定) ------- → upgbm-v.tfm (UniJIS-UTF16-Vã¾ãŸã¯UniJISup-UTF16-Vを想定) ------- → uprml-hq.tfm (UniJIS-UCS2-Hを想定) ------- → upgbm-hq.tfm (UniJIS-UCS2-Hを想定) â—Ž å„種ファイル ptex.ini → uptex.ini ptex.tex → uptex.tex (min10ベース → upjisr-hベース) kinsoku.tex → ukinsoku.tex platex.ini → uplatex.ini platex.ltx → uplatex.ltx pldefs.ltx → upldefs.ltx jy1mc.fd → jy2mc.fd (min10ベース → upjisr-hベース) jy1gt.fd → jy2gt.fd (goth10ベース → upjisg-hベース) jt1mc.fd → jt2mc.fd (tmin10ベース → upjisr-vベース) jt1gt.fd → jt2gt.fd (tgoth10ベース → upjisg-vベース) jarticle.cls → ujarticle.cls tarticle.cls → utarticle.cls jreport.cls → ujreport.cls treport.cls → utreport.cls jbook.cls → ujreport.cls tbook.cls → utreport.cls tsize10.clo → utsize10.clo tsize11.clo → utsize11.clo tsize12.clo → utsize12.clo tbk10.clo → utbk10.clo tbk11.clo → utbk11.clo tbk12.clo → utbk12.clo â—Ž CJK対応新è¦ãƒ•ã‚©ãƒ³ãƒˆ upjpnrm-{h,v}.{tfm,vf} (set3使用) upjpngt-{h,v}.{tfm,vf} (set3使用) upschrm-{h,v}.{tfm,vf} (set3使用) upschgt-{h,v}.{tfm,vf} (set3使用) uptchrm-{h,v}.{tfm,vf} (set3使用) uptchgt-{h,v}.{tfm,vf} (set3使用) upkorrm-{h,v}.{tfm,vf} upkorgt-{h,v}.{tfm,vf} upstsl-{h,v}.tfm upstht-{h,v}.tfm upmsl-{h,v}.tfm upmhm-{h,v}.tfm uphysmjm-{h,v}.tfm uphygt-{h,v}.tfm ※ Adobe Acrobat Reader 4 ã¯ä»¥ä¸‹ã®`generic fonts'ã‚’èªè˜ã™ã‚‹ãã†ã 。 (Ref. http://project.ktug.or.kr/omega-cjk/tug2004-preprint.pdf) Serif Sans Serif Chinese Simplified STSong-Light STHeiti-Regular Chinese Traditional MSung-Light MHei-Medium Japanese Ryumin-Light GothicBBB-Medium Korean HYSMyeongJo-Medium HYGoThic-Medium â—‡ kcatcode ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ kcatcodeã®æ„味ã¯ã€14: latin_ucs, 15: not_cjk, 16: kanji, 17: kana, 18: other_kchar, 19: hangul, 20: modifier kcatcodeãŒ14(latin_ucs)ã¾ãŸã¯15(not_cjk)ã®å ´åˆã¯æ¬§æ–‡æ‰±ã„ã«ãªã‚‹ã€‚ kcatcodeã¯åŽŸå‰‡ã¨ã—ã¦Unicodeã®block毎ã«ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚ (Ref. http://www.unicode.org/Public/UNIDATA/Blocks.txt) ãŸã ã—ã€ä¾‹å¤–ã®æ–‡å—集åˆãŒ7個ã‚る。 ã•ã‚‰ã«ã€Unicodeåˆæˆæ–‡å—を表ã™ãŸã‚ã«Unicode範囲外をupTeXã®å†…部コードã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ã€‚ æ–‡å—コード値0x0080以上ã®ãƒ–ãƒãƒƒã‚¯ã§ã¯åŽŸå‰‡18(other_kchar)ãŒè¨å®šã•ã‚Œã¦ã„る。 下記ã®è¡¨ã«ã¯ãれ以外ã®å€¤ã®ã‚‚ã®ã‚’記載ã—ãŸã€‚左端ã¯ãƒ–ãƒãƒƒã‚¯ã®é€šã—番å·ã€‚ â—‹Unicode blockã«æº–æ‹ (0x00) 0x0000.. 0x007F <15> Basic Latin (0x02) 0x0100.. 0x017F <15> Latin Extended-A (0x03) 0x0180.. 0x024F <15> Latin Extended-B (0x25) 0x1100.. 0x11FF <19> Hangul Jamo (0x46) 0x1E00.. 0x1EFF <15> Latin Extended Additional (0x68) 0x2E80.. 0x2EFF <16> CJK Radicals Supplement (0x69) 0x2F00.. 0x2FEF <16> Kangxi Radicals (0x6C) 0x3040.. 0x309F <17> Hiragana (0x6D) 0x30A0.. 0x30FF <17> Katakana (0x6E) 0x3100.. 0x312F <16> Bopomofo (0x6F) 0x3130.. 0x318F <19> Hangul Compatibility Jamo (0x70) 0x3190.. 0x319F <16> Kanbun (0x71) 0x31A0.. 0x31BF <16> Bopomofo Extended (0x72) 0x31C0.. 0x31EF <16> CJK Strokes (0x73) 0x31F0.. 0x31FF <17> Katakana Phonetic Extensions (0x76) 0x3400.. 0x4DBF <16> CJK Unified Ideographs Extension A (0x78) 0x4E00.. 0x9FFF <16> CJK Unified Ideographs (0x88) 0xA960.. 0xA97F <19> Hangul Jamo Extended-A (0x93) 0xAC00.. 0xD7AF <19> Hangul Syllables (0x94) 0xD7B0.. 0xD7FF <19> Hangul Jamo Extended-B (0x99) 0xF900.. 0xFAFF <16> CJK Compatibility Ideographs (0x9C) 0xFE00.. 0xFE0F <20> Variation Selectors (0x115) 0x1AFF0..0x1AFFF <17> Kana Extended-B (0x116) 0x1B000..0x1B0FF <17> Kana Supplement (0x117) 0x1B100..0x1B12F <17> Kana Extended-A (0x118) 0x1B130..0x1B16F <17> Small Kana Extension (0x145) 0x20000..0x2A6FF <16> CJK Unified Ideographs Extension B (0x146) 0x2A700..0x2B73F <16> CJK Unified Ideographs Extension C (0x147) 0x2B740..0x2B81F <16> CJK Unified Ideographs Extension D (0x148) 0x2B820..0x2CEAF <16> CJK Unified Ideographs Extension E (0x149) 0x2CEB0..0x2F7FF <16> CJK Unified Ideographs Extension F (0x14A) 0x2EBF0..0x2EE5F <16> CJK Unified Ideographs Extension I (0x14B) 0x2F800..0x2FFFF <16> CJK Compatibility Ideographs Supplement (0x14C) 0x30000..0x3134F <16> CJK Unified Ideographs Extension G (0x14D) 0x31350..0x323AF <16> CJK Unified Ideographs Extension H (0x14E) 0x323B0..0x3347F <16> CJK Unified Ideographs Extension J (Unicode 17.0予定) (0x15B) 0xE0100..0xE01EF <20> Variation Selectors Supplement (上記ã®æ–‡å—ã®ç¯„囲ã¯å®Ÿè£…ã«åŸºã¥ã„ã¦ãŠã‚Šã€Blocks.txtã«è¨˜è¿°ã•ã‚Œã¦ã„る範囲より広ã„å ´åˆãŒã‚ã‚‹) â—‹Unicode blockã®ä¾‹å¤– (0x1F9) 0x3099, 0x309A <20> Combining Kana (Semi-)Voiced Sound Mark (0x1FA) 0x20E3 <20> Combining Enclosing Keycap (0x1FB) 0x1F1E6..0x1F1FF <20> Regional Indicator Symbol letters (0x1FC) 0x1F3FB..0x1F3FF <20> Emoji Modifier Fitzpatric Type1..6 (0x1FD) 0xAA, 0xBA, 0xC0..0xD6, 0xD8..0xF6, 0xF8..0xFF <15> Latin-1 Letters (0x1FE) 0xFF10..0xFF19, 0xFF21..0xFF3A, 0xFF41..0xFF5A <17> Fullwidth digit and latin alphabet (0x1FF) 0xFF66..0xFF6F, 0xFF71..0xFF9D <17> Halfwidth katakana â—‹Unicodeã®ç¯„囲外をåˆæˆæ–‡å—ã«å¯¾å¿œã™ã‚‹upTeXã®å†…部コードã¨ã—ã¦åˆ©ç”¨ã™ã‚‹ (0x15F) 0x110000..0x11FFFF <16> for japanese-otf, japanese-otf-uptex macros (0x160) 0x120000..0x12FFFF <16> for japanese-otf, japanese-otf-uptex macros (0x161) 0x130000..0x13FFFF <16> for japanese-otf, japanese-otf-uptex macros (0x162) 0x140000..0x14FFFF <16> for japanese-otf, japanese-otf-uptex macros (0x170) 0x220000..0x23FFFF <17> Kana with Voiced Sound Mark (0x171) 0x240000..0x25E6E5 <17> Kana with Semi-Voiced Sound Mark (0x172) 0x25E6E6..0x25FFFF <18> Emoji Flag Sequence (0x173) 0x260000..0x2FFFFF <18> Emoji with Modifier Fitzpatrick (0x175) 0x400000..0x7FFFFF <16> Standardized Variation Sequence (0x176) 0x800000..0x80007F <18> Emoji Keycap Sequence (0x177) 0x800080..0xFFFFFF <16> Ideographic Variation Sequence, VS17..VS48 (0x178) 0x1000000..0x43FFFFF <16> Ideographic Variation Sequence, VS49..VS256 Ideographic Description Characters 㯠upTeX 1.29㧠<16> ã‹ã‚‰ <18> ã«å¤‰æ›´ã—ãŸã€‚ â—‡ Unicodeåˆæˆæ–‡å—ã®æ‰±ã„ (upTeX-1.35以é™) Unicodeã§ã¯ä¸€ã¤ã®æ–‡å—(æ›¸è¨˜ç´ )を表ã™ãŸã‚ã«è¤‡æ•°ã®ã‚³ãƒ¼ãƒ‰ãƒã‚¤ãƒ³ãƒˆã®é€£ãªã‚Š(シーケンス)㧠示ã™ã“ã¨ãŒè¦å®šã•ã‚Œã¦ã„ã‚‹æ–‡å—ãŒã‚る。例ãˆã°ç•°ä½“å—セレクタや絵文å—シーケンスãªã©ãŒå«ã¾ã‚Œã‚‹ã€‚ 異体å—セレクタã«ã‚ˆã‚‹ç•°ä½“å—ã®æŒ‡å®š(åŒã˜æ–‡å—ã®åˆ¥ã®å—å½¢ã«ãªã‚‹)㨠åˆæˆç”¨æ–‡å—ã«ã‚ˆã‚‹æ–‡å—ã®åˆæˆ(別ã®å—ã«ãªã‚‹)ã¨ã¯æœ¬æ¥æ„味ãŒç•°ãªã‚‹ãŒã€ ã“ã“ã§ã¯ãれらをã¾ã¨ã‚ã¦Unicodeåˆæˆæ–‡å—ã¨å‘¼ã¶ã€‚ upTeXã®å‡¦ç†ã®å…¥å£ã«ãŠã„ã¦åŸºåº•æ–‡å—(base)ã®ç›´å¾Œã«modifierãŒç¾ã‚ŒãŸå ´åˆã«ã¯ ãれをåˆæˆæ–‡å—用拡張文å—コード(内部コード)ã«ç½®ãæ›ãˆã¦ãƒŽãƒ¼ãƒ‰åŒ–㗠内部処ç†ã‚’経ã¦DVIファイルã¸ã®æ›¸ãè¾¼ã¿ã‚’è¡Œã†ã€‚ dviwareã¯vf経由ã¾ãŸã¯dviware本体ã§åˆæˆæ–‡å—用拡張文å—コードを扱ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚ upTeXã§æ‰±ãˆã‚‹Unicodeåˆæˆæ–‡å—ã¯ç‰¹å®šã®çµ„ã¿åˆã‚ã›ã«é™å®šã™ã‚‹ã€‚ UTF-8ã§ã¯å¿…ãšæ£è¦ã®Unicodeã®ã‚³ãƒ¼ãƒ‰ãƒã‚¤ãƒ³ãƒˆã®åˆ—ã«æˆ»ã—ã¦è¡¨ç¾ã™ã‚‹ã€‚ 対応ã—ã¦ã„るシーケンスã¨åˆæˆæ–‡å—用拡張文å—コード(内部コード)ã¯ä»¥ä¸‹ã€‚ <1> ä»®å+(åŠ)æ¿ç‚¹ base: 平仮åã€ç‰‡ä»®åã€å¤‰ä½“ä»®å mod: U+3099, U+309A 内部コード: ((mod - 0x3099) << 17) + 0x220000 + base 内部コードã®ç¯„囲: 0x220000..0x25E6E5 <2> 絵文å—(国旗) RGI Emoji Flag Sequence base: U+1F1E6..1F1FF mod: U+1F1E6..1F1FF 内部コード: ((base & 0xFF) << 8) + (mod & 0xFF) + 0x250000 内部コードã®ç¯„囲: 0x25E6E6..0x25FFFF <3> 絵文å—(肌色) base: 特定ã®çµµæ–‡å— mod: U+1F3FB..U+1F3FF 内部コード: ((mod - 0x1F3FB) << 17) + 0x260000 + base 内部コードã®ç¯„囲: 0x260000..0x2FFFFF <4> ã‚ーã‚ャップ RGI Emoji Keycap Sequence (base+mod1+mod2ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹) base: U+0000..007F mod1: U+FE0F (SVS) mod2: U+20E3 内部コード: 0x800000 + base base+mod1ã®å†…部コードã®ç¯„囲: 0x7C0000..0x7C007F 3æ–‡å—シーケンスã®å†…部コードã®ç¯„囲: 0x800000..0x80007F <5> SVS (Standardized Variation Sequence) base: æ¼¢å—ä»– mod: U+FE00..FE0F 内部コード: ((mod - 0xFE00) << 18) + 0x400000 + base 内部コードã®ç¯„囲: 0x400000..0x7FFFFF <6> IVS (Ideographic Variation Sequence) base: æ¼¢å— mod: U+E0100..E011F 内部コード: ((mod - 0xE0100) << 18) + 0x800000 + base 内部コードã®ç¯„囲: 0x800080..0xFFFFFF â—‡ upbibtex ã® is.kanji.str$ upbibtex(内部コード -kanji-internal=uptex)ã® is.kanji.str$ ã®è¿”り値ã¯ä»¥ä¸‹ã«ç¤ºã™ã¨ãŠã‚Šã¨ã™ã‚‹ã€‚ 以下ã«æ˜Žç¤ºã•ã‚Œã¦ã„ãªã„ブãƒãƒƒã‚¯ã¯ç¾åœ¨falseãŒè¿”る実装ã¨ãªã£ã¦ã„ã‚‹ãŒä»•æ§˜ã¨ã—ã¦ã¯æœªå®šç¾©ã¨ã™ã‚‹ã€‚ trueã«å¤‰æ›´ã—ãŸæ–¹ãŒåˆ©ä¾¿æ€§ãŒé«˜ã„ç‰ã®åˆ¤æ–ãŒã‚ã£ãŸå ´åˆã€å°†æ¥ã®ç‰ˆã§å¤‰æ›´ã™ã‚‹å¯èƒ½æ€§ã‚‚ã‚る。 â—Žtrueã®ãƒ–ãƒãƒƒã‚¯ upTeXã®kcatcodeã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ãŒ16(kanji),17(kana),19(hangul)ã®ãƒ–ãƒãƒƒã‚¯ã¯è¿”り値をtrueã¨ã™ã‚‹ã€‚ â—Žfalseã®ãƒ–ãƒãƒƒã‚¯ 以下ã«ç¤ºã™ãƒ–ãƒãƒƒã‚¯ã¯è¿”り値をfalseã¨ã™ã‚‹ã€‚ â—‹Unicode blockã«æº–æ‹ (0x00) 0x0000.. 0x007F <15> Basic Latin (0x02) 0x0100.. 0x017F <15> Latin Extended-A (0x03) 0x0180.. 0x024F <15> Latin Extended-B 0x0370.. 0x03FF <18> Greek and Coptic 0x0400.. 0x04FF <18> Cyrillic 0x0500.. 0x052F <18> Cyrillic Supplement 0x1C80.. 0x1C8F <18> Cyrillic Extended-C (0x46) 0x1E00.. 0x1EFF <15> Latin Extended Additional 0x1F00.. 0x1FFF <18> Greek Extended 0x2C60.. 0x2C7F <18> Latin Extended-C 0x2DE0.. 0x2DFF <18> Cyrillic Extended-A 0x3000.. 0x303F <18> CJK Symbols and Punctuation 0x3200.. 0x32FF <18> Enclosed CJK Letters and Months 0x3300.. 0x33FF <18> CJK Compatibility 0xA640.. 0xA69F <18> Cyrillic Extended-B 0xA720.. 0xA7FF <18> Latin Extended-D 0xAB30.. 0xAB6F <18> Latin Extended-E 0xFE30.. 0xFE4F <18> CJK Compatibility Forms (全角英数ã€åŠè§’カナを除ã) 0x10780..0x107BF <18> Latin Extended-F â—‹Unicode blockã®ä¾‹å¤– (0x1FD) 0xAA, 0xBA, 0xC0..0xD6, 0xD8..0xF6, 0xF8..0xFF <15> Latin-1 Letters â—‡ ukinsoku.tex ã«é–¢ã™ã‚‹æ³¨æ„äº‹é … ukinsoku.tex ã§è¡Œãªã£ãŸç¦å‰‡ãƒšãƒŠãƒ«ãƒ†ã‚£ã«é–¢ã™ã‚‹è¨å®šã«ãŠã„ã¦ã€ Unicodeã¨CJK(JIS X 0213ç‰)ã®æ–‡å—を想定ã—ã¦è¨å®šã•ã‚ŒãŸã‚‚ã®ã®ä¸ã« æ–‡å—コード㌠0x80..0xFF ã®ã‚‚ã®ã‚’å«ã‚“ã§ã„る。 ãれらã®è¨å®šã¯ä»•æ§˜ä¸Šã€8bit欧文ã®æ–‡å—ã«ã‚‚åŒæ™‚ã«ä½œç”¨ã—ã¦ã—ã¾ã†ã€‚ 8bit欧文ãŒT1ã®å ´åˆã«ã¤ã„ã¦ä¸‹è¨˜ã«ã¾ã¨ã‚ãŸã€‚ ã“ã®å‹•ä½œãŒä¸éƒ½åˆãªå ´åˆã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼å„ä½ã®åˆ©ç”¨çŠ¶æ³ã«å¿œã˜ã¦é©å®œ è¨å®šã‚’変更ã™ã‚‹ã‚ˆã†ãŠé¡˜ã„ã™ã‚‹ã€‚ æ–‡å—コード Unicode T1 0xA1 U+00A1 (¡) Ä… {\k a} 0xAA U+00AA (ª) Å‚ {\l} 0xAB U+00AB («) Å„ {\@tabacckludge'n} 0xB2 U+00B2 (²) Å¡ {\v s} 0xB3 U+00B3 (³) ÅŸ {\c s} 0xB7 U+00B7 (·) ů {\r u} 0xB9 U+00B9 (¹) ź {\@tabacckludge'z} 0xBA U+00BA (º) ž {\v z} 0xBB U+00BB (») ż {\.z} 0xBF U+00BF (¿) £ {\textsterling} â—‡ å‹•ä½œçŠ¶æ³ â—Ž uptex-2.xxã®é…布ã«å«ã‚ãŸã‚‚ã® uptex å‹•ã„ã¦ã„る。無å•é¡Œã€‚ â—Ž 別ã®é…布ã«å«ã‚ãŸã‚‚ã® otfパッケージ japanese-otf-uptex ã¨ã—ã¦å…¬é–‹ã€CTANã«ç™»éŒ²ã—ãŸã€‚ (以å‰ã¯ otfbeta-uptex-x.xx.tar.xz ã¨ã—ã¦å…¬é–‹ã—ã¦ã„ãŸã€‚) TeX Live svn ã« r25264 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ プãƒãƒãƒ¼ã‚·ãƒ§ãƒŠãƒ«ä»®åã«ã‚‚対応済ã¿ã€‚ CTAN投稿版㯠japanese-otf ã«å«ã¾ã‚Œã‚‹ã‚ˆã†ã«ãªã£ãŸã€‚ https://ctan.org/pkg/japanese-otf https://github.com/t-tk/japanese-otf-uptex convbkmk.rb dvipsã§ã®bookmark作æˆã®ãŸã‚ã®rubyスクリプト。 ã•ã‚‰ã«ã€out2uni相当動作ã®-oã‚ªãƒ—ã‚·ãƒ§ãƒ³ã‚‚è¿½åŠ ã—ãŸã€‚ convbkmk ã¨ã—ã¦CTANã«ç™»éŒ²ã—ãŸã€‚ https://ctan.org/pkg/convbkmk https://github.com/t-tk/convbkmk CMap UTF8-UTF16 TeX Live svn ã« r26540 ã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ 一次é…布㯠http://www.t-lab.opal.ne.jp/tex/uptex.html uptex-fonts ã®é…布ã«å«ã¾ã‚Œã¦ã„る。 https://github.com/texjporg/uptex-fonts â—Ž 日本語TeX開発コミュニティã«ç§»ç®¡ã—ãŸã‚‚ã® uppltotf,uptftopl,updvitype TeX Live svn r65178 㧠ppltotf,ptftopl,pdvitype ã¨ã‚½ãƒ¼ã‚¹ã€ãƒã‚¤ãƒŠãƒªã‚’çµ±åˆã—ãŸã€‚ upbibtex TeX Live svn r65178 㧠pbibtex ã¨ã‚½ãƒ¼ã‚¹ã€ãƒã‚¤ãƒŠãƒªã‚’çµ±åˆã—ãŸã€‚ jalpha.bst 使用時ã«ä¸€éƒ¨ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã§euc動作ã¨åŒç‰ã«ãªã‚‰ãªã„ãŒã€è¨±å®¹ç¯„囲ã¨ã™ã‚‹ã€‚ upjisr-h.tfmãªã© JIS X 0208ã®ç¯„囲ã§ã¯ã»ã¼Unicodeã«ç§»æ¤å‡ºæ¥ã¦ã„ã‚‹ã¨æ€ã†ã€‚ JIS X 0213ã®è¿½åŠ ã®ç´„物ã¯ä¸€å¿œå…¥ã‚ŒãŸã€‚ ãã®ä»– JIS X 0208/0213 以外ã®ç´„物ã¯AJ1-6ã§ã‚ã¼ã—ã„ã‚‚ã®ã¯ãªã„よã†ã 。 åŠè§’カナã«ã‚‚対応済。 upjisr-h.vfãªã©ã«BMP外ã®æ–‡å—ã‚‚ä¸€éƒ¨è¿½åŠ ã—ãŸã€‚ 以é™ã€é–‹ç™ºå…ƒã¯ä¸‹è¨˜ã«ç§»ç®¡ã€‚ https://github.com/texjporg/uptex-fonts ukinsoku.tex JIS X 0213 ã«å¯¾å¿œã—ãŸã€‚ 以é™ã€uptex.tex, uptex.iniã‚‚å«ã‚開発元ã¯ä¸‹è¨˜ã«ç§»ç®¡ã€‚ https://github.com/texjporg/uptex-base uplatex å‹•ã„ã¦ã„る。無å•é¡Œã€‚ 以é™ã€é–‹ç™ºå…ƒã¯ä¸‹è¨˜ã«ç§»ç®¡ã€‚ https://github.com/texjporg/uplatex makejvf ç°¡å˜ãªå¯¾å¿œã‚’æ–½ã—ãŸã€‚ オプション -u, -3, -J, -U, -H, -i ã‚’æ–°è¨ã—ãŸã€‚ 以é™ã€é–‹ç™ºå…ƒã¯ä¸‹è¨˜ã«ç§»ç®¡ã€‚ https://github.com/texjporg/tex-jp-build ptexenc TeX Live svn ã« r23549〜r25028 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ JIS→Unicode ã®å¤‰æ›è¡¨ã¯ r29213 ã§è¦‹ç›´ã—ãŸã€‚ ã‹ãªã®åˆæˆæ–‡å—㯠r38704 ã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ 以é™ã€é–‹ç™ºå…ƒã¯ä¸‹è¨˜ã«ç§»ç®¡ã€‚ https://github.com/texjporg/tex-jp-build â—Ž TeX Live ã«å–り込んã§ã„ãŸã ã„ãŸã‚‚ã® euptex TeX Live ã® Build/source/web2c ã§æœ¬é…布㮠uptexdir ã®ç½®ãæ›ãˆã§OK euptexdir 以下ã¯æ–°ã—ã„ uptex ã¨ã®çµ„åˆã‚ã›å¯èƒ½ã§ euptex ãŒä½œæˆå‡ºæ¥ã‚‹ã€‚ dvips TeX Live 2010 ã«å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ dvipdfmx TeX Live svn ã« r24509 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ set3ã‚‚å«ã‚ã¦å‹•ã„ã¦ã„る。 bookmark 作æˆã¯ dvipdfmxã®--pdfm-str-utf8オプションã¾ãŸã¯ã€ UTF8-UCS2, UTF8-UTF16 ã® CMap ã¾ãŸã¯ã€ convbkmk.rbã®-oオプションを必è¦ã¨ã™ã‚‹ã€‚ dvi2tty TeX Live svn ã« r24634 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ dvi2tty ã® NTT JTeX/pTeX 対応版を upTeX 対応ã«ã—ãŸã€‚ オプション -J を変更ã—〠-U, -E ã‚’æ–°è¨ã—ãŸã€‚ ã•ã‚‰ã«ã€T1,TS1,OT2,T2A,T2B,T2C,X2エンコーディング対応機能㌠TeX Live ã« r39942 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ https://github.com/t-tk/dvi2tty mendex TeX Live r33962 ã‚ãŸã‚Šã§ã€è¦‹å‡ºã—ã‚’Unicode対応ã¨ã—ãŸã€‚ ã•ã‚‰ã« r47721 ã‚ãŸã‚Šã§è¦‹å‡ºã—ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’UTF-8ã¨ã—ãŸã€‚ https://github.com/texjporg/tex-jp-build upmendex mendex をベースã«æ–°è¦ã«ä½œæˆã—ãŸã€‚ mendex ã®å†…部コードをUnicode化ã—ã€ICUã«ã‚ˆã‚‹ã‚½ãƒ¼ãƒˆã€ èªã¿ã‚’JIS X 0213ã®ã‹ãªã«å¯¾å¿œã€CJK対応ã€ãƒ©ãƒ†ãƒ³æ–‡å—(å«éžè‹±èªž)対応〠ã‚リル文å—対応ã€ã‚®ãƒªã‚·ãƒ£æ–‡å—対応ã¨ãªã£ã¦ã„る。 TeX Live svn ã« r39638 ã‚ãŸã‚Šã§å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ https://github.com/t-tk/upmendex-package upmpost TeX Live r35188 ã‚ãŸã‚Šã§upmetapostã®åå‰ã§å–ã‚Šè¾¼ã¾ã‚Œã€ ç¾åœ¨upmpostã®åå‰ã«ãªã£ã¦ã„る。 ãŸã ã—ã€ãŠãらãuptex-0.30ã®é ƒã¨åŒæ§˜ã€ 日本語vfã®é ˜åŸŸã‚’食ã„éŽãŽã§å¤šæ›¸ä½“ãŒã§ããªã„ã¨æ€ã‚れる。 Unicodeã®ãƒ•ã‚¡ã‚¤ãƒ«å Unix/Linuxã§ã¯localeãŒUTF-8ãªã‚‰ã°ä½¿ç”¨å‡ºæ¥ã‚‹ã€‚ Windowsã§ã¯ã€TeX Live 2014 ã«å–ã‚Šè¾¼ã¾ã‚ŒãŸã€‚ â—Ž ç¾åœ¨ã®é…布ã«å«ã‚“ã§ã„ãªã„ã‚‚ã® xdvi uptex-0.30ã§ã¯set3ã‚‚å«ã‚ã¦å‹•ã„ã¦ã„る。無å•é¡Œã€‚ uptex-2.xxã®é…布ã«ã¯å«ã¾ãªã„。 dviout set2ã®ç¯„囲ã§ã¯æ”¹é€ ç„¡ã—ã§ãƒ•ã‚©ãƒ³ãƒˆã®è¨å®šã®ã¿ã§ã»ã¼å‹•ã„ã¦ã„る。 set3ã®ç¯„囲ã¯æ–‡å—化ã‘ã—ã¦ã—ã¾ã†ãŒã€è½ã¡ã‚‹ã“ã¨ã¯ãªã„。 OTFパッケージ㮠\CID{} ㌠Unicode 経由ãªã®ã¯ã€ pLaTeX ã¨åŒæ§˜ã€‚ http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/51610.html http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/51705.html ã®å•é¡Œç‚¹ã®å¾¡å ±å‘ŠãŒã‚る。 開発版, CTAN版ã§ä¿®æ£æ¡ˆã‚’å–り入れã¦ã„ãŸã ã„ãŸã€‚ http://tug.org/svn/dviout?view=revision&revision=178 https://ctan.org/pkg/dviout utfパッケージ uptex-0.30ã§ã¯å‹•ã„ã¦ã„る。 uptex-2.xxã®é…布ã«ã¯å«ã¾ãªã„。 â—‡ 今後ã®èª²é¡Œã€è¦æ¤œè¨Žäº‹é …ãªã© < 内部実装関連 > [1] Unicodeã§è¤‡æ•°ã®ã‚³ãƒ¼ãƒ‰ãƒã‚¤ãƒ³ãƒˆã‚’å¿…è¦ã¨ã™ã‚‹æ–‡å—(IVS, æ–‡å—åˆæˆã§è¡¨ã•ã‚Œã‚‹ä»®åç‰)を使ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚(upTeX-1.35以é™å–り組ã¿ä¸) [2] 16bit欧文ã®ã‚µãƒãƒ¼ãƒˆã‚’充実ã•ã›ã‚‹ã€‚(upTeX-2.00以é™å–り組ã¿ä¸) < dviware, 外部ソフト関連 > [3] upmpost ã§å¤šæ›¸ä½“ãŒä½¿ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚ < ãã®ä»– > [4] ドã‚ュメントã®å……実。 [5] 英語ドã‚ュメントを書ã。