仅将某些字母着色作为文档的原生属性

仅将某些字母着色作为文档的原生属性

我使用 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}

相关内容