$Lua\TeX$限定。論文を書くときに日本語入力と英字入力を行き来するのが面倒なので、コンパイル時に勝手に置き換えてもらう。
以下を貼り付ける
% 「。」「、」→「. 」「, 」
\usepackage{fontspec,xcolor}
\usepackage{luacode,luatexbase}
\begin{luacode}
local function kutenToPeriod ( line )
return string.gsub(line, "。" , "\\Kuten{}")
end
luatexbase.add_to_callback( "process_input_buffer", kutenToPeriod, "kuten_to_period")
local function totenToComma ( line )
return string.gsub(line, "、" , "\\Toten{}")
end
luatexbase.add_to_callback( "process_input_buffer", totenToComma, "toten_to_comma")
\end{luacode}
\newcommand\Kuten[1]{. }
\newcommand\Toten[1]{, }
例
document.tex
\documentclass{article}
\usepackage{luatexja}
\usepackage{fontspec,xcolor}
\usepackage{luacode,luatexbase}
\begin{luacode}
local function kutenToPeriod ( line )
return string.gsub(line, "。" , "\\Kuten{var}")
end
luatexbase.add_to_callback( "process_input_buffer", kutenToPeriod, "kuten_to_period")
local function totenToComma ( line )
return string.gsub(line, "、" , "\\Toten{var}")
end
luatexbase.add_to_callback( "process_input_buffer", totenToComma, "toten_to_comma")
\end{luacode}
\newcommand\Kuten[1]{. }
\newcommand\Toten[1]{, }
\begin{document}
ごめん、同級会には行けません。いま、シンガポールにいます。 \\
この国を南北に縦断する地下鉄を私は作っています \\
本当は、あの頃が恋しいけれど……。 \\
でも、今はもう少しだけ知らないふりをします。 \\
私の作るこの地下鉄も、きっといつか、誰かの青春を乗せるから。
\end{document}
その他
- $\TeX$の命名規則はよく知らないが、
\kuten
は定義されているのでとりあえず\Kuten
とした。 - 日本語の文章は日本語用に設計された句読点を使った方が当然読みやすいのに、なぜアルファベット用のピリオドとコンマの使用を強いられなければならないのかとても謎である。
参考