Created
December 14, 2025 15:36
-
-
Save yarakos95/2738e76e7c4747367201316d93c9be43 to your computer and use it in GitHub Desktop.
ルビを振る必要のないものにはrubyを与えないようにするコマンド定義[LaTeX]
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| %% The MIT License Copyright (c) 2025 Yarakashi Kikohshi | |
| %% luatexja-ruby あるいは pxrubrica を読み込むことを前提とする | |
| %% \keyword{ 親|文|字 }[ ル|ビ| ] | |
| %% 「送り仮名」にルビを振る際、`\ruby{送り仮名}{おくりがな}' では「り」までルビ振りが行われてしまう | |
| %% `\ruby{送}{おく}り\ruby{仮名}{がな}' とするべきだが面倒だ | |
| %% そこで、ルビが不要な親文字も含められるように \keyword を定義した。これで以下のように記述できる | |
| %% \keyword{送|り|仮名}[おく||がな] ⇒ \ruby{送}{おく}り\ruby{仮名}{がな} | |
| %% 実際、「送り仮名」の例は luatexja-ruby で上手くいくが、\ruby{宝|探|し}{たから|さが|} では上手くいかない | |
| %% そもそも、空文字をルビに指定することが想定されていないと思われる | |
| \NewDocumentCommand{ \keyword }{ m o }{ | |
| \group_begin: | |
| { | |
| \gtfamily | |
| \IfNoValueTF{ #2 } | |
| { #1 } | |
| { | |
| \tl_if_in:nnTF { #1 } { | } | |
| { | |
| \seq_set_split:Nnn \l_tmpa_seq { | } { #1 } | |
| \seq_set_split:Nnn \l_tmpb_seq { | } { #2 } | |
| \seq_map_inline:Nn \l_tmpa_seq | |
| { | |
| \seq_pop:NN \l_tmpb_seq \l_tmpa_tl | |
| \tl_if_empty:NTF \l_tmpa_tl | |
| { ##1 } | |
| { \ruby[fontcmd=\mcfamily]{ ##1 }{ \tl_use:N \l_tmpa_tl } } | |
| } | |
| } | |
| { | |
| \ruby[fontcmd=\mcfamily]{ #1 }{ #2 } | |
| } | |
| } | |
| } | |
| \group_end: | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment