Как вы расширяете класс документов статьи в LaTeX?

Мне действительно не нужно много менять класс документа статьи по умолчанию. Все, что я хочу:

  • переопределить поля страницы (я хочу, чтобы они были одинаковыми на всех страницах, но отличались от значений по умолчанию);
  • использовать титульный лист;
  • добавить больше элементов на титульный лист ( мне недостаточно заголовка , автора и даты , я хочу, чтобы на титульном листе был логотип компании и компании );
  • стили изменение разделов , подразделов и подподразделы (я не хочу, чтобы номера , которые будут показаны, в противном случае - они хороши).

Может быть, есть какие-то пакеты, которые могут пригодиться в этом случае?

Ответов (3)

Решение

There are a number of packages that can help you achieve the results you're looking for. The packages I've selected below are the ones I like, but there is more than one way to do it.

\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

You'll want to read the documentation for the geometry package to adjust the margins. The titlesec package can be used if you want to modify the appearance of the headings (aside from just turning off the numbers).

The titlepage is LaTeX's default title page. You'll need to modify it to add your company name and logo. I've separated out the "stuff to be printed" from all the other code associated with the title page. You should only need to change the \maketitlepage command. In your document, use \maketitle to print the title page.

\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}

Let me know if I missed any of your requirements.

Пара моментов, которые могут быть интересны:

  • Вы можете переопределить поля в заголовке (то есть до \begin{document}}, сбросив контрольную длину, например \setlength{\textwidth}{6.80in}, \setlength{\oddsidemargin}{0.0in}и так далее.

  • \section*{...}уже даст вам ненумерованные разделы. Аналогично для \subsection*и \subsubsection*. Если вы все- таки используете этот трюк и вам также нужны рабочие ссылки, вы можете взглянуть на Как мне передать текстовое содержимое ссылки в LaTeX? .

  • Вы смотрели на titlepageокружающую среду?

Но, пожалуй, самое главное, уроки мемуаров могут дать вам весь необходимый контроль без какого-либо взлома класса. Ознакомьтесь с документацией .

Или воспользуйтесь предложением Джана Берка Гюдера .

Вы начинаете с

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

и после этого добавьте любые настройки.

ОБНОВЛЕНИЕ: я рекомендую вам прочитать LaTeX2e для авторов классов и пакетов: PDF , HTML . Примеры из Раздела 3 (Структура класса или пакета) должны быть полезны.