[docs] page layout

Alex Ott ottalex на narod.ru
Ср Янв 14 21:50:41 MSK 2004


Привет

У меня вот сделано грязными хаками :-) Смотрите

>>>>> "KM" == Kirill Maslinsky writes:
 >> Для начала предлагается сделать:
 >> 
 >> * макет левой и правой страницы;

 KM> Это и есть макет полосы в любом двустороннем классе типа book, где
 KM> различаются соответственно правый и левый колонтитулы и т. п.,
 KM> т. е. это проблема аккуратного переопределения стандартного
 KM> LaTeXовского стиля.

 >> * выбрать основной шрифт и достать файлы с этими шрифтами.

тут были сделаны хаки прямо в db2latex, которые захватывали title &
subtitle у книг, поскольку мне не хотелось полностью перехватывать на себя
обработку book/title & book/subtitle

Правда есть проблема с тем что русский язык подключается позже чем 
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{{\small\slshape \leftmark}}

и не получается писать по русски в fancyhead.

Хотя я думаю, что надо похачить db2latex чтобы можно было
разруливать/настраивать заголовки директивами xsl.

ну и этот стиль используется для рус/английской версии, так что приходится
разруливать оформление заголовков рисунков/таблиц

===========================================================================
<?xml version="1.0" encoding="koi8-r"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:import href="../db2latex/xsl/docbook-alt.xsl"/>
  <xsl:output encoding="koi8-r"/>
  <xsl:variable name="latex.inputenc">koi8-r</xsl:variable>
  <xsl:variable name="latex.fontenc">T2A</xsl:variable>
  <xsl:param name="unicode.mapping.languages">ru</xsl:param>
  <xsl:variable name="latex.babel.language">english,russian</xsl:variable>
  <xsl:variable name="latex.math.support">1</xsl:variable>
  <xsl:param name="latex.use.fancyvrb" select="'1'"/>
  <xsl:param name="latex.use.hyperref" select="'1'"/>
  <xsl:param name="latex.hyperref.param.common"
	     select="'unicode,colorlinks=true,a4paper'"/>
  <xsl:param name="ulink.footnotes">1</xsl:param>
  <xsl:variable name="latex.use.fancyhdr">0</xsl:variable>
  <xsl:variable name="latex.use.fancybox">1</xsl:variable>
  <xsl:variable name="latex.admonition.path"></xsl:variable>
  <xsl:param name="latex.documentclass.book">12pt</xsl:param>
  <xsl:variable name="latex.hyphenation.tttricks">1</xsl:variable>
  <xsl:param name="latex.document.font">default</xsl:param>
<!-- Отключаем ruler'ы вокруг таблиц и картинок -->  
  <xsl:template name="latex.float.preamble" />
<!-- чтобы не перекрывало установки пакета geometry -->  
  <xsl:variable name="latex.book.varsets">
  </xsl:variable>
  
  <xsl:variable name="latex.book.preamblestart">
    <xsl:text>\ifx\pdfoutput\undefined</xsl:text>
    <xsl:text>\documentclass[</xsl:text>
    <xsl:value-of select="$latex.documentclass.common"/>
    <xsl:text>,</xsl:text>
    <xsl:value-of select="$latex.documentclass.book"/>
    <xsl:text>,</xsl:text>
    <xsl:value-of select="$latex.documentclass.pdftex"/>
    <xsl:text>]{</xsl:text>
    <xsl:choose>
      <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass"/></xsl:when>
      <xsl:otherwise><xsl:text>book</xsl:text></xsl:otherwise>
    </xsl:choose>
    <xsl:text>}
  </xsl:text>
  <xsl:text>\else
</xsl:text>
<xsl:text>\documentclass[pdftex,</xsl:text>
<xsl:value-of select="$latex.documentclass.common"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="$latex.documentclass.book"/>
<xsl:text>,</xsl:text>
<xsl:value-of select="$latex.documentclass.dvips"/>
<xsl:text>]{</xsl:text>
<xsl:choose>
  <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass"/></xsl:when>
  <xsl:otherwise><xsl:text>book</xsl:text></xsl:otherwise>
</xsl:choose>
<xsl:text>}
</xsl:text>
<xsl:text>\fi

