texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: * tp/Texinfo/Convert/LaTeX.pm (_informative_comma


From: Patrice Dumas
Subject: branch master updated: * tp/Texinfo/Convert/LaTeX.pm (_informative_command_output) (_latex_begin_output, _convert): add _informative_command_output that returns LaTeX output code for informative @-commands based on code in _convert, use it in _convert. In _latex_begin_output also call _informative_command_output for informative commands that have a different customization option value from the LaTeX default.
Date: Thu, 29 Dec 2022 17:22:10 -0500

This is an automated email from the git hooks/post-receive script.

pertusus pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new df38ca3d2c * tp/Texinfo/Convert/LaTeX.pm (_informative_command_output) 
(_latex_begin_output, _convert): add _informative_command_output that returns 
LaTeX output code for informative @-commands based on code in _convert, use it 
in _convert.  In _latex_begin_output also call _informative_command_output for 
informative commands that have a different customization option value from the 
LaTeX default.
df38ca3d2c is described below

commit df38ca3d2caec8193fc8d6c0b045842345005536
Author: Patrice Dumas <pertusus@free.fr>
AuthorDate: Thu Dec 29 23:21:42 2022 +0100

    * tp/Texinfo/Convert/LaTeX.pm (_informative_command_output)
    (_latex_begin_output, _convert): add _informative_command_output
    that returns LaTeX output code for informative @-commands based
    on code in _convert, use it in _convert.  In _latex_begin_output
    also call _informative_command_output for informative commands
    that have a different customization option value from the LaTeX
    default.
    
    * tp/t/latex_tests.t, Makefile.tres: add
    customize_informative_commands test to test customization options for
    informative @-commands.
---
 ChangeLog                                          |  14 ++
 tp/Makefile.tres                                   |   4 +
 tp/Texinfo/Convert/LaTeX.pm                        | 225 ++++++++++++---------
 tp/t/latex_tests.t                                 |   9 +
 .../latex_tests/customize_informative_commands.pl  |  87 ++++++++
 .../res_latex/customize_informative_commands.tex   |  55 +++++
 ...hapternewpage_on_odd_titlepage_set_headings.tex |  72 +++++++
 7 files changed, 371 insertions(+), 95 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1551ecc600..cc37138604 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -8,6 +8,20 @@
        * tp/Makefile.am (dist-hook): Do not distribute architecture-
        dependent gettext_xs.o file.  Report from Hilmar Preuße.
 
+2022-12-29  Patrice Dumas  <pertusus@free.fr>
+
+       * tp/Texinfo/Convert/LaTeX.pm (_informative_command_output)
+       (_latex_begin_output, _convert): add _informative_command_output
+       that returns LaTeX output code for informative @-commands based
+       on code in _convert, use it in _convert.  In _latex_begin_output
+       also call _informative_command_output for informative commands
+       that have a different customization option value from the LaTeX
+       default.
+
+       * tp/t/latex_tests.t, Makefile.tres: add
+       customize_informative_commands test to test customization options for
+       informative @-commands.
+
 2022-12-29  Patrice Dumas  <pertusus@free.fr>
 
        * tp/Texinfo/Common.pm (%document_settable_multiple_at_commands):
diff --git a/tp/Makefile.tres b/tp/Makefile.tres
index 0f4e495c6c..c33940fe77 100644
--- a/tp/Makefile.tres
+++ b/tp/Makefile.tres
@@ -1020,6 +1020,8 @@ test_files_generated_list = 
$(test_tap_files_generated_list) \
   t/results/latex_tests/brace_in_index/res_latex/brace_in_index.tex \
   t/results/latex_tests/custom_headings.pl \
   t/results/latex_tests/custom_headings/res_latex/custom_headings.tex \
+  t/results/latex_tests/customize_informative_commands.pl \
+  
t/results/latex_tests/customize_informative_commands/res_latex/customize_informative_commands.tex
 \
   t/results/latex_tests/enumerate_arguments.pl \
   t/results/latex_tests/enumerate_arguments/res_latex/enumerate_arguments.tex \
   t/results/latex_tests/error_in_sectioning_command.pl \
@@ -1051,6 +1053,8 @@ test_files_generated_list = 
$(test_tap_files_generated_list) \
   t/results/latex_tests/pagetype/res_latex/pagetype.tex \
   t/results/latex_tests/setchapternewpage_on_odd_titlepage.pl \
   
t/results/latex_tests/setchapternewpage_on_odd_titlepage/res_latex/setchapternewpage_on_odd_titlepage.tex
 \
+  t/results/latex_tests/setchapternewpage_on_odd_titlepage_set_headings.pl \
+  
t/results/latex_tests/setchapternewpage_on_odd_titlepage_set_headings/res_latex/setchapternewpage_on_odd_titlepage_set_headings.tex
 \
   t/results/latex_tests/settitle_and_headings.pl \
   
t/results/latex_tests/settitle_and_headings/res_latex/settitle_and_headings.tex 
\
   t/results/latex_tests/shorttitlepage.pl \
diff --git a/tp/Texinfo/Convert/LaTeX.pm b/tp/Texinfo/Convert/LaTeX.pm
index b21a8659d2..553d92b9d9 100644
--- a/tp/Texinfo/Convert/LaTeX.pm
+++ b/tp/Texinfo/Convert/LaTeX.pm
@@ -782,6 +782,7 @@ my %defaults = (
   'EXTENSION'            => 'tex',
 
   'documentlanguage'     => undef,
+  'paragraphindent'      => undef, # global default is for Info/Plaintext
 
   'converted_format'     => 'latex',
 
@@ -1619,12 +1620,113 @@ roundcorner=10pt}
   return $class_and_usepackage_begin . $usepackage_end . "\n" . $header_code;
 }
 
