似乎使用Cyrillic
连字符不起作用。有解决办法吗?lualatex
\usepackage[lutf8x]{luainputenc}
% !TeX program = lualatex
% !TeX encoding = utf8
% !TeX spellcheck = uk_UA
% !BIB program = bibtex8
\documentclass{article}
\usepackage[T2A]{fontenc}
\usepackage[lutf8x]{luainputenc}
\usepackage[english,russian, ukrainian]{babel}
\begin{document}
Матеріали конференції присвячені сучасним проблемам фізики та фізичних технологій,
перспективним напрямкам фізики енергетичних систем,
теорії безпеки, криптографічного захисту інформації та криптоаналізу, захисту
інформації в комп’ютерних мережах та комунікаціях, забезпеченню цілісності баз даних,
захисту від витоку інформації по каналах побічного електромагнітного випромінювання,
локальним мережам різної струк\-тури, технічного захисту об’єктів, а також науковим
дослідженням фундаментального та прикладного характеру у сфері інформаційних наук.
\end{document}
答案1
经过一些测试,下面的方法对我的 TeXLive15 和最新版本babel
(3.9q,必需,因为它是带有新加载器的版本luatex
)有效。使用以下命令创建本地language.dat
文件:
english hyphen.tex % do not change!
=usenglish
=USenglish
=american
nohyphenation zerohyph.tex
russian hyph-ru.t2a.tex
ukrainian hyph-uk.t2a.tex
我说的“本地”是指在同一个目录中(或者在不干扰全局的情况下您的文档可以找到它的另一个地方language.dat
)。还有一个小问题,因为 Unicode 引擎不完全符合标准 LaTeX 所要求的 lccodes。添加到文档中tex
:
\lccode"F7="F7
我只测试了乌克兰语(没有测试过俄语)。
答案2
如果您愿意使用不带 luainputenc 的解决方案,该解决方案可以在所有三个编译器中工作(尽管 (xe|lua)latex 的字体设置有些麻烦):
% !TeX encoding = utf8
% !TeX spellcheck = uk_UA
% !BIB program = bibtex8
%%% Defining function to check compiler %%%
\RequirePackage{iftex}
\newif\ifxetexorluatex % new if operator (http://tex.stackexchange.com/a/47579)
\ifXeTeX
\xetexorluatextrue
\else
\ifLuaTeX
\xetexorluatextrue
\else
\xetexorluatexfalse
\fi
\fi
%%% Main class setting %%%
\documentclass{article} % If papersize not set explicitly, each compiler can use whatever default has.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Big block of settings for three compilers %%
\ifxetexorluatex
%%% Language setting for (xe|lua)latex %%%
\usepackage{polyglossia} % Loads fontspec also.
\setmainlanguage{ukrainian}
\setotherlanguage[babelshorthands=true]{russian}
\setotherlanguage{english}
%%% Font setting for (xe|lua)latex %%%
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
% \newfontfamily\cyrillicfont{CMU Serif} % Uncomment if asked to define cyrillic fonts.
% \newfontfamily\cyrillicfontsf{CMU Sans Serif} % Uncomment if asked to define cyrillic fonts.
% \newfontfamily\cyrillicfonttt{CMU Typewriter Text} % Uncomment if asked to define cyrillic fonts.
\else
\RequirePDFTeX % Tests for PDFTEX use and throws an error if a different engine is being used.
%%% For proper copypasting of text from pdf %%%
\usepackage{cmap} % Better search and copypasting of cyrillic text from pdf-file. Can cause errors if used together with pdfx package.
\defaulthyphenchar=127 % Better hyphenation for copypasting. Must be set just before fontenc.
%%% Language setting for pdflatex %%%
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,russian, ukrainian]{babel}
\fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
Матеріали конференції присвячені сучасним проблемам фізики та фізичних технологій,
перспективним напрямкам фізики енергетичних систем,
теорії безпеки, криптографічного захисту інформації та криптоаналізу, захисту
інформації в комп’ютерних мережах та комунікаціях, забезпеченню цілісності баз даних,
захисту від витоку інформації по каналах побічного електромагнітного випромінювання,
локальним мережам різної струк\-тури, технічного захисту об’єктів, а також науковим
дослідженням фундаментального та прикладного характеру у сфері інформаційних наук.
\end{document}