2010-05-14 21 views
14

LaTeX için bir belge dersi yazıyorum ve bunun jenerik olmasını istiyorum. Bu belge sınıfında, özel bir başlık sayfası görüntülemek için \maketitle komutunu yeniden tanımlarım ve burada başlık, yazar vb. Gibi bazı bilgileri görüntülemek istiyorum, ancak bazı diğer bilgileri de. İşte başlığını göstermek nasıl:LaTeX'te title gibi bir komutu nasıl oluştururum?

Bunu nasıl
{\LARGE{\bf \@title}}\\ 

Ben \title veya \author benzer şekilde çalışır, yeni bir komut oluşturmak istiyorum? Eğer latex.ltx bakarsak

cevap

14

aşağıdaki gibi \title tanımlandığını görebilirsiniz:

\def\title#1{\gdef\@title{#1}} 
\def\@title{\@[email protected]{No \noexpand\title given}\@ehc} 

olanlar düşük seviyeli TeX komutlardır. \title, \@title yeniden tanımlayan bir komuttur ve \title'a verilen bağımsız değişkene genişletilir. Daha modern LaTeX olarak kendi tanımı aşağıdaki gibi görünebilir komutları:

\newcommand\foo[1]{\renewcommand\@foo{#1}} 
\newcommand\@foo{\@[email protected]{No \noexpand\foo given}\@ehc} 

Bu hata mesajı göstermek için \PackageError veya \ClassError kullanmak daha iyidir. Veya, isterseniz \foo isteğe bağlı ve varsayılan olarak boş olması:

\newcommand\foo[1]{\renewcommand\@foo{#1}} 
\newcommand\@foo{} 

bu paket içerisinde değilse, sen çünkü @ işaretlerin \makeatletter ve \makeatother arasına koymak gerekir.

7

thesis.cls sınıfımda kullanmış olduğum örnek bir komut. \university numaralı, \title veya \author komutlarının varsayılan değeri "üniversite yok" değerine eşit olan yeni bir komut tanımlar. Giriş başlığımda \university komutunu kullanmazsam, bunun yerine varsayılan değer kullanılır.

:

\def\@university{no university} 
\newcommand{\university}[1]{ 
    \def\@university{#1} 
} 

Sonra \maketitle komuta gibi bir şey olabilir

İlgili konular