使用希腊语,每个词都不带 \textlatin{} \textgreek{}

使用希腊语,每个词都不带 \textlatin{} \textgreek{}

我正在用 Latex 写论文,使用 babel 库\usepackage[english,greek]{babel} 但在每个单词中使用\textlatinand\textgreek非常令人沮丧。我尝试使用 polyglosia 库\usepackage{fontspec,xgreek,polyglossia} ,但在每个编译器中都出现错误。有没有办法在不更改每个单词的情况下同时使用这两个文本?

主要代码如下:

\documentclass[a4paper,12pt]{report}
\usepackage[left=3cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry}
\usepackage[LGR]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english,greek]{babel}
\newcommand{\en}{\selectlanguage{english}}
\newcommand{\gr}{\selectlanguage{greek}}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage[parfill]{parskip}
\usepackage[unicode]{hyperref}
\usepackage{bookmark}
\usepackage{cite}
\usepackage{graphicx}
\usepackage{subcaption}
\usepackage{float}
\usepackage{siunitx}
\usepackage{color}
\usepackage{kmath,kerkis}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot[R]{\thepage}
% Redefine plain style, which is used for titlepage and chapter beginnings
% From https://tex.stackexchange.com/a/30230/828
\fancypagestyle{plain}{%
    \renewcommand{\headrulewidth}{0pt}%
    \fancyhf{}%
    \fancyfoot[R]{\thepage}%
}

\renewcommand{\headrulewidth}{0.4pt}
\setlength{\headheight}{15pt}
\rhead{ \chaptername }
\lhead{Έξυπνο Σπίτι}
\rfoot{\thepage}
\graphicspath{{../PICS/}}

\def\tl{\textlatin}
\def\tg{\textgreek}

\begin{document}
\include{cover}
\title{Υλοποίηση  ενός προσωπικού ψηφιακού βοηθού μέσω \textlatin{open-source} εφαρμογών}
\author{ΧΑΤΖΟΓΛΟΥ ΚΩΣΤΑΣ \\
\today
\href{mailto:[email protected]}{\tl{[email protected]}}}
\maketitle

\tableofcontents

\thispagestyle{empty}
\include{DOCUMENT/Εισαγωγή}
\include{chapter1}
\include{chapter2}
\include{chapter3}
\appendix
\include{acronyms}

\selectlanguage{english}

\bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,references}

\end{document}

答案1

我首选的解决方案是使用babelLuaLaTeX,它可以自动检测您正在使用的脚本并更改字体。

\documentclass{article}
\usepackage[nil]{babel}
\usepackage{unicode-math}
\usepackage[svgnames]{xcolor}

\babelprovide[import=el, main, onchar=ids fonts]{greek} % can also do import=el-polyton
\babelprovide[import, onchar=ids fonts]{english}

\babelfont{rm}
          [Language=Default, Color=DarkGreen]{CMU Serif}
\babelfont[english]{rm}
          [Language=Default, Color=NavyBlue]{CMU Serif}
\babelfont{sf}
          [Language=Default]{CMU Sans Serif}
\babelfont{tt}
          [Language=Default]{CMU Typewriter Text}

\begin{document}
\title{Υλοποίηση ενός προσωπικού ψηφιακού βοηθού μέσω open-source εφαρμογών}
\author{ΧΑΤΖΟΓΛΟΥ ΚΩΣΤΑΣ}
\date{\today}
\maketitle

\section{Έξυπνο Σπίτι}

Some text in English and Ελληνικά.

\end{document}

在此处输入图片描述

我选择 CMU 字体作为示例,因为它们需要Script=Greek字体功能才能正常工作,但纯粹为了测试,我还为希腊语和英语赋予了不同的颜色。

这实际上比必要的更为复杂。实际上,拉丁文和希腊文字母非常相似,因此你可以对它们使用相同的 Unicode 字体。缺点是,你无法为第二种语言获得正确的连字。

XeLaTeX 不支持onchar=,但您可以尝试使用(未维护且有缺陷的)包来执行此操作ucharclasses

\documentclass[english, greek]{article}
\usepackage{babel}
\usepackage{unicode-math}
\usepackage[Latin, Greek]{ucharclasses}
\usepackage[svgnames]{xcolor}

\babelfont{rm}
          [Language=Default, Color=DarkGreen]{CMU Serif}
\babelfont[english]{rm}
          [Language=Default, Color=NavyBlue]{CMU Serif}
\babelfont{sf}
          [Language=Default]{CMU Sans Serif}
\babelfont{tt}
          [Language=Default]{CMU Typewriter Text}

\setTransitionTo{BasicLatin}{\begin{otherlanguage}{english}}
\setTransitionFrom{BasicLatin}{\end{otherlanguage}}

\begin{document}
\title{Υλοποίηση ενός προσωπικού ψηφιακού βοηθού μέσω open-source εφαρμογών}
\author{ΧΑΤΖΟΓΛΟΥ ΚΩΣΤΑΣ}
\date{\today}
\maketitle

\section{Έξυπνο Σπίτι}

Some text in English and Ελληνικά.

\end{document}

我的建议是,如果可以的话就使用 LuaLaTeX,如果被迫的话就使用上个世纪的 8 位字体编码,但如果被迫的话,请按照以下方法操作。

\documentclass[english, greek]{article}
\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018.
\usepackage{babel}

\begin{document}
\title{Υλοποίηση ενός προσωπικού ψηφιακού βοηθού μέσω open-source εφαρμογών}
\author{ΧΑΤΖΟΓΛΟΥ ΚΩΣΤΑΣ}
\date{\today}
\maketitle

\section{Έξυπνο Σπίτι}

Some text in English and Ελληνικά.

\end{document}

与较新的引擎不同,此解决方案只会更改字体,而不会加载希腊语或英语连字模式。如果您只添加几个英文单词,这应该不会有太大问题。如果您确实需要切换语言标签babel,例如因为您需要用英语写出完整的句子并正确连字,您可以使用\foreignlanguage{english}{Some text}\begin{otherlanguage}{english}

如果您确实想在 PDFTeX 中将不同的字体系列配对为英语和希腊语,您可以使用 来实现\substitutefont。此示例使用 TeX Gyre Termes 表示英语,使用 Tempora 表示希腊语。

\documentclass[english, greek]{article}
\usepackage[LGR,T1]{fontenc}
\usepackage[utf8]{inputenc} % The default since 2018.
\usepackage{babel}
\usepackage{tgtermes}
\usepackage{substitutefont}

\substitutefont{LGR}{\rmdefault}{Tempora-TLF}

\begin{document}
\title{Υλοποίηση ενός προσωπικού ψηφιακού βοηθού μέσω open-source εφαρμογών}
\author{ΧΑΤΖΟΓΛΟΥ ΚΩΣΤΑΣ}
\date{\today}
\maketitle

\section{Έξυπνο Σπίτι}

Some text in English and Ελληνικά.

\end{document}

另请注意,PDFTeX 仅支持预组合字符,而不支持组合重音符号。

相关内容