1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【LuaTeX】句読点をビルド時にピリオドとコンマに変換する

Last updated at Posted at 2023-01-20

$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}

output.pdf
Screen Shot 2023-01-21 at 2.17.54.png

その他

  • $\TeX$の命名規則はよく知らないが、\kutenは定義されているのでとりあえず\Kutenとした。
  • 日本語の文章は日本語用に設計された句読点を使った方が当然読みやすいのに、なぜアルファベット用のピリオドとコンマの使用を強いられなければならないのかとても謎である。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?