![仅将某些字母着色作为文档的原生属性](https://linux22.com/image/411014/%E4%BB%85%E5%B0%86%E6%9F%90%E4%BA%9B%E5%AD%97%E6%AF%8D%E7%9D%80%E8%89%B2%E4%BD%9C%E4%B8%BA%E6%96%87%E6%A1%A3%E7%9A%84%E5%8E%9F%E7%94%9F%E5%B1%9E%E6%80%A7.png)
我使用 Word 中的一个工具来学习日语,这个工具让我可以在听音乐的同时只给歌词中的某些字符上色,这个工具的效果非常强大,我希望在 LaTeX 中也能实现这一点,
我不会为每个字符 あ 涂上颜色,而是寻找一种在文档中对所有 あ 进行着色的方法,这会有点大……
答案1
假设您使用 LuaLaTeX 排版文档,您可以通过设置一个 Lua 函数来实现格式化目标,该函数会“动态”应用所需的每个字符着色操作。关键工作由函数调用执行unicode.utf8.gsub
。只需将要着色的字符放入 的第二个参数中的方括号部分(Lua 术语中的“字符类”)unicode.utf8.gsub
。
该解决方案还提供了两个 LaTeX 宏,称为\ColorizeOn
和\ColorizeOff
;它们激活和停用 Lua 函数。
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Noto Serif CJK JP} % some suitable font
\usepackage{xcolor} % for '\textcolor' macro
\usepackage{luacode} % for 'luacode' environment
%% set up the main Lua function
\begin{luacode}
function colorize_selected_letters ( s )
s = unicode.utf8.gsub ( s , "[めリ脚]" , "\\textcolor{red}{%0}" )
s = unicode.utf8.gsub ( s , "[すの義]" , "\\textcolor{blue}{%0}" )
return s
end
\end{luacode}
%% set up two LaTeX utility macros
\newcommand\ColorizeOn{\directlua{%
luatexbase.add_to_callback( "process_input_buffer",
colorize_selected_letters, "csl" )}}
\newcommand\ColorizeOff{\directlua{%
luatexbase.remove_from_callback(
"process_input_buffer", "csl" )}}
\begin{document}
%% (the following text is "borrowed" [!] from https://tex.stackexchange.com/q/437081/5001)
\ColorizeOn
\section{解析モデル概要}
この例題ではに示す橋脚のソリッドモデルを作成します。.
\subsection{基礎と橋脚のジオメトリ作成}
基礎および橋脚のためのシリンダー形状を作成します。
\subsection{梁のジオメトリ作成}
最初に側面を定義しこれを押し出してソリッドとすることで、上端の梁を作成します。
\ColorizeOff
\section{線形解析の実行}
構造線形静的解析を実行します。この解析では、出力結果を含めてすべてデフォルトの設定を使用します。
\end{document}