+# return LaTeX output code for informative @-commands.
+sub _informative_command_output($$)
+{
+  my $self = shift;
+  my $cmdname = shift;
+  my $value = shift;
+
+  if ($cmdname eq 'documentlanguage') {
+    my $language = $self->get_conf($cmdname);
+    $language =~ s/_/-/;
+    $self->{'packages'}->{'babel'} = 1;
+    return "\\selectlanguage{$language}%\n";
+  } elsif ($cmdname eq 'pagesizes') {
+    my $pagesize_spec = $self->get_conf($cmdname);
+    my @pagesize_args = split(/\s*,\s*/, $pagesize_spec);
+    my @geometry;
+    my $height = shift @pagesize_args;
+    if (defined($height) and $height ne '') {
+      push @geometry, "textheight=$height";
+    }
+    my $width = shift @pagesize_args;
+    if (defined($width) and $width ne '') {
+      push @geometry, "textwidth=$width";
+    }
+    if (scalar(@geometry)) {
+      $self->{'packages'}->{'geometry'} = 1;
+      return "\\newgeometry{".join(',', @geometry)."}\n";
+    }
+  } elsif ($cmdname eq 'paragraphindent') {
+    my $indentation_spec = $self->get_conf($cmdname);
+    if ($indentation_spec eq 'asis') {
+      # not implemented here, same as in TeX.
+      return '';
+    } else {
+      my $indentation_spec_arg = $indentation_spec.'em';
+      if ($indentation_spec eq '0' or $indentation_spec eq 'none') {
+        $indentation_spec_arg = '0pt';
+      }
+      return "\\setlength{\\parindent}{$indentation_spec_arg}\n";
+    }
+  } elsif ($cmdname eq 'firstparagraphindent') {
+    my $indentation_spec = $self->get_conf($cmdname);
+    my $result = "\\makeatletter\n";
+    if ($indentation_spec eq 'insert') {
+      # From LaTeX indentfirst package: "LaTeX uses the switch
+      # \if@afterindent to decide whether to indent after a section
+      # heading. We just need to make sure that this is always true."
+      $result .= "\\let\\\@afterindentfalse\\\@afterindenttrue\n";
+      $result .= "\\\@afterindenttrue\n";
+    } elsif ($indentation_spec eq 'none') {
+      # restore original definition
+      $result .= '\\def\\@afterindentfalse{'
+                 . "\\let\\if\@afterindent\\iffalse}\n";
+    }
+    $result .= "\\makeatother\n";
+    return $result;
+  } elsif ($cmdname eq 'frenchspacing') {
+    my $frenchspacing_spec = $self->get_conf($cmdname);
+    if ($frenchspacing_spec eq 'on') {
+      return "\\frenchspacing\n";
+    } elsif ($frenchspacing_spec eq 'off') {
+      return "\\nonfrenchspacing\n";
+    }
+  } elsif ($cmdname eq 'setchapternewpage') {
+    my $setchapternewpage_spec = $self->get_conf($cmdname);
+    my ($setchapternewpage_result, $heading_set)
+      = _set_chapter_new_page($self, $setchapternewpage_spec);
+    return $setchapternewpage_result;
+  } elsif ($cmdname eq 'headings') {
+    my $headings_spec = $self->get_conf($cmdname);
+    return _set_headings($self, $headings_spec);
+  } elsif ($cmdname eq 'fonttextsize') {
+    my $fontsize = $self->get_conf($cmdname);
+    $self->{'packages'}->{'fontsize'} = 1;
+    # default dimension for changefontsize is pt
+    return "\\changefontsize{$fontsize}\n";
+  } elsif ($cmdname eq 'microtype') {
+    my $microtype_spec = $self->get_conf($cmdname);
+    $self->{'packages'}->{'microtype'} = 1;
+    if ($microtype_spec eq 'on') {
+      return "\\microtypesetup{activate=true}%\n";
+    } elsif ($microtype_spec eq 'off') {
+      return "\\microtypesetup{activate=false}%\n";
+    }
+  } elsif ($paper_geometry_commands{$cmdname}) {
+    $self->{'packages'}->{'geometry'} = 1;
+    return "\\geometry{$paper_geometry_commands{$cmdname}}%\n";
+  }
+
+  return '';
+}
+
+my %LaTeX_defaults = (
+  'firstparagraphindent' => 'none',
+  'fonttextsize' => 11,
+  'frenchspacing' => 'off',
+  'microtype' => 'off',
+);
+
 sub _latex_begin_output($)
 {
   my $self = shift;
 
-  my $header = '';
-  # setup defaults
+  #my $header = "\n";
+  my $header = "";
+  # Special treatment for setchapternewpage, we want to avid
+  # a useless headings set just below
   $header .= "% set default for \@setchapternewpage\n";
   my $heading_set;
   if (defined($self->get_conf('setchapternewpage'))) {
@@ -1638,6 +1740,29 @@ sub _latex_begin_output($)
                              or $heading_set ne $heading)) {
     $header .= _set_headings($self, $heading);
   }
