如何在 .cls 文件中更改语言

如何在 .cls 文件中更改语言

问题是这样的:我想在自定义类文件(名为thesis.cls)中使用一种不同于英语的语言,具体来说是希腊语。在.tex文件中,我babel使用以下命令加载了包

\usepackage[greek,english]{babel}

也就是说,英语是我的主要语言。此外,为了更改.tex文件中的语言,我使用

\newcommand{\gr}{\selectlanguage{greek}}
\newcommand{\en}{\selectlanguage{english}}

现在,.cls我想在文件内部为该.tex文件创建下面的文本。

%%%%%%%%%%%%%%%%%%
\newcommand\Declaration[1]{
\btypeout{Declaration of Authorship}
\addtotoc{Declaration of Authorship}
\thispagestyle{plain}
\null\vfil
%\vskip 60\p@
\begin{center}{\huge\bf{\gr{Δήλωση Προστασίας Πνευματικών Δικαιωμάτων}}\par}\end{center}
%\vskip 60\p@
{\normalsize #1}
\vfil\vfil\null
%\cleardoublepage
}
%%%%%%%%%%%%%%%%%%%

我的问题是希腊句子

<<查看更多精彩内容>>

是以类似机器的语言输出的。我该如何用希腊语写出来呢?

%%%%%%%%%%
%thesis.cls (excerpt)
%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesClass{Thesis}
              [2007/22/02 v1.0
   LaTeX document class]

% declaration of options
\newif\ifdext@languagechosen

\DeclareOption{greek}{%
  \PassOptionsToPackage{greek}{babel}
  \dext@languagechosentrue
}
\DeclareOption{english}{%
  \PassOptionsToPackage{english}{babel}
  \dext@languagechosentrue
}

\def\baseclass{book}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
\def\@checkoptions#1#2{
  \edef\@curroptions{\@ptionlist{\@currname.\@currext}}
  \@tempswafalse
  \@tfor\@this:=#2\do{
    \@expandtwoargs\in@{,\@this,}{,\@curroptions,}
    \ifin@ \@tempswatrue \@break@tfor \fi}
  \let\@this\@empty
  \if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi
}
\@checkoptions{11pt}{{10pt}{11pt}{12pt}}
\PassOptionsToClass{a4paper}{\baseclass}
\ProcessOptions\relax
\LoadClass{\baseclass}
\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}}

\newcommand\Declaration[1]{
\btypeout{Declaration of Authorship}
\addtotoc{Declaration of Authorship}
\thispagestyle{plain}
\null\vfil
%\vskip 60\p@
\begin{center}{\huge\bf{\tg{Δήλωση Προστασίας Πνευματικών Δικαιωμάτων}}\par}\end{center}
%\vskip 60\p@
{\normalsize #1}
\vfil\vfil\null
%\cleardoublepage
}

这是我的 LaTeX 文件

%%%%%%%%%%%%%%%%%%%%%%%%%%%
.tex file
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[11pt, a4paper, oneside]{Thesis} % Paper size, default font size and one-sided paper
\usepackage{kmath,kerkis} % The order of the packages matters; kmath changes the default text font
\usepackage[greek,english]{babel}
\usepackage[utf8x]{inputenx}

答案1

不要修改类。我认为已经下载了你提到的那个。我把文件拿来Thesis.tex,把第一行(带有\documentclass)改成

\documentclass[a4paper, 11pt, oneside]{Thesis}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage[greek,english]{babel}
\makeatletter
\renewcommand\Declaration[1]{%
  \btypeout{Declaration of Authorship}
  \addtotoc{Declaration of Authorship}
  \thispagestyle{plain}
  \null\vfil
  \vskip 60\p@
  \begin{center}\huge\bfseries
    \textgreek{Δήλωση Προστασίας Πνευματικών Δικαιωμάτων}
  \end{center}
  \vskip 60\p@
  {\normalsize #1}
  \vfil\vfil\null
  \cleardoublepage
}
\makeatother

声明页面变成了这样

在此处输入图片描述

我只需要修复Chapters/Chapter1.tex文件的编码,编译就可以在 TeX Live 2012 和 2013 版本中顺利运行。我建议您更新您的 TeX 发行版,并将选项更改utf8xutf8

相关内容