Как вы расширяете класс документа статьи в LaTeX? - PullRequest
13 голосов
/ 24 февраля 2009

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

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

Возможно, есть какие-то пакеты, которые могут быть полезны в этом случае?

Ответы [ 3 ]

14 голосов
/ 25 февраля 2009

Существует ряд пакетов, которые могут помочь вам достичь желаемых результатов. Пакеты, которые я выбрал ниже, мне нравятся, но есть несколько способов сделать это.

\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\p@
  \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

Вы можете прочитать документацию для пакета геометрии , чтобы настроить поля. Пакет titlesec можно использовать, если вы хотите изменить внешний вид заголовков (кроме простого отключения чисел).

Титульная страница является титульной страницей LaTeX по умолчанию. Вам нужно будет изменить его, чтобы добавить название вашей компании и логотип. Я отделил «материал для печати» от всего другого кода, связанного с титульным листом. Вам нужно только изменить команду \maketitlepage. В вашем документе используйте \maketitle для печати титульного листа.

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

Дайте мне знать, если я пропустил любое из ваших требований.

9 голосов
/ 24 февраля 2009

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

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

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

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

6 голосов
/ 24 февраля 2009

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

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

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

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

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

Или используйте Может предложение Берк Гудер .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...