+
+  # only output if different from default
+  foreach my $informative_cmdname (sort(keys(%LaTeX_defaults))) {
+    my $conf_value = $self->get_conf($informative_cmdname);
+    if (defined($conf_value)
+        and $conf_value ne $LaTeX_defaults{$informative_cmdname}) {
+      $header .= _informative_command_output($self, $informative_cmdname);
+    }
+  }
+  foreach my $informative_cmdname ('documentlanguage', 'pagesizes',
+                                               'paragraphindent') {
+    my $conf_value = $self->get_conf($informative_cmdname);
+    if (defined ($conf_value)) {
+      $header .= _informative_command_output($self, $informative_cmdname);
+    }
+  }
+
+  foreach my $cmdname (sort(keys(%paper_geometry_commands))) {
+    if (defined($self->get_conf($cmdname))) {
+      $header .= _informative_command_output($self, $cmdname);
+    }
+  }
+
   $header .= "\n";
   return $header;
 }
@@ -2029,7 +2154,7 @@ sub _set_chapter_new_page($$)
   $result .= _set_headings($self, $heading_set);
 
   $self->{'prev_chapter_new_page_substitution'} = $new_code;
-  
+
   return $result, $heading_set;
 }
 
@@ -3795,98 +3920,8 @@ sub _convert($$)
 
       my $set = Texinfo::Common::set_informative_command_value($self, 
$element);
 
