Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Lyx/src/   (Lyx Latech Document Processor ©)  Datei vom 22.11.1998 mit Größe 5 kB image not shown  

Quelle  LaTeXFeatures.C

  Sprache: C
 

// -*- C++ -*-
/* This file is part of
* ======================================================

*           LyX, The Document Processor
*        
*           Copyright (C) 1995 Matthias Ettrich
*           Copyright (C) 1995-1998 the LyX Team.
*
*======================================================*/


#include <config.h>

#ifdef __GNUG__
#pragma implementation "LaTeXFeatures.h"
#endif

#include "LString.h"
#include "error.h"
#include "lyx_sty.h"
#include "lyxrc.h"
#include "LaTeXFeatures.h"
#include "bufferparams.h"
#include "layout.h"

extern LyXRC* lyxrc;

LaTeXFeatures::LaTeXFeatures(int n) 
{
 // packages
 color = false;
 graphics = false;
 setspace = false;
 makeidx = false;
 verbatim = false;
 longtable = false;
 algorithm = false;
 rotating = false;
 amssymb = false;
 latexsym = false;
 pifont = false;
 subfigure = false;
 floatflt = false;
 url = false;
 
 // commands
 lyx = false;
 lyxline = false;
 noun = false;

 // quotes
 quotesinglbase = false;
 quotedblbase = false;
 guilsinglleft = false;
 guilsinglright = false;
 guillemotleft = false;
 guillemotright = false;

 // Math mode
 amsstyle = false;
 binom = false;
 boldsymbol = false;
    
 // special features
 LyXParagraphIndent = false;
 NeedLyXFootnoteCode = false;
 NeedLyXMinipageIndent = false;

 // layouts
 layout = new bool[n];
 for (int i = n; i--;) 
  layout[i] = false;
}


LString LaTeXFeatures::getPackages(BufferParams const ¶ms)
{
 LString packages;

 // color.sty
 if (color) {
  if (params.graphicsDriver == "default")
   packages +="\\usepackage{color}\n";
  else
   packages += "\\usepackage[" 
    + params.graphicsDriver + "]{color}\n";
 }
  
 // makeidx.sty
 if (makeidx) {
  packages += "\\usepackage{makeidx}\n\\makeindex\n";
 }

 // graphics.sty
 if (graphics && params.graphicsDriver != "none") {
  if (params.graphicsDriver == "default")
   packages += "\\usepackage{graphics}\n";
  else
   packages += "\\usepackage[" 
    + params.graphicsDriver + "]{graphics}\n";
 }

 //verbatim.sty
 if (verbatim)
  packages += "\\usepackage{verbatim}\n";

 if (algorithm) {
  packages += "\\usepackage{algorithm}\n";
 }

 // setspace.sty
 if ((params.spacing.getSpace() != Spacing::Single)
     || setspace) {
  packages += "\\usepackage{setspace}\n";
 }
 switch (params.spacing.getSpace()) {
 case Spacing::Single:
  // we dont use setspace.sty so dont print anything
  //packages += "\\singlespacing\n";
  break;
 case Spacing::Onehalf:
  packages += "\\onehalfspacing\n";
  break;
 case Spacing::Double:
  packages += "\\doublespacing\n";
  break;
 case Spacing::Other:
  char value[30];
  sprintf(value, "%.2f", params.spacing.getValue());
  packages += LString("\\setstretch{"
     + value + "}\n";
  break;
 }

 //longtable.sty
 if (longtable)
  packages += "\\usepackage{longtable}\n";

 //rotating.sty
 if (rotating)
  packages += "\\usepackage{rotating}\n";

 // amssymb.sty
 if (amssymb)
  packages += "\\usepackage{amssymb}\n";

 // latexsym.sty
 if (latexsym)
  packages += "\\usepackage{latexsym}\n";

 // pifont.sty
 if (pifont)
  packages += "\\usepackage{pifont}\n";

 // subfigure.sty
 if (subfigure)
  packages += "\\usepackage{subfigure}\n";

 // floatflt.sty
 if (floatflt)
  packages += "\\usepackage{floatflt}\n";

 // url.sty
 if (url)
  packages += "\\usepackage{url}\n";
 
 return packages;
}


LString LaTeXFeatures::getMacros(BufferParams const & /* params */)
{
 LString macros;

 // always include this
 if (true || lyx) 
  macros += lyx_def + '\n';

 if (lyxline) 
  macros += lyxline_def + '\n';

 if (noun) {
  macros += noun_def + '\n';
 }

 // quotes. 
 if (quotesinglbase)
  macros += quotesinglbase_def + '\n';
 if (quotedblbase)
  macros += quotedblbase_def + '\n';
 if (guilsinglleft)
  macros += guilsinglleft_def + '\n';
 if (guilsinglright)
  macros += guilsinglright_def + '\n';
 if (guillemotleft)
  macros += guillemotleft_def + '\n';
 if (guillemotright)
  macros += guillemotright_def + '\n';
    
        // Math mode    
 if (boldsymbol && !amsstyle)
  macros += boldsymbol_def + '\n';
 if (binom && !amsstyle)
  macros += binom_def + '\n';

 // other
        if (NeedLyXMinipageIndent) 
  macros += minipageindent_def;
        if (LyXParagraphIndent) 
  macros += paragraphindent_def;
        if (NeedLyXFootnoteCode) 
  macros += floatingfootnote_def;

 return macros;
}


LString LaTeXFeatures::getTClassPreamble(BufferParams const ¶ms)
{
 // the text class specific preamble 
 LyXTextClass *tclass = lyxstyle.TextClass(params.textclass);
 LString tcpreamble = tclass->preamble;

 int l;
 for (l = 0 ; l < tclass->number_of_defined_layouts ; l++) {
  if (layout[l] 
      && !tclass->style[l].preamble.empty())
   tcpreamble += tclass->style[l].preamble;
 }

 return tcpreamble;



void LaTeXFeatures::showStruct(BufferParams ¶ms) {
 lyxerr.print("LyX needs the following commands when LaTeXing:");
 // packs
 lyxerr.print("***** Packages:");
 lyxerr.print(getPackages(params));
 lyxerr.print("***** Macros:");
 lyxerr.print(getMacros(params));
 lyxerr.print("***** Textclass stuff:");
 lyxerr.print(getTClassPreamble(params));
 lyxerr.print("***** done.");
}

Messung V0.5 in Prozent
C=89 H=93 G=90

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-06-07) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.