\documentclass[17pt]{extarticle}
\usepackage{fontspec}
\setmainfont{NomNaTong-Regular}
% Khai báo font NomNaTong
\newfontfamily\nomfont{NomNaTong-Regular}
\newcommand{\nom}[1]{{\nomfont\symbol{#1}}}
\usepackage{luacode}
\usepackage{longtable,array,xcolor,listings}
% Sử dụng hyperref để tạo liên kết (ẩn khung màu đỏ quanh link cho đẹp)
\usepackage[hidelinks,unicode]{hyperref}
\usepackage[left=1cm]{geometry}
\begin{luacode*}
function print_glyphs(maxCols, maxChars)
local id = font.current()
local fnt = font.getfont(id)
local a = {}
for k, v in pairs(fnt.characters) do
a[#a + 1] = k
end
table.sort(a)
local col = 1
for i, k in ipairs(a) do
if i > maxChars then break end
-- Tạo chuỗi Hex viết hoa phục vụ hiển thị và lệnh \char
local hex_upper = string.format("%04X", k)
-- Tạo chuỗi Hex viết thường phục vụ liên kết URL
local hex_lower = string.format("%04x", k)
-- Đường dẫn URL hoàn chỉnh
local url = "http://www.nomfoundation.org/common/nom_details.php?codepoint=" .. hex_lower .. "&img=1&uiLang=vn"
-- In mã Hexadecimal định danh đầu dòng
if col == 1 then
tex.sprint(hex_upper)
tex.sprint("&")
end
-- Bọc toàn bộ bảng phụ trong lệnh \href để cả mã và chữ Nôm đều click được
tex.sprint(string.format([[\href{%s}{\begin{tabular}{@{}c@{}} \tiny %s \\ {\nomfont\char"%s} \end{tabular}}]], url, hex_upper, hex_upper))
if col == maxCols then
tex.sprint([[\\\hline ]])
col = 1
else
tex.sprint("&")
col = col + 1
end
end
end
\end{luacode*}
\begin{document}
\color{black!20}
\begin{longtable}{>{\color{black!50}\ttfamily\footnotesize}r|
*{10}{>{\color{black}\centering\arraybackslash}p{2.2em}|}}
\cline{2-11}
\endhead
\directlua{print_glyphs(10,65463)} \\ \cline{2-11}
\end{longtable}
\end{document}
Thứ Bảy, 16 tháng 5, 2026
Font NomNaTong code hexadecimal link tới từ điển
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét