如何更改英文 LaTeX 模板以接受希腊文正文?

如何更改英文 LaTeX 模板以接受希腊文正文?

polyglossia我是 LaTeX 的新手。我的目标是用希腊语写一篇论文。如果可能的话,我更喜欢使用包而不是 的答案babel。我使用前者制作了一个简单的测试文档,效果很好:

% !TEX TS-program = lualatex

\documentclass[12pt,a4paper]{article}

\usepackage{fontspec}
\usepackage[autostyle=true]{csquotes}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\usepackage{polyglossia}
\setdefaultlanguage{greek}

\title{Υπόστεγο απορριμάτων αερολιμένα Σάμου, Τεχνικές παρατηρήσεις}
\author{Κωνσταντίνος}
\date{\today}

\begin{document}
...
<some greek text>
...
\end{document}

现在我想做同样的事情,但使用英文模板它更复杂,并且有一个main.tex以及一个MastersDoctoralThesis.cls文件。事实上,只需简单地复制相同的命令并将它们添加到 main.tex 文件中即可:

% !TEX TS-program = lualatex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Masters/Doctoral Thesis 
% LaTeX Template
% Version 2.5 (27/8/17)
%
% This template was downloaded from:
% http://www.LaTeXTemplates.com
%
% Version 2.x major modifications by:
% Vel ([email protected])
%
% This template is based on a template by:
% Steve Gunn (http://users.ecs.soton.ac.uk/srg/softwaretools/document/templates/)
% Sunil Patel (http://www.sunilpatel.co.uk/thesis-template/)
%
% Template license:
% CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%----------------------------------------------------------------------------------------
%   PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------

\documentclass[
11pt, % The default document font size, options: 10pt, 11pt, 12pt
%oneside, % Two side (alternating margins) for binding by default, uncomment to switch to one side
english, % ngerman for German
singlespacing, % Single line spacing, alternatives: onehalfspacing or doublespacing
%draft, % Uncomment to enable draft mode (no pictures, no links, overfull hboxes indicated)
%nolistspacing, % If the document is onehalfspacing or doublespacing, uncomment this to set spacing in lists to single
%liststotoc, % Uncomment to add the list of figures/tables/etc to the table of contents
%toctotoc, % Uncomment to add the main table of contents to the table of contents
%parskip, % Uncomment to add space between paragraphs
%nohyperref, % Uncomment to not load the hyperref package
headsepline, % Uncomment to get a line under the header
%chapterinoneline, % Uncomment to place the chapter title next to the number on one line
%consistentlayout, % Uncomment to change the layout of the declaration, abstract and acknowledgements pages to match the default layout
]{MastersDoctoralThesis} % The class file specifying the document structure

\usepackage[utf8]{inputenc} % Required for inputting international characters
\usepackage[T1]{fontenc} % Output font encoding for international characters

\usepackage{mathpazo} % Use the Palatino font by default

\usepackage{fontspec}
\newfontfamily\greekfont[Script=Greek]{Linux Libertine O}
\newfontfamily\greekfontsf[Script=Greek]{Linux Libertine O}
\usepackage{polyglossia}
\setdefaultlanguage{greek}


\usepackage[backend=bibtex,style=authoryear,natbib=true]{biblatex} % Use the bibtex backend with the authoryear citation style (which resembles APA)

\addbibresource{example.bib} % The filename of the bibliography

\usepackage[autostyle=true]{csquotes} % Required to generate language-dependent quotes in the bibliography
...

我收到大量错误,这是意料之中的。其中大部分是:

! Package polyglossia Error: The current roman font does not contain the Greek 
script!
(polyglossia)                Please define \greekfont with \newfontfamily.

See the polyglossia package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.11 {\small\verb
               !\hypersetup{urlcolor=red}!}, or

或者

! Undefined control sequence.
<argument> \ifnum \c@chapter <\@ne \space \gr@ill@value 
                                             {\c@chapter }\else \ifnum \c@chapt
l.8 ...I change the colors of links?}{3}{section.16}
                                                  %
The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

问题是您如何实现这一点?我的意思是,我也应该在 .cls 文件中进行更改吗?还是只在 main.tex 文件中进行更改?我是否遗漏了这里一些琐碎的事情?

答案1

您使用的类MastersDoctoralThesis使用了babel。也许可以去掉它,但这似乎比必要的更复杂。但是,我知道babel-greek与 XeLaTeX 或 LuaLaTeX 一起使用的唯一方法是加载fontspec babel。由于babel是由类加载的,我们必须这样做 \documentclassmain.tex我对所提到的模板做了以下更改:

  • \RequirePackage{fontspec} \documentclass
  • 在类选项中替换englishgreek
  • inputenc用以下方式替换、fontencmathpazo包 的加载
    \setmainfont{Linux Libertine O}
    \setsansfont{Linux Biolinum O}
    
  • 用示例中的文本替换\thesistitle\author

结果:

在此处输入图片描述

显然,您必须替换更多的样板文本。

以下是完整的序言:

\RequirePackage{fontspec}
\documentclass[
11pt, % The default document font size, options: 10pt, 11pt, 12pt
%oneside, % Two side (alternating margins) for binding by default, uncomment to switch to one side
greek, % ngerman for German
singlespacing, % Single line spacing, alternatives: onehalfspacing or doublespacing
%draft, % Uncomment to enable draft mode (no pictures, no links, overfull hboxes indicated)
%nolistspacing, % If the document is onehalfspacing or doublespacing, uncomment this to set spacing in lists to single
%liststotoc, % Uncomment to add the list of figures/tables/etc to the table of contents
%toctotoc, % Uncomment to add the main table of contents to the table of contents
%parskip, % Uncomment to add space between paragraphs
%nohyperref, % Uncomment to not load the hyperref package
headsepline, % Uncomment to get a line under the header
%chapterinoneline, % Uncomment to place the chapter title next to the number on one line
%consistentlayout, % Uncomment to change the layout of the declaration, abstract and acknowledgements pages to match the default layout
]{MastersDoctoralThesis} % The class file specifying the document structure

\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}


\usepackage[backend=bibtex,style=authoryear,natbib=true]{biblatex} % Use the bibtex backend with the authoryear citation style (which resembles APA)

\addbibresource{example.bib} % The filename of the bibliography

\usepackage[autostyle=true]{csquotes} % Required to generate language-dependent quotes in the bibliography

%----------------------------------------------------------------------------------------
%   MARGIN SETTINGS
%----------------------------------------------------------------------------------------

\geometry{
    paper=a4paper, % Change to letterpaper for US letter
    inner=2.5cm, % Inner margin
    outer=3.8cm, % Outer margin
    bindingoffset=.5cm, % Binding offset
    top=1.5cm, % Top margin
    bottom=1.5cm, % Bottom margin
    %showframe, % Uncomment to show how the type block is set on the page
}

%----------------------------------------------------------------------------------------
%   THESIS INFORMATION
%----------------------------------------------------------------------------------------

\thesistitle{Υπόστεγο απορριμάτων αερολιμένα Σάμου, Τεχνικές παρατηρήσεις} % Your thesis title, this is used in the title and abstract, print it elsewhere with \ttitle
\supervisor{Dr. James \textsc{Smith}} % Your supervisor's name, this is used in the title page, print it elsewhere with \supname
\examiner{} % Your examiner's name, this is not currently used anywhere in the template, print it elsewhere with \examname
\degree{Doctor of Philosophy} % Your degree name, this is used in the title page and abstract, print it elsewhere with \degreename
\author{Κωνσταντίνος} % Your name, this is used in the title page and abstract, print it elsewhere with \authorname
\addresses{} % Your address, this is not currently used anywhere in the template, print it elsewhere with \addressname

\subject{Biological Sciences} % Your subject area, this is not currently used anywhere in the template, print it elsewhere with \subjectname
\keywords{} % Keywords for your thesis, this is not currently used anywhere in the template, print it elsewhere with \keywordnames
\university{\href{http://www.university.com}{University Name}} % Your university's name and URL, this is used in the title page and abstract, print it elsewhere with \univname
\department{\href{http://department.university.com}{Department or School Name}} % Your department's name and URL, this is used in the title page and abstract, print it elsewhere with \deptname
\group{\href{http://researchgroup.university.com}{Research Group Name}} % Your research group's name and URL, this is used in the title page, print it elsewhere with \groupname
\faculty{\href{http://faculty.university.com}{Faculty Name}} % Your faculty's name and URL, this is used in the title page and abstract, print it elsewhere with \facname

\AtBeginDocument{
\hypersetup{pdftitle=\ttitle} % Set the PDF's title to your title
\hypersetup{pdfauthor=\authorname} % Set the PDF's author to your name
\hypersetup{pdfkeywords=\keywordnames} % Set the PDF's keywords to your keywords
}

\begin{document}

答案2

\documentclass{book}
\usepackage[greek.polutoniko,english]{babel}

\newenvironment{greek}
  {\begin{otherlanguage*}{greek}}
  {\end{otherlanguage*}}

\begin{document}

\begin{greek}
To~u d`e poso~u t`o m'en >esti diwrism'enon, t`o d`e suneqes.

This is for test
\end{greek}

\end{document}

输出

在此处输入图片描述

相关内容