\usepackage[a4paper,hmargin={3cm,2cm},vmargin={3cm,2.5cm},twoside]{geometry}
\usepackage{longtable,citehack,enumerate}
</xsl:text>
<xsl:choose>
  <xsl:when test="$unicode.mapping.languages='ru'">
  <xsl:text>\usepackage{indentfirst}</xsl:text></xsl:when>
</xsl:choose>
<!-- Сделать еще исправлений, чтобы в английской версии отступа у
     параграфов не было, но разгон между параграфами был больше -->
<xsl:text>
\usepackage{footnpag}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[RE]{{\small\slshape \leftmark}}
\fancyhead[LO]{{\small\slshape \rightmark}}
\fancyhead[LE,RO]{\thepage}
%\fancyfoot[RE,LO]{\textit{\small\copyright\; ``Инфосистемы Джет'', \number\year}}
\fancyfoot[C]{}
\renewcommand{\headrulewidth}{0.2pt}
\renewcommand{\footrulewidth}{0pt}

%\parsep 0pt plus 1pt
%\itemsep 0pt plus 1pt
</xsl:text>

<xsl:choose>
  <xsl:when test="$unicode.mapping.languages='ru'">
  <xsl:text>
    % оформление подписей под плавающими объектами
    \usepackage{caption2}
    %\captionstyle{indent}%
    \renewcommand\captionfont{\normalsize}%
    %\setcaptionmargin{\leftmargin}
    %\setlength\captionindent{\parindent}
    \renewcommand\captionlabeldelim{.}
    \onelinecaptionstrue
  </xsl:text></xsl:when>
</xsl:choose>

<xsl:text>
\renewcommand{\topfraction}{.9}
\renewcommand{\textfraction}{.1}
\renewcommand{\bottomfraction}{.9}
\renewcommand{\floatpagefraction}{.9}
%\renewcommand{\dblfloatpagefraction}{\floatpagefraction}
\setcounter{topnumber}{4}
\setcounter{bottomnumber}{4}
\setcounter{totalnumber}{4}
\setlength{\floatsep}{8pt plus 2pt minus 2pt}
\setlength{\textfloatsep}{8pt plus 2pt minus 2pt}
\setlength{\intextsep}{6pt plus 2pt minus 2pt}

</xsl:text>
</xsl:variable>

<xsl:template match="book/title" mode="maketitle.mode">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="book/subtitle" mode="maketitle.mode">
  <xsl:apply-templates />
</xsl:template>

<xsl:variable name="latex.maketitle">
  <xsl:text>
    \thispagestyle{empty}
    \begin{titlepage}
    \rule{0pt}{1cm}
    \vspace{25mm}
    \begin{flushright}
    \par{\sffamily\textsl{\textbf{\Huge\booktitle\rule{0pt}{1cm}}}}
    \end{flushright}
    \vspace{30mm}
    \begin{center}
    \par{\sffamily\LARGE\booksubtitle}
    \end{center}
%    \vfill
%    \begin{center}
%    \textbf{\copyright\; ``Инфосистемы Джет'', \number\year}
%    \end{center}
    \end{titlepage}
    \clearpage
    \thispagestyle{empty}
    \rule{0pt}{1cm}
%    \vfill
%    {\textbf выходные данные и авторы?}
    \clearpage
  </xsl:text>
</xsl:variable>
<xsl:param name="latex.document.font">times</xsl:param>

<xsl:variable name="latex.book.begin.document">
  \begin{document}
  \frenchspacing%
  \righthyphenmin=2%
  \sloppy%
</xsl:variable>
</xsl:stylesheet>


===========================================================================

-- 
With best wishes, Alex Ott
-------------------------------
Jet Infosystems, Moscow, Russia    mailto: ottalex на narod.ru
http://xtalk.msk.su/~ott/          ICQ #22005116




Подробная информация о списке рассылки docs