-      if (not $set) {
-        return $result;
-      }
-      if ($cmdname eq 'documentlanguage') {
-        my $language = $self->get_conf('documentlanguage');
-        $language =~ s/_/-/;
-        $result .= "\\selectlanguage{$language}%\n";
-        $self->{'packages'}->{'babel'} = 1;
-      } elsif ($cmdname eq 'pagesizes') {
-        my $pagesize_spec = _convert($self, $element->{'args'}->[0]);
-        #my $pagesize_spec = $self->get_conf('pagesizes');
-        my @pagesize_args = split(/\s*,\s*/, $pagesize_spec);
-        my @geometry;
-        my $height = shift @pagesize_args;
-        if (defined($height) and $height ne '') {
-          push @geometry, "textheight=$height";
-        }
-        my $width = shift @pagesize_args;
-        if (defined($width) and $width ne '') {
-          push @geometry, "textwidth=$width";
-        }
-        if (scalar(@geometry)) {
-          $result .= "\\newgeometry{".join(',', @geometry)."}\n";
-          $self->{'packages'}->{'geometry'} = 1;
-        }
-      } elsif ($cmdname eq 'paragraphindent'
-          and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $indentation_spec = $element->{'extra'}->{'misc_args'}->[0];
-        if ($indentation_spec eq 'asis') {
-          # not implemented here, same as in TeX.
-          return $result;
-        } else {
-          my $indentation_spec_arg = $indentation_spec.'em';
-          if ($indentation_spec eq '0' or $indentation_spec eq 'none') {
-            $indentation_spec_arg = '0pt';
-          }
-          $result .= "\\setlength{\\parindent}{$indentation_spec_arg}\n";
-        }
-      } elsif ($cmdname eq 'firstparagraphindent'
-          and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $indentation_spec = $element->{'extra'}->{'misc_args'}->[0];
-        $result .= "\\makeatletter\n";
-        if ($indentation_spec eq 'insert') {
-          # From LaTeX indentfirst package: "LaTeX uses the switch
-          # \if@afterindent to decide whether to indent after a section
-          # heading. We just need to make sure that this is always true."
-          $result .= "\\let\\\@afterindentfalse\\\@afterindenttrue\n";
-          $result .= "\\\@afterindenttrue\n";
-        } elsif ($indentation_spec eq 'none') {
-          # restore original definition
-          $result .= '\\def\\@afterindentfalse{'
-                     . "\\let\\if\@afterindent\\iffalse}\n";
-        }
-        $result .= "\\makeatother\n";
-      } elsif ($cmdname eq 'frenchspacing'
-               and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $frenchspacing_spec = $element->{'extra'}->{'misc_args'}->[0];
-        if ($frenchspacing_spec eq 'on') {
-          $result .= "\\frenchspacing\n";
-        } elsif ($frenchspacing_spec eq 'off') {
-          $result .= "\\nonfrenchspacing\n";
-        }
-      } elsif ($cmdname eq 'setchapternewpage'
-               and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $setchapternewpage_spec = $element->{'extra'}->{'misc_args'}->[0];
-        my ($setchapternewpage_result, $heading_set)
-          = _set_chapter_new_page($self, $setchapternewpage_spec);
-        $result .= $setchapternewpage_result;
-      } elsif ($cmdname eq 'headings'
-               and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $headings_spec = $element->{'extra'}->{'misc_args'}->[0];
-        $result .= _set_headings($self, $headings_spec);
-      } elsif ($cmdname eq 'fonttextsize'
-               and $element->{'extra'}
-               and $element->{'extra'}->{'misc_args'}
-               and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $fontsize = $element->{'extra'}->{'misc_args'}->[0];
-        # default dimension for changefontsize is pt
-        $result .= "\\changefontsize{$fontsize}\n";
-        $self->{'packages'}->{'fontsize'} = 1;
-      } elsif ($paper_geometry_commands{$cmdname}) {
-        $result .= "\\geometry{$paper_geometry_commands{$cmdname}}%\n";
-        $self->{'packages'}->{'geometry'} = 1;
-      } elsif ($cmdname eq 'microtype'
-               and $element->{'extra'}->{'misc_args'}->[0]) {
-        my $microtype_spec = $element->{'extra'}->{'misc_args'}->[0];
-        if ($microtype_spec eq 'on') {
-          $result .= "\\microtypesetup{activate=true}%\n";
-        } elsif ($microtype_spec eq 'off') {
-          $result .= "\\microtypesetup{activate=false}%\n";
-        }
-        $self->{'packages'}->{'microtype'} = 1;
+      if ($set) {
+        $result .= _informative_command_output($self, $cmdname);
       }
       return $result;
     } else {
diff --git a/tp/t/latex_tests.t b/tp/t/latex_tests.t
index 5d3969eb07..9ae2e2a983 100644
--- a/tp/t/latex_tests.t
+++ b/tp/t/latex_tests.t
@@ -582,6 +582,15 @@ In afourpaper reset
 
 @pagesizes , 
 '],
+['customize_informative_commands',
+'@chapter chap
+', {}, {'pagesizes' => '200mm,150mm',
+        'frenchspacing' => 'on',
+        'microtype' => 'off',
+        'firstparagraphindent' => 'insert',
+        'fonttextsize' => '11',
+        'paragraphindent' => 4,
+        'afivepaper' => ''}],
 ['verbatim_in_smallformat',
 '@smallformat
 @verbatim
diff --git a/tp/t/results/latex_tests/customize_informative_commands.pl 
b/tp/t/results/latex_tests/customize_informative_commands.pl
new file mode 100644
index 0000000000..6d9bb5bf74
--- /dev/null
+++ b/tp/t/results/latex_tests/customize_informative_commands.pl
@@ -0,0 +1,87 @@
+use vars qw(%result_texis %result_texts %result_trees %result_errors 
+   %result_indices %result_sectioning %result_nodes %result_menus
+   %result_floats %result_converted %result_converted_errors 
+   %result_elements %result_directions_text %result_indices_sort_strings);
+
+use utf8;
+
+$result_trees{'customize_informative_commands'} = {
+  'contents' => [
+    {
+      'contents' => [
+        {
+          'contents' => [],
+          'type' => 'preamble_before_content'
+        }
+      ],
+      'type' => 'before_node_section'
+    },
+    {
+      'args' => [
+        {
+          'contents' => [
+            {
+              'text' => 'chap'
+            }
+          ],
+          'info' => {
+            'spaces_after_argument' => '
+'
+          },
+          'type' => 'line_arg'
+        }
+      ],
+      'cmdname' => 'chapter',
+      'extra' => {},
+      'info' => {
+        'spaces_before_argument' => ' '
+      },
+      'source_info' => {
+        'file_name' => '',
+        'line_nr' => 1,
+        'macro' => ''
+      }
+    }
+  ],
+  'type' => 'document_root'
+};
+
+$result_texis{'customize_informative_commands'} = '@chapter chap
+';
+
+
+$result_texts{'customize_informative_commands'} = '1 chap
+******
+';
+
+$result_sectioning{'customize_informative_commands'} = {
+  'structure' => {
+    'section_childs' => [
+      {
+        'cmdname' => 'chapter',
+        'extra' => {},
+        'info' => {},
+        'structure' => {
+          'section_level' => 1,
+          'section_number' => 1,
+          'section_up' => {}
+        }
+      }
+    ],
+    'section_level' => 0
+  }
+};
+$result_sectioning{'customize_informative_commands'}{'structure'}{'section_childs'}[0]{'structure'}{'section_up'}
 = $result_sectioning{'customize_informative_commands'};
+
+$result_errors{'customize_informative_commands'} = [];
+
+
+$result_floats{'customize_informative_commands'} = {};
+
+
+
+$result_converted{'latex_text'}->{'customize_informative_commands'} = 
'\\begin{document}
+\\chapter{{chap}}
+';
+
+1;
diff --git 
a/tp/t/results/latex_tests/customize_informative_commands/res_latex/customize_informative_commands.tex
 
b/tp/t/results/latex_tests/customize_informative_commands/res_latex/customize_informative_commands.tex
new file mode 100644
index 0000000000..14a6a8df21
--- /dev/null
+++ 
b/tp/t/results/latex_tests/customize_informative_commands/res_latex/customize_informative_commands.tex
@@ -0,0 +1,55 @@
+\documentclass{book}
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage[gen]{eurosym}
+\usepackage{textcomp}
+\usepackage{graphicx}
+\usepackage{etoolbox}
+\usepackage{titleps}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\usepackage{float}
+% use hidelinks to remove boxes around links to be similar to Texinfo TeX
+\usepackage[hidelinks]{hyperref}
+
+\makeatletter
+\newcommand{\Texinfosettitle}{No Title}%
+
+% redefine the \mainmatter command such that it does not clear page
+% as if in double page
+\renewcommand\mainmatter{\clearpage\@mainmattertrue\pagenumbering{arabic}}
+\newenvironment{Texinfopreformatted}{%
+  \par\GNUTobeylines\obeyspaces\frenchspacing\parskip=\z@\parindent=\z@}{}
+{\catcode`\^^M=13 \gdef\GNUTobeylines{\catcode`\^^M=13 \def^^M{\null\par}}}
+\newenvironment{Texinfoindented}{\begin{list}{}{}\item\relax}{\end{list}}
+
+% used for substitutions in commands
+\newcommand{\Texinfoplaceholder}[1]{}
+
+\newpagestyle{single}{\sethead[\chaptername{} \thechapter{} 
\chaptertitle{}][][\thepage]
+                              {\chaptername{} \thechapter{} 
\chaptertitle{}}{}{\thepage}}
+
+% allow line breaking at underscore
+\let\Texinfounderscore\_
+\renewcommand{\_}{\Texinfounderscore\discretionary{}{}{}}
+\renewcommand{\includegraphics}[1]{\fbox{FIG \detokenize{#1}}}
+
+\makeatother
+% set default for @setchapternewpage
+\makeatletter
+\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\Texinfoplaceholder{setchapternewpage
 placeholder}\clearpage}{}{}
+\makeatother
+\pagestyle{single}%
+\makeatletter
+\let\@afterindentfalse\@afterindenttrue
+\@afterindenttrue
+\makeatother
+\frenchspacing
+\newgeometry{textheight=200mm,textwidth=150mm}
+\setlength{\parindent}{4em}
+\geometry{papername=a5paper}%
+
+\begin{document}
+\chapter{{chap}}
+\end{document}
diff --git 
a/tp/t/results/latex_tests/setchapternewpage_on_odd_titlepage_set_headings/res_latex/setchapternewpage_on_odd_titlepage_set_headings.tex
 
b/tp/t/results/latex_tests/setchapternewpage_on_odd_titlepage_set_headings/res_latex/setchapternewpage_on_odd_titlepage_set_headings.tex
new file mode 100644
index 0000000000..cac43161c6
--- /dev/null
+++ 
b/tp/t/results/latex_tests/setchapternewpage_on_odd_titlepage_set_headings/res_latex/setchapternewpage_on_odd_titlepage_set_headings.tex
@@ -0,0 +1,72 @@
+\documentclass{book}
+\usepackage{amsfonts}
+\usepackage{amsmath}
+\usepackage[gen]{eurosym}
+\usepackage{textcomp}
+\usepackage{graphicx}
+\usepackage{etoolbox}
+\usepackage{titleps}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{float}
+% use hidelinks to remove boxes around links to be similar to Texinfo TeX
+\usepackage[hidelinks]{hyperref}
+
+\makeatletter
+\newcommand{\Texinfosettitle}{No Title}%
+
+% redefine the \mainmatter command such that it does not clear page
+% as if in double page
+\renewcommand\mainmatter{\clearpage\@mainmattertrue\pagenumbering{arabic}}
+\newenvironment{Texinfopreformatted}{%
+  \par\GNUTobeylines\obeyspaces\frenchspacing\parskip=\z@\parindent=\z@}{}
+{\catcode`\^^M=13 \gdef\GNUTobeylines{\catcode`\^^M=13 \def^^M{\null\par}}}
+\newenvironment{Texinfoindented}{\begin{list}{}{}\item\relax}{\end{list}}
+
+% used for substitutions in commands
+\newcommand{\Texinfoplaceholder}[1]{}
+
+\newpagestyle{single}{\sethead[\chaptername{} \thechapter{} 
\chaptertitle{}][][\thepage]
+                              {\chaptername{} \thechapter{} 
\chaptertitle{}}{}{\thepage}}
+
+\newpagestyle{double}{\sethead[\thepage{}][][\Texinfosettitle]
+                              {\chaptername{} \thechapter{} 
\chaptertitle{}}{}{\thepage}}
+
+% allow line breaking at underscore
+\let\Texinfounderscore\_
+\renewcommand{\_}{\Texinfounderscore\discretionary{}{}{}}
+\renewcommand{\includegraphics}[1]{\fbox{FIG \detokenize{#1}}}
+
+\makeatother
+% set default for @setchapternewpage
+\makeatletter
+\patchcmd{\chapter}{\if@openright\cleardoublepage\else\clearpage\fi}{\Texinfoplaceholder{setchapternewpage
 placeholder}\clearpage}{}{}
+\makeatother
+\pagestyle{single}%
+\pagestyle{single}%
+
+\pagestyle{single}%
+
+\makeatletter
+\patchcmd{\chapter}{\Texinfoplaceholder{setchapternewpage 
placeholder}\clearpage}{\if@openright\cleardoublepage\else\clearpage\fi}{}{}
+\makeatother
+\pagestyle{double}%
+
+
+\begin{document}
+
+\frontmatter
+\pagestyle{empty}%
+\begin{titlepage}
+\begingroup
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+\setlength{\parindent}{0pt}
+% Leave some space at the very top of the page.
+    \vglue\titlepagetopglue
+in titlepage
+\endgroup
+\end{titlepage}
+\mainmatter
+\pagestyle{single}%
+\end{document}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]