我正在使用该montex
包输入满语文本(manju
)。在我的文档中,我还使用带变音符号的拉丁字母。当我加载 时montex
,这些变音符号不再出现,当带变音符号的字符达到 100 个时,编译会因为错误太多而完全失败。文档montex
列出了输入和输出的几种编码,前者包括utf-8
(第 19-22 页)。作为一名非程序员,我不太明白这一点,但在我看来,表 4.1.“MonTeX 输入编码”中列出的编码都没有一种可以处理我需要的所有变音符号。这是否意味着 MonTeX 实际上与完整的 不兼容unicode
?
工作最小示例无需montex
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\begin{document}
yǐ mǎn zhōng wèn wén\\ %Latin texts with diacritics in Roman and Italics
\emph{yǐ mǎn zhōng wèn wén}
\end{document}
这看起来不错:
如果我还加载MonTeX
并输入一些满文,则不起作用:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\usepackage{mls} %Loading MonTeX
\begin{document}
\bithe{manju gisun}\\ %Typing Manchu
yǐ mǎn zhōng wèn wén\\
\emph{yǐ mǎn zhōng wèn wén}
\end{document}
结果:
在此文件中,斜体也消失了。
查看手册中的编码列表MonTeX
,我发现——也许我错了?——最好的编码是english
作为文档语言和mls
编码。但将这些选项添加到
\usepackage[english,mls]{mls}
不会改变输出。
上面的代码是用 编译的XeLaTeX
,但我也用 编译了同一个文件,LuaLateX
结果相同
有人知道我该怎么做才能解决这个问题?
答案1
复制mls.sty
。将其命名为mls-hacked.sty
。应用以下补丁。
--- mls-hacked.sty 2010-04-09 19:28:51.000000000 +0100
+++ mls-hacked.sty 2014-03-16 02:32:39.086050752 +0000
@@ -11,7 +11,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------------- identification -------------------
%
-\newcommand{\VersionDate}{2010/04/01}% 2002/07/01 with modified language name
+\newcommand{\VersionDate}{2014/03/16}% 2002/07/01 with modified language name
\newcommand{\ImplementationLevel}{IVu}%
\newcommand{\VersionKirill}{04}%
\newcommand{\VersionMongol}{092}%
@@ -19,7 +19,8 @@
\ImplementationLevel.\VersionKirill.\VersionMongol}%
%
\NeedsTeXFormat{LaTeX2e}%
-\ProvidesPackage{mls}[2010/04/01 IVu.04.092 Mongolian for LaTeX2e]%
+\ProvidesPackage{mls-hacked}[2014/03/16 IVu.04.092 Mongolian for LaTeX2e Hacked to remove inputenc]%
+\PackageWarning{mls-hacked}{This is NOT the official version of mls.sty. It will almost certainly break things badly. It will complain slightly less when used with XeLaTeX, however.}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------------- initial code -------------------
@@ -337,55 +338,6 @@
}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% -------- Loading of various codepage definitions -------------
-%
-% Input encodings supplied by MonTeX
-%
-\DeclareOption{mls}{\PassOptionsToPackage{cpmls}{inputenc}}%
-\DeclareOption{ncc}{\PassOptionsToPackage{cpncc}{inputenc}}%
-\DeclareOption{mos}{\PassOptionsToPackage{cpmos}{inputenc}}%
-\DeclareOption{mnk}{\PassOptionsToPackage{cpmnk}{inputenc}}%
-\DeclareOption{dbk}{\PassOptionsToPackage{cpdbk}{inputenc}}%
-\DeclareOption{ibmrus}{\PassOptionsToPackage{cpibmrus}{inputenc}}%
-\DeclareOption{koi}{\PassOptionsToPackage{cpkoi}{inputenc}}%
-\DeclareOption{ctt}{\PassOptionsToPackage{cpctt}{inputenc}}%
-%
-% Initial Unicode Mongolian utf-8 support. Experimental
-%
-\DeclareOption{utf8}{\PassOptionsToPackage{utf8}{inputenc}}%
-%
-% Input encodings supplied by standard installations
-%
-\DeclareOption{1250}{\PassOptionsToPackage{cp1250}{inputenc}}%
-\DeclareOption{1252}{\PassOptionsToPackage{cp1252}{inputenc}}%
-\DeclareOption{437de}{\PassOptionsToPackage{cp437de}{inputenc}}%
-\DeclareOption{437}{\PassOptionsToPackage{cp437}{inputenc}}%
-\DeclareOption{850}{\PassOptionsToPackage{cp850}{inputenc}}%
-\DeclareOption{852}{\PassOptionsToPackage{cp852}{inputenc}}%
-\DeclareOption{865}{\PassOptionsToPackage{cp865}{inputenc}}%
-\DeclareOption{cp1250}{\PassOptionsToPackage{cp1250}{inputenc}}%
-\DeclareOption{cp1252}{\PassOptionsToPackage{cp1252}{inputenc}}%
-\DeclareOption{cp437de}{\PassOptionsToPackage{cp437de}{inputenc}}%
-\DeclareOption{cp437}{\PassOptionsToPackage{cp437}{inputenc}}%
-\DeclareOption{cp850}{\PassOptionsToPackage{cp850}{inputenc}}%
-\DeclareOption{cp852}{\PassOptionsToPackage{cp852}{inputenc}}%
-\DeclareOption{cp865}{\PassOptionsToPackage{cp865}{inputenc}}%
-\DeclareOption{ansinew}{\PassOptionsToPackage{ansinew}{inputenc}}%
-\DeclareOption{applemac}{\PassOptionsToPackage{applemac}{inputenc}}%
-\DeclareOption{ascii}{\PassOptionsToPackage{ascii}{inputenc}}%
-\DeclareOption{atari}{\PassOptionsToPackage{atari}{inputenc}}%
-\DeclareOption{decmulti}{\PassOptionsToPackage{decmulti}{inputenc}}%
-\DeclareOption{isolatin}{\PassOptionsToPackage{isolatin}{inputenc}}%
-\DeclareOption{latin1}{\PassOptionsToPackage{latin1}{inputenc}}%
-\DeclareOption{latin2}{\PassOptionsToPackage{latin2}{inputenc}}%
-\DeclareOption{latin3}{\PassOptionsToPackage{latin3}{inputenc}}%
-\DeclareOption{latin5}{\PassOptionsToPackage{latin5}{inputenc}}%
-\DeclareOption{mac}{\PassOptionsToPackage{mac}{inputenc}}%
-\DeclareOption{next}{\PassOptionsToPackage{next}{inputenc}}%
-\DeclareOption{pc850}{\PassOptionsToPackage{pc850}{inputenc}}%
-\DeclareOption{roman8}{\PassOptionsToPackage{roman8}{inputenc}}%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ------------------- execution of options -------------------
%
\ProcessOptions
@@ -415,8 +367,6 @@
\DeclareFontSubstitution{LMO}{bcghs}{m}{n}%
\fi
%
-\RequirePackage{inputenc}%
-%
% PostScript detection; necessary for user-friendly
% execution of vertical capsules
%
将产生:
\documentclass{article}
\usepackage{mls-hacked}% Note that the order is crucial - this must be loaded before fontspec
\usepackage{fontspec}
\setmainfont{Linux Libertine O}
\begin{document}
\bithe{manju gisun}\\ %Typing Manchu
yǐ mǎn zhōng wèn wén\\
\emph{yǐ mǎn zhōng wèn wén}
\end{document}
请注意,您可以使用获得相同的输出,mls.sty
但它会对加载产生很大的抱怨,inputenc
因为它不应该使用假定 utf8 输入的 XeLaTeX 来加载。