我正在使用 Xelatex 编写 UTF-8(马拉雅拉姆语)文档。
下面显示的是我的示例 Latex 代码。如果您看到(屏幕截图)生成的目录,您可以看到Noto Sans Malayalam
这是因为我必须使用自定义\noto
命令输入 UTF-8 文本\def\noto{\fontspec{Noto Sans Malayalam}}
。
你知道如何删除Noto Sans Malayalam
我的 PDF 目录中不需要的文本吗?
% xelatex test.tex
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{tocloft}
\usepackage{hyperref}
\def\noto{\fontspec{Noto Sans Malayalam}}
\title{A title}
\begin{document}
\pagenumbering{arabic}
\renewcommand{\contentsname}{Contents \\ {\noto ഉളളടക്കം }}
\tableofcontents
\newpage
\section{Malayalam \\ \noto{ മലയാളം } }
Malayalam \\ {\noto മലയാളം}
\newpage
\section{English \\ \noto{ ഇംഗ്ലീഷ് } }
English \\ {\noto ഇംഗ്ലീഷ്}
\end{document}
答案1
该.pdf
文件无法\noto
正确解释命令和字体规范bookmarks
。
使用\texorpdfstring{\fontspec{...}}{}
\\
我也删除了“错误”的用法。
Noto 字体可以从以下网址下载https://www.google.com/get/noto/
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{tocloft}
\usepackage{hyperref}
\DeclareRobustCommand{\noto}{\texorpdfstring{\fontspec{Noto Sans Malayalam}}{}}
\title{A title}
\begin{document}
\pagenumbering{arabic}
\renewcommand{\contentsname}{Contents \\ {\noto ഉളളടക്കം }}
\tableofcontents
\newpage
\section{Malayalam \noto{ മലയാളം } }
Malayalam
{\noto മലയാളം}
\clearpage
\section{English \noto{ ഇംഗ്ലീഷ് } }
English
{\noto ഇംഗ്ലീഷ്}
\end{document}
答案2
您不想在书签中看到它们\\
。\noto
最简单的解决方案是使用命令来获取章节标题:
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{tocloft}
\usepackage{hyperref}
\newfontfamily\noto{Malayalam MN} % I don't have Noto
\newcommand{\nototitle}[1]{%
\texorpdfstring{\\{\noto #1}}{#1}%
}
\title{A title}
\begin{document}
\pagenumbering{arabic}
\renewcommand{\contentsname}{Contents \\[1ex] {\noto ഉളളടക്കം}}
\tableofcontents
\newpage
\section{Malayalam\nototitle{മലയാളം}}
Malayalam \\ {\noto മലയാളം}
\newpage
\section{English\nototitle{ഇംഗ്ലീഷ്}}
English \\ {\noto ഇംഗ്ലീഷ്}
\end{document}
不要\fontspec
在文档正文中使用;\newfontface
在序言中一劳永逸地使用效率更高。