2009-02-24 15 views
13

Non ho davvero bisogno di molte modifiche alla classe di documento dell'articolo predefinita. Tutto quello che voglio è:Come estendere la classe del documento dell'articolo in LaTeX?

  • ridefinire i margini della pagina (voglio che siano uguali su tutte le pagine, ma diversi dai valori predefiniti);
  • utilizza la pagina del titolo;
  • aggiungere altri elementi della pagina del titolo (titolo, autore e data non è abbastanza per me, voglio società e società logo di essere sulla pagina di titolo così);
  • stili di modifica delle sezioni , sottosezioni e sottosottosezioni (Non voglio i numeri per essere visualizzati, altrimenti - sono buono).

Forse, ci sono alcuni pacchetti che potrebbero essere utili in questo caso?

risposta

14

Esistono numerosi pacchetti che possono aiutarti a ottenere i risultati che stai cercando. I pacchetti che ho selezionato di seguito sono quelli che mi piacciono, ma c'è più di un modo per farlo.

\NeedsTeXFormat{LaTeX2e} 
\ProvidesClass{paulius-article}[2009/02/25 v0.1 Paulius' modified article class] 

% Passes and class options to the underlying article class 
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} 
\ProcessOptions 

% Load LaTeX's article class with the `titlepage' option so that \maketitle creates a title page, not just a title block 
\LoadClass[titlepage]{article} 

% Redefine the page margins 
% TODO: Adjust margins to your liking 
\RequirePackage[left=1in,right=1in,top=1in,bottom=1in]{geometry} 

% Remove the numbers from all the headings (\section, \subsection, etc.) 
\setcounter{secnumdepth}{-1} 

% To modify the heading styles more thoroughly use the titlesec package 
%\RequirePackage{titlesec} 

% Adjust the title page design 
% NOTE: This is the default LaTeX title page -- free free to make it look like whatever you want. 
% TODO: Add company name and logo somewhere in here. 
\newcommand{\maketitlepage}{% 
    \null\vfil 
    \vskip 60\[email protected] 
    \begin{center}% 
    {\LARGE \@title \par}% 
    \vskip 3em% 
    {\large 
    \lineskip .75em% 
     \begin{tabular}[t]{c}% 
     \@author 
     \end{tabular}\par}% 
     \vskip 1.5em% 
    {\large \@date \par}%  % Set date in \large size. 
    \end{center}\par 
    \@thanks 
    \vfil\null% 
    \end{titlepage}% 
} 

% This some before-and-after code that surrounds the title page. It shouldn't need to be modified. 
% I've pulled out the part the actually typesets the title page and placed it in the \maketitlepage command above. 
\renewcommand\maketitle{\begin{titlepage}% 
    \let\footnotesize\small% 
    \let\footnoterule\relax% 
    \let \footnote \thanks% 
    \maketitlepage% 
    \setcounter{footnote}{0}% 
    \global\let\thanks\relax 
    \global\let\maketitle\relax 
    \global\let\@thanks\@empty 
    \global\let\@author\@empty 
    \global\let\@date\@empty 
    \global\let\@title\@empty 
    \global\let\title\relax 
    \global\let\author\relax 
    \global\let\date\relax 
    \global\let\and\relax 
} 

% TODO: If there are any other article modifications required, add them here. 

% That's all, folks! 
\endinput 

Ti consigliamo di leggere la documentazione per il geometry package per regolare i margini. È possibile utilizzare titlesec package se si desidera modificare l'aspetto delle intestazioni (oltre a disattivare i numeri).

Il frontespizio è la pagina del titolo predefinita di LaTeX. Dovrai modificarlo per aggiungere il nome e il logo della tua azienda. Ho separato la "roba da stampare" da tutti gli altri codici associati alla pagina del titolo. Dovresti solo modificare il comando \maketitlepage. Nel documento, utilizzare \maketitle per stampare la pagina del titolo.

\documentclass{paulius-article} 

\title{My New Document Class} 
\author{Paulius} 

\usepackage{lipsum}% provides some filler text 

\begin{document} 
\maketitle% Actually makes a title page 

\section{Section Heading} 
\subsection{Look no numbers!} 
\lipsum[1-10] 

\end{document} 

Fatemi sapere se ho mancato uno dei vostri requisiti.

+0

Ottimo esempio. Proverò questa roba ora ... Grazie! :) – Paulius

9

Si inizia con

\NeedsTeXFormat{LaTeX2e} 
\ProvidesClass{classname}[2009/02/24] 
\LoadClass{article} 

e aggiungere eventuali personalizzazioni dopo.

UPDATE: vi consiglio di leggere LaTeX2e per gli scrittori di classe e del pacchetto: PDF, HTML. Gli esempi nella Sezione 3 (La struttura di una classe o di un pacchetto) dovrebbero essere utili.

+0

Bene, sono già arrivato a questo punto, ho anche un sacco di \ setlength {..}, ma non sembra funzionare per me. Avete estensioni ben commentate che potreste condividere? Forse un link a qualche parte? – Paulius

+0

Ho aggiornato la mia risposta con un link. –

+1

Buon collegamento. Ho dormito con quella cosa per una settimana o giù di lì cercando di far accettare alla mia tesi l'approvazione della signora marginale ... – dmckee

6

Un paio di punti che potrebbe essere interessante:.

  • È possibile ridefinire i margini nell'intestazione (cioè prima \begin{document}} da resettare le lunghezze di controllo come \setlength{\textwidth}{6.80in}, \setlength{\oddsidemargin}{0.0in} ecc

  • \section*{...} ti darà già sezioni non numerate, allo stesso modo per e \subsubsection*. Se utilizzi questo trucco e vuoi anche riferimenti di lavoro, potresti dare un'occhiata a How do I emit the text content of a reference in LaTeX?.

  • Hai guardato l'ambiente titlepage?

Ma forse più importante, la memoir class può darvi tutto il controllo necessario, senza alcuna incisione di classe. Controlla the documentation.

Oppure utilizzare Can Berk Güder's suggestion.

+0

Beh, l'ho solo guardato, ma sembra molto promettente. – Paulius

Problemi correlati