• R/O
  • HTTP
  • SSH
  • HTTPS

luatexja: コミット

ソースコードの管理場所


コミットメタ情報

リビジョン59d551a81505cd788453ff9d2c82048af7d1f970 (tree)
日時2018-12-10 20:14:23
作者Hironori Kitagawa <h_kitagawa2001@yaho...>
コミッターHironori Kitagawa

ログメッセージ

reduce overhead

未対応:\DeclareFixedFont

変更サマリ

差分

--- a/src/ltj-jfont.lua
+++ b/src/ltj-jfont.lua
@@ -460,7 +460,12 @@ do
460460 size = sp(size); extract_metric(spec)
461461 jfm_dir = 'tate'
462462 local i = load_jfont_metric(); update_jfm_cache(i, size)
463- luatexja.jfont.tfont_jfmonly_result = metrics[i].size_cache[size]
463+ tex.sprint(cat_lp,
464+ '\\noexpand\\directlua{luatexja.jfont.set_tfont_jfmonly_result('
465+ .. tostring(i) .. ',' .. tostring(size) .. ')}')
466+ end
467+ function luatexja.jfont.set_tfont_jfmonly_result(i,s)
468+ luatexja.jfont.tfont_jfmonly_result=metrics[i].size_cache[s]
464469 end
465470 luatexja.jfont.load_tfont_jfmonly = load_tfont_jfmonly
466471 end
--- a/src/patches/lltjfont.sty
+++ b/src/patches/lltjfont.sty
@@ -314,8 +314,8 @@
314314 \expandafter\expandafter\expandafter\let
315315 \expandafter\expandafter\csname ltj@@orig@selectfont\endcsname\csname selectfont\space\endcsname
316316 \@EverySelectfont@Init
317-\let\ltj@@font@info\@font@info
318-\let\ltj@@font@warning\@font@warning
317+%\let\ltj@@font@info\@font@info
318+%\let\ltj@@font@warning\@font@warning
319319 \def\@EverySelectfont@Init{%
320320 \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont
321321 \ltj@@EverySelectfont@Init
@@ -323,9 +323,6 @@
323323 \def\ltj@selectfont@tate{%
324324 \let\k@encoding\ct@encoding
325325 \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
326- \unless\ifnum\ltjgetparameter{direction}=3\relax
327- \let\@font@info\@gobble\let\@font@warning\@gobble
328- \fi
329326 \pickup@tfont
330327 \ifnum\ltjgetparameter{direction}=3 \font@name
331328 \ltj@@does@alt@set{\curr@kfontshape}{%
@@ -334,15 +331,10 @@
334331 % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
335332 \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
336333 }%
337- \else
338- \let\@font@info\ltj@@font@info\let\@font@warning\ltj@@font@warning
339334 \fi}
340335 \def\ltj@selectfont@yoko{%
341336 \let\k@encoding\cy@encoding
342337 \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
343- \ifnum\ltjgetparameter{direction}=3\relax
344- \let\@font@info\@gobble\let\@font@warning\@gobble
345- \fi
346338 \pickup@jfont
347339 \unless\ifnum\ltjgetparameter{direction}=3 \font@name
348340 \ltj@@does@alt@set{\curr@kfontshape}{%
@@ -351,8 +343,6 @@
351343 % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする
352344 \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
353345 }%
354- \else
355- \let\@font@info\ltj@@font@info\let\@font@warning\ltj@@font@warning
356346 \fi}
357347 \def\ltj@selectfont@patch{%
358348 \directlua{luatexja.base.start_time_measure('selectfont')}%
@@ -445,6 +435,7 @@
445435 local t = lua.get_functions_table()
446436 local getfont, dir_tate = font.getfont, luatexja.dir_table.dir_tate
447437 local fmt, get_attr = luatexja.jfont.font_metric_table, tex.getattribute
438+ local getcount=tex.getcount
448439 local setdimen, set_attr = tex.setdimen, tex.setattribute
449440 local dir = luatexja.unary_pars.direction
450441 t[\the\ltj@@adjust@baseline@inner] = function()
@@ -635,19 +626,31 @@
635626
636627 \let\extract@afont\extract@font
637628 \def\pickup@jfont{%
638- \expandafter \ifx \font@name \relax
629+ \unless\ifnum\ltjgetparameter{direction}=3\relax
630+ \expandafter \ifx \font@name \relax
639631 \let\extract@font\extract@jfont
640632 \define@newfont
641633 \let\extract@font\extract@afont
642- \fi
643- \let\getjfont\font@name}
634+ \fi
635+ \fi
636+ \let\getjfont\font@name}
644637 \def\pickup@tfont{%
638+ \ifnum\ltjgetparameter{direction}=3\relax
645639 \expandafter \ifx \font@name \relax
646640 \let\extract@font\extract@tfont
647641 \define@newfont
648642 \let\extract@font\extract@afont
649643 \fi
650- \let\gettfont\font@name}
644+ \else
645+ \begingroup\escapechar\m@ne
646+ \ifcsname ltj@@tfontjfm/\expandafter\string\font@name\endcsname\else
647+ \let\extract@font\extract@tfont@onlyjfm
648+ \define@newfont
649+ \let\extract@font\extract@afont
650+ \fi\endgroup
651+ \csname ltj@@tfontjfm/\string\font@name\endcsname
652+ \fi
653+ \let\gettfont\font@name}
651654
652655 % 異なる和文 enc/fam/ser/shape からは異なるフォント番号が振られるように
653656 % わざと「ゴミをつける」
@@ -655,29 +658,29 @@
655658 #1\directlua{luatexja.jfont.print_aftl_address()}\space at%
656659 }
657660 \def\extract@jfont{%
658- \get@external@font
659- \unless\ifnum\ltjgetparameter{direction}=3\relax
660- \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
661- \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
662- }%
663- \expandafter\globaljfont\font@name\external@font\relax\font@name% ここで時間がかかる
664- \fi
661+ \get@external@font
662+ \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
663+ \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
664+ }%
665+ \expandafter\globaljfont\font@name\external@font\relax\font@name% ここで時間がかかる
665666 \csname \f@encoding+\f@family\endcsname
666667 \csname\curr@fontshape\endcsname}
667668 \def\extract@tfont{%
668- \get@external@font
669- \ifnum\ltjgetparameter{direction}=3\relax
670- \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
671- \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
672- }%
673- \expandafter\globaltfont\font@name\external@font\relax\font@name
674- \else
669+ \get@external@font
670+ \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}{%
671+ \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}%
672+ }%
673+ \expandafter\globaltfont\font@name\external@font\relax\font@name
674+ \csname \f@encoding+\f@family\endcsname
675+ \csname\curr@fontshape\endcsname}
676+\def\extract@tfont@onlyjfm{%
677+ \get@external@font
678+ \csxdef{ltj@@tfontjfm/\expandafter\string\font@name}{%
675679 \directlua{%
676680 luatexja.jfont.load_tfont_jfmonly('\luatexluaescapestring{\external@font}')
677681 }%
678- \fi
679- \csname \f@encoding+\f@family\endcsname
680- \csname\curr@fontshape\endcsname}
682+ }%
683+}
681684
682685 \let\ltj@@al@do@subst@correction=\do@subst@correction
683686 \def\ltj@@ja@do@subst@correction{%
旧リポジトリブラウザで表示