这个问题涉及用 LaTeX 编写非英语文档。
我使用 pdfLaTeX 编译希伯来语文档。我知道,XeLaTex
或LuaLaTeX
与软件包一起使用的polyglossia
是 Unicode 引擎,并且是推荐用于非拉丁语脚本的引擎。但我决定坚持使用pdfLaTeX
它的其他有用功能。
正如我所学到的这里,可以在序言中声明希伯来语字形,从而定义 Unicode 字符的行为:
\documentclass{article}
\usepackage[T1]{fontenc} % Specifies which font encoding LATEX should
% use, (8-bit encoding (T1))
\usepackage[utf8]{inputenc} % Translate various standard and other
% input encodings into a ‘LaTeX internal language‘
\usepackage{culmus} % Hebrew fonts from the Culmus project
\usepackage[main=english, hebrew]{babel} % Multilingual support,
% typographical (and other) rules
\pdfmapfile{=culmus.map} % pdflatex now reads the file culmus.map,
% which tells pdflatex how to get the font into the output file
%% Declarations %%
\DeclareUnicodeCharacter{05D0}{\hebalef}
\DeclareUnicodeCharacter{05D1}{\hebbet}
\DeclareUnicodeCharacter{05D2}{\hebgimel}
% and so on, up to
\DeclareUnicodeCharacter{05EA}{\hebtav}
%% Document %%
\begin{document}
כיתוב בעברית
\end{document}
现在我的问题来了:我想把这 27 条声明写在一个单独的文件(可能.sty
是或一个.def
文件?)中,以使我的序言更清晰。
正确的做法是什么?
我应该向我的文件传递什么命令latexmkrc
以便pdfLaTeX
在那里搜索声明列表?
这个inputenx
包能帮我做这个吗?如果能,那么我应该传递什么参数\usepackage[...]{inputenx}
?
任何建议或帮助都将非常感激。
答案1
我认为一个可能的解决方案是将声明写在外部.sty
文件中,并从序言中调用它。
% file hebrewDeclarations.sty
%% Declarations %%
\DeclareUnicodeCharacter{05D0}{\hebalef}
\DeclareUnicodeCharacter{05D1}{\hebbet}
\DeclareUnicodeCharacter{05D2}{\hebgimel}
% and so on, up to
\DeclareUnicodeCharacter{05EA}{\hebtav}
而tex
文件是:
\documentclass{article}
\usepackage[T1]{fontenc} % Specifies which font encoding LATEX should
% use, (8-bit encoding (T1))
\usepackage[utf8]{inputenc} % Translate various standard and other
% input encodings into a ‘LaTeX internal language‘
\usepackage[main=english, hebrew]{babel} % Multilingual support,
% typographical (and other) rules
\usepackage{hebrewDeclarations} % Reference to the external sty file
%% Document %%
\begin{document}
כיתוב בעברית
\end{document}