我在部分中使用命令“\greek”時遇到問題。
這是在普通文字中使用命令 \greek 的範例,效果很好。
\documentclass[polutonikogreek, oneside,11pt]{CUEDthesisPSnPDF}
\usepackage[utf8x]{inputenx}
\newcommand{\greek}[1]{{\selectlanguage{polutonikogreek}#1}}
\begin{document}
%\section{\protect\greek{Πρωταγόρας}}
Protagoras (\greek{Πρωταγόρας}) says that
``Man is the measure of all things'' (\greek{Ἄνθρωπος μέτρον}),
meaning that there is no objective truth.
One opinion can be better than another,
but it cannot be \emph{truer}.
\end{document}
但是,如果我嘗試在部分中使用命令 \greek,則會顯示錯誤。此訊息顯示「\@sect 的參數有一個額外的}。\section{\protect\greek{Πρωταγόρας}}」。
例如,取消註解行「%\section{\protect\greek{Πρωταγόρας}}」。我嘗試過使用 \protect,但沒有幫助。
有什麼想法嗎?
下面是類文件“CUEDthesisPSnPDF”的源代碼(我認為這可能與它有關)。
%
% CUEDthesis v1.0
% By Harish Bhanderi <[email protected]
% Version 1.0 released 15/07/2002
%-------------------------- identification ---------------------
%\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{CUEDthesisPSnPDF}[2003/01/11 v1.2 CUED thesis class]
%-------------------------- initial code -----------------------
%If you want to use a Report style document then uncomment the following 3 lines and comment the below 8 book style lines:
%\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
%\ProcessOptions\relax
%%\LoadClass[a4paper]{report}
%\ifx\pdfoutput\undefined
% \LoadClass[dvips, a4paper]{report}
%\else
% \LoadClass[pdftex, a4paper]{report}
%\fi
%%Bibliography
%%uncomment next line to change bibliography name to references for Report document class
%\renewcommand{\refname}{References}
%If you want to use a Book style document then uncomment the following 3 lines and comment the above 8 report style lines:
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions\relax
\ifx\pdfoutput\undefined
\LoadClass[dvips, a4paper]{book}
\else
\LoadClass[pdftex, a4paper]{book}
\fi
\usepackage{amssymb}
\usepackage{graphics}
\usepackage{fancyhdr}
\usepackage{eucal}
\usepackage[english]{babel}
\usepackage[usenames, dvipsnames]{color}
\usepackage[perpage]{footmisc}
\usepackage[round, sort, numbers, authoryear]{natbib}
\usepackage{ifthen}
\usepackage{ifpdf}
%Bibliography
%uncomment next line to change bibliography name to references for Book document class
\renewcommand{\bibname}{References}
% note that this doesn't do much if you later define another bibliography style
% Nomenclature
\usepackage{nomencl}
\makeglossary
\renewcommand\nomgroup[1]{%
\ifthenelse{\equal{#1}{R}}{%
\item[\textbf{Roman Symbols}]}{% R - Roman
\ifthenelse{\equal{#1}{G}}{%
\item[\textbf{Greek Symbols}]}{% G - Greek
\ifthenelse{\equal{#1}{Z}}{%
\item[\textbf{Superscripts}]}{% Z- Superscripts
\ifthenelse{\equal{#1}{S}}{%
\item[\textbf{Subscripts}]}{% S - Subscripts
\ifthenelse{\equal{#1}{X}}{%
\item[\textbf{Other Symbols}]}{% X - Other Symbols
\ifthenelse{\equal{#1}{T}}{%
\item[\textbf{Terminology}]}{% T - Terminology
\ifthenelse{\equal{#1}{A}}{%
\item[\textbf{Abbreviations and Acronyms}]}% A - Acronyms
{{}}}}}}}}}
\ifpdf
%-->
%--> Google.com search "hyperref options"
%-->
%--> http://www.ai.mit.edu/lab/sysadmin/latex/documentation/latex/hyperref/manual.pdf
%--> http://www.chemie.unibas.ch/~vogtp/LaTeX2PDFLaTeX.pdf
%--> http://www.uni-giessen.de/partosch/eurotex99/ oberdiek/print/sli4a4col.pdf
%--> http://me.in-berlin.de/~miwie/tex-refs/html/latex-packages.html
%-->
\usepackage[ pdftex, plainpages = false, pdfpagelabels,
pdfpagelayout = useoutlines,
bookmarks,
bookmarksopen = true,
bookmarksnumbered = true,
breaklinks = true,
linktocpage,
pagebackref,
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = red,
anchorcolor = green,
hyperindex = true,
hyperfigures
]{hyperref}
\DeclareGraphicsExtensions{.png, .jpg, .pdf}
\usepackage[pdftex]{graphicx}
\pdfcompresslevel=9
\graphicspath{{ThesisFigs/PNG/}{ThesisFigs/PDF/}{ThesisFigs/}}
\else
\usepackage[ dvips,
bookmarks,
bookmarksopen = true,
bookmarksnumbered = true,
breaklinks = true,
linktocpage,
pagebackref,
colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = red,
anchorcolor = green,
hyperindex = true,
hyperfigures
]{hyperref}
\DeclareGraphicsExtensions{.eps, .ps}
\usepackage{epsfig}
\usepackage{graphicx}
\graphicspath{{ThesisFigs/EPS/}{ThesisFigs/}}
\fi
%define the page size including an offset for binding
%\setlength{\topmargin}{0.0in}
%\setlength{\oddsidemargin}{0in}
%\setlength{\evensidemargin}{0in}
%\setlength{\textheight}{700pt}
%\setlength{\textwidth}{500pt}
%A4 settings
\ifpdf
\pdfpageheight=297mm
\pdfpagewidth=210mm
\else
\setlength{\paperheight}{297mm}
\setlength{\paperwidth}{210mm}
\fi
\setlength{\hoffset}{0.00cm}
\setlength{\voffset}{0.00cm}
\setlength{\evensidemargin}{1.96cm}
%\setlength{\oddsidemargin}{-0.54cm}
\setlength{\topmargin}{1mm}
\setlength{\headheight}{1.36cm}
\setlength{\headsep}{1.00cm}
\setlength{\textheight}{20.84cm}
\setlength{\textwidth}{14.5cm}
\setlength{\marginparsep}{1mm}
\setlength{\marginparwidth}{3cm}
\setlength{\footskip}{2.36cm}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{\MakeUppercase{\thechapter. #1 }}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}
\fancyhead[RO]{\bfseries\rightmark}
\fancyhead[LE]{\bfseries\leftmark}
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt}
\fancypagestyle{plain}{
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
}
\newcommand{\submittedtext}{{Dissertation presented for the degree of Doctor of Philosophy in the Faculty of Theology at Stellenbosch University}}
%
%
% DECLARATIONS
%
% These macros are used to declare arguments needed for the
% construction of the title page and other preamble.
% The year and term the degree will be officially conferred
\def\degreedate#1{\gdef\@degreedate{#1}}
% The full (unabbreviated) name of the degree
\def\degree#1{\gdef\@degree{#1}}
% The name of your college or department(eg. Trinity, Pembroke, Maths, Physics)
\def\collegeordept#1{\gdef\@collegeordept{#1}}
% The name of your University
\def\university#1{\gdef\@university{#1}}
% Defining the crest
\def\crest#1{\gdef\@crest{#1}}
% Defining the Promotor
\def\promotor#1{\gdef\@promotor{#1}}
% These macros define an environment for front matter that is always
% single column even in a double-column document.
\newenvironment{alwayssingle}{%
\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
\else\newpage\fi}
{\if@restonecol\twocolumn\else\newpage\fi}
%define title page layout
\renewcommand{\maketitle}{%
\begin{alwayssingle}
\renewcommand{\footnotesize}{\small}
\renewcommand{\footnoterule}{\relax}
\thispagestyle{empty}
% \null\vfill
\begin{center}
{ \Large {\bfseries {\@title}} \par}
{\large \vspace*{20mm} {{\@crest} \par} \vspace*{20mm}}
{{\Large \@author} \par}
{\large \vspace*{1ex}
{{\@collegeordept} \par}
\vspace*{1ex}
{{\@university} \par}
\vspace*{10mm}
{{\@promotor} \par}
\vspace*{20mm}
{{\submittedtext} \par}
\vspace*{1ex}
{\it {\@degree} \par}
\vspace*{2ex}
{\@degreedate}}
\end{center}
\null\vfill
\end{alwayssingle}}
% declaration
%
% The declaration environment makes sure the declaration gets its
% own page and is set out in verse format.
\newenvironment{declaration}
{\pagestyle{plain}
\begin{alwayssingle}
%\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Declaration}
%\end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
\newenvironment{ecsa}
{\pagestyle{plain}
\begin{alwayssingle}
%\begin{center}
\vspace*{1.5cm}
{\Large \bfseries{ECSA Exit Level Outcomes Reference}}
%\end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
% ACKNOWLEDGEMENTS
%
% The acknowledgements environment puts a large, bold, centered
% "Acknowledgements" label at the top of the page. The acknowledgements
% themselves appear in a quote environment, i.e. tabbed in at both sides, and
% on its own page.
\newenvironment{acknowledgements}
{\pagestyle{plain}
\begin{alwayssingle}
%\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Acknowledgements}
%\end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
% The acknowledgementslong environment puts a large, bold, centered
% "Acknowledgements" label at the top of the page. The acknowledgement itself
% does not appears in a quote environment so you can get more in.
\newenvironment{acknowledgementslong}
{\pagestyle{empty}
\begin{alwayssingle}\pagestyle{plain}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Acknowledgements}
\end{center}
\vspace{0.5cm}\begin{quote}}
{\end{quote}\end{alwayssingle}}
%ABSTRACT
%
%The abstract environment puts a large, bold, centered "Abstract" label at
%the top of the page. The abstract itself appears in a quote environment,
%i.e. tabbed in at both sides, and on its own page.
\newenvironment{abstracts} {\begin{alwayssingle} \pagestyle{plain}
% \begin{center}
\vspace*{1.5cm}
{\Large \bfseries Abstract}
% \end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
\newenvironment{opsomming} {\begin{alwayssingle} \pagestyle{plain}
% \begin{center}
\vspace*{1.5cm}
{\Large \bfseries Opsomming}
% \end{center}
\vspace{0.5cm}
\begin{quote}}
{\end{quote}\end{alwayssingle}}
%The abstractlong environment puts a large, bold, centered "Abstract" label at
%the top of the page. The abstract itself does not appears in a quote
%environment so you can get more in.
\newenvironment{abstractslong} {\begin{alwayssingle} \pagestyle{plain}
\begin{center}
\vspace*{1.5cm}
{\Large \bfseries Abstract}
\end{center}
\vspace{0.5cm} \begin{quote}}
{\end{quote}\end{alwayssingle}}
%The abstractseparate environment is for running of a page with the abstract
%on including title and author etc as required to be handed in separately
\newenvironment{abstractseparate} {\begin{alwayssingle} \pagestyle{empty}
\vspace*{-1in}
\begin{center}
{ \Large {\bfseries {\@title}} \par}
{{\large \vspace*{1ex} \@author} \par}
{{\@promotor} \par}
{\large \vspace*{1ex}
{{\@collegeordept} \par}
{{\@university} \par}
\vspace*{1ex}
{{\it \submittedtext} \par}
{\it {\@degree} \par}
\vspace*{2ex}
{\@degreedate}}
\end{center}}
{\end{alwayssingle}}
%ROMANPAGES
%
% The romanpages environment set the page numbering to lowercase roman one
% for the contents and figures lists. It also resets
% page-numbering for the remainder of the dissertation (arabic, starting at 1).
\newenvironment{romanpages}
{\setcounter{page}{1}
\renewcommand{\thepage}{\roman{page}}}
{\newpage\renewcommand{\thepage}{\arabic{page}}\setcounter{page}{1}}
謝謝。
答案1
這應該適用於最近的 TeX 發行版:
\documentclass[polutonikogreek,oneside,11pt]{CUEDthesisPSnPDF}
\usepackage[utf8]{inputenx}
\DeclareRobustCommand{\greek}[1]{%
\foreignlanguage{polutonikogreek}{#1}%
}
\begin{document}
\section{\greek{Πρωταγόρας}}
Protagoras (\greek{Πρωταγόρας}) says that
`Man is the measure of all things'' (\greek{Ἄνθρωπος μέτρον}),
meaning that there is no objective truth.
One opinion can be better than another,
but it cannot be \emph{truer}.
\end{document}
避免utf8x
。