code: def build_character_rule_latex_table():
      character_rules_df = pd.read_excel(
          CHARACTER_RULE_FILE, engine="openpyxl"
      )
      CHARACTER_RULE_LATEX_TABLE = join(
          PROJECT_FOLDER,
          "reports",
          "latex",
          "character_rule_latex_table.txt",
      )
      content = """
  \\begin{table}
  \centering
  \\begin{tabular}{c c c}
  \hline
  \\textbf{ID} & \\textbf{None Standard} & \\textbf{Standard} \\\\
  \hline
  """.strip()
      content += "\n"
      for index, row in character_rules_df.iterrows():
          non_standard = LatexCharacter(row[0])
          standard = LatexCharacter(row[1])
          line = f"{index + 1} & \n"
          line += f"{non_standard.generate_character_cell()} & \n{standard.generate_character_cell()} \\\\"
          content += line + "\n"
          content += "\hline" + "\n"
      content += """\end{tabular}
  \caption{Character standardization rules}
  \label{table:character_rules}
  \end{table}
  """.strip()
      with open(CHARACTER_RULE_LATEX_TABLE, "w") as f:
          f.write(content)
  
file_path: underthesea/examples/text_normalize/build_rules.py
imports: from os.path import join, dirname
  import joblib
  from datetime import datetime
  import pandas
  from normalize import AnalysableWord
label_desc: Use image node_id 3 for calling a global function with example usage: build_character_rule_latex_table() without return types