123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841 |
- {
- FPDoc - Free Pascal Documentation Tool
- Copyright (C) 2000 - 2003 by
- Areca Systems GmbH / Sebastian Guenther, [email protected]
- * LaTeX output generator
- See the file COPYING, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- }
- {$mode objfpc}
- {$H+}
- unit dw_LaTeX;
- {$WARN 5024 off : Parameter "$1" not used}
- interface
- uses DOM, dGlobals, PasTree;
- const
- LateXHighLight : Boolean = False;
- MaxVerbatimLength : Integer = 65;
- TexExtension : String = '.tex';
- Procedure CreateLaTeXDocForPackage(APackage: TPasPackage; AEngine: TFPDocEngine);
- implementation
- uses fpdocstrs, SysUtils, Classes, dwLinear, dwriter;
- Type
- { TLaTeXWriter }
- TLaTeXWriter = class(TLinearWriter)
- protected
- FLink: String;
- FImageDir: String;
- FTableCount : Integer;
- FInVerbatim : Boolean;
- Inlist,
- TableRowStartFlag,
- TableCaptionWritten: Boolean;
- // Linear documentation methods overrides;
- procedure WriteLabel(Const S : String); override;
- procedure WriteIndex(Const S : String); override;
- Procedure WriteExampleFile(FN : String); override;
- Procedure StartProcedure; override;
- Procedure EndProcedure; override;
- Procedure StartProperty; override;
- Procedure EndProperty; override;
- Procedure StartSynopsis; override;
- Procedure StartDeclaration; override;
- Procedure StartVisibility; override;
- Procedure StartDescription; override;
- Procedure StartAccess; override;
- Procedure StartErrors; override;
- Procedure StartVersion; override;
- Procedure StartSeealso; override;
- Procedure EndSeealso; override;
- procedure StartUnitOverview(AModuleName,AModuleLabel : String);override;
- procedure WriteUnitEntry(UnitRef : TPasType); override;
- Procedure EndUnitOverview; override;
- function GetLabel(AElement: TPasElement): String; override;
- procedure StartListing(Frames: Boolean; const name: String); override;
- procedure EndListing; override;
- Function EscapeText(S : String) : String; override;
- Function StripText(S : String) : String; override;overload;
- procedure WriteCommentLine; override;
- procedure WriteComment(Comment : String);override;
- procedure StartSection(SectionName : String);override;
- procedure StartSubSection(SubSectionName : String);override;
- procedure StartSubSubSection(SubSubSectionName : String);override;
- procedure StartChapter(ChapterName : String); override;
- procedure StartOverview(Const What : String; WithAccess : Boolean); override;
- procedure EndOverview; override;
- procedure WriteOverviewMember(const ALabel,AName,Access,ADescr : String); override;
- procedure WriteOverviewMember(const ALabel,AName,ADescr : String); override;
- // Description node conversion
- procedure DescrBeginBold; override;
- procedure DescrEndBold; override;
- procedure DescrBeginItalic; override;
- procedure DescrEndItalic; override;
- procedure DescrBeginEmph; override;
- procedure DescrEndEmph; override;
- procedure DescrBeginUnderline; override;
- procedure DescrEndUnderline; override;
- procedure DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString); override;
- procedure DescrWriteFileEl(const AText: DOMString); override;
- procedure DescrWriteKeywordEl(const AText: DOMString); override;
- procedure DescrWriteVarEl(const AText: DOMString); override;
- procedure DescrBeginLink(const AId: DOMString); override;
- procedure DescrEndLink; override;
- procedure DescrBeginURL(const AURL: DOMString); override; // Provides a default implementation
- procedure DescrEndURL; override;
- procedure DescrWriteLinebreak; override;
- procedure DescrBeginParagraph; override;
- procedure DescrBeginCode(HasBorder: Boolean; const AHighlighterName: String); override;
- procedure DescrWriteCodeLine(const ALine: String); override;
- procedure DescrEndCode; override;
- procedure DescrEndParagraph; override;
- procedure DescrBeginOrderedList; override;
- procedure DescrEndOrderedList; override;
- procedure DescrBeginUnorderedList; override;
- procedure DescrEndUnorderedList; override;
- procedure DescrBeginDefinitionList; override;
- procedure DescrEndDefinitionList; override;
- procedure DescrBeginListItem; override;
- procedure DescrEndListItem; override;
- procedure DescrBeginDefinitionTerm; override;
- procedure DescrEndDefinitionTerm; override;
- procedure DescrBeginDefinitionEntry; override;
- procedure DescrEndDefinitionEntry; override;
- procedure DescrBeginSectionTitle; override;
- procedure DescrBeginSectionBody; override;
- procedure DescrEndSection; override;
- procedure DescrBeginRemark; override;
- procedure DescrEndRemark; override;
- procedure DescrBeginTable(ColCount: Integer; HasBorder: Boolean); override;
- procedure DescrEndTable; override;
- procedure DescrBeginTableCaption; override;
- procedure DescrEndTableCaption; override;
- procedure DescrBeginTableHeadRow; override;
- procedure DescrEndTableHeadRow; override;
- procedure DescrBeginTableRow; override;
- procedure DescrEndTableRow; override;
- procedure DescrBeginTableCell; override;
- procedure DescrEndTableCell; override;
- // TFPDocWriter class methods
- Property ImageDir : String Read FImageDir Write FImageDir;
- public
- Function SplitLine (ALine : String): String; virtual;
- Function InterPretOption(Const Cmd,Arg : String) : boolean; override;
- Class Function FileNameExtension : String; override;
- class procedure Usage(List: TStrings); override;
- end;
- function TLaTeXWriter.GetLabel(AElement: TPasElement): String;
- var
- i: Integer;
- begin
- if AElement.ClassType = TPasUnresolvedTypeRef then
- Result := Engine.ResolveLink(Module, AElement.Name)
- else
- begin
- Result := AElement.PathName;
- Result := LowerCase(Copy(Result, 2, Length(Result) - 1));
- end;
- for i := 1 to Length(Result) do
- if Result[i] = '.' then
- Result[i] := ':';
- end;
- Function TLaTeXWriter.SplitLine (ALine : String): String;
- Function FindLastSplit(S : String) : Integer;
- Const
- NonSplit = ['a'..'z','A'..'Z','0'..'9','_'];
-
- Var
- L,I : integer;
- C : PChar;
- InString : Boolean;
-
- begin
- Result:=0;
- L:=Length(S);
- if (L>MaxVerbatimLength) then
- begin
- InString:=False;
- Result:=0;
- I:=1;
- C:=@S[1];
- While (I<=L) and (Result<=MaxVerbatimLength) do
- begin
- If C^='''' then
- InString:=Not Instring
- else if Not InString then
- begin
- if Not (C^ in NonSplit) then
- Result:=I;
- end;
- Inc(I);
- Inc(C);
- end;
- end;
- If (Result=0) or (Result=1) then
- Result:=L+1;
- end;
-
- Var
- SP : Integer;
- L : String;
-
- begin
- Result:='';
- While (Aline<>'') do
- begin
- SP:=FindLastSplit(Aline);
- L:=Copy(ALine,1,SP-1);
- Delete(ALine,1,SP-1);
- If (Result<>'') then
- Result:=Result+sLineBreak+' ';
- Result:=Result+Trim(L);
- end;
- end;
- function TLaTeXWriter.EscapeText(S: String): String;
- var
- i: Integer;
- begin
- if FInVerBatim=True then
- begin
- if (MaxVerbatimLength=0) or (length(S)<=MaxVerbatimLength) then
- Result:=S
- else
- Result:=SplitLine(S);
- end
- else
- begin
- SetLength(Result, 0);
- for i := 1 to Length(S) do
- case S[i] of
- '&','{','}','#','_','$','%': // Escape these characters
- Result := Result + '\' + S[i];
- '~','^':
- Result := Result + '\'+S[i]+' ';
- '\':
- Result:=Result+'$\backslash$'
- else
- Result := Result + S[i];
- end;
- end;
- end;
- function TLaTeXWriter.StripText(S: String): String;
- var
- I: Integer;
- begin
- Result:='';
- for i := 1 to Length(S) do
- If not (S[i] in ['&','{','}','#','_','$','%','''','~','^', '\']) then
- Result := Result + S[i]
- else
- Result:=result+'!'
- end;
- procedure TLaTeXWriter.DescrBeginBold;
- begin
- Write('\textbf{');
- end;
- procedure TLaTeXWriter.DescrEndBold;
- begin
- Write('}');
- end;
- procedure TLaTeXWriter.DescrBeginItalic;
- begin
- Write('\textit{');
- end;
- procedure TLaTeXWriter.DescrEndItalic;
- begin
- Write('}');
- end;
- procedure TLaTeXWriter.DescrBeginEmph;
- begin
- Write('\emph{');
- end;
- procedure TLaTeXWriter.DescrEndEmph;
- begin
- Write('}');
- end;
- procedure TLaTeXWriter.DescrBeginUnderline;
- begin
- Write('\underline{');
- end;
- procedure TLaTeXWriter.DescrEndUnderline;
- begin
- Write('}');
- end;
- procedure TLaTeXWriter.DescrWriteImageEl(const AFileName, ACaption, ALinkName : DOMString);
- Var
- FN : String;
- L : Integer;
- S : String;
-
- begin
- Writeln('\begin{figure}[ht]%');
- Writeln('\begin{center}');
- If (ACaption<>ACaption) then
- begin
- S:=EscapeText(ACaption);
- Writeln(Format('\caption{%s}',[S]));
- end;
- If (ALinkName<>'') then
- WriteLabel('fig:'+Utf8Encode(ALinkName));
- FN:=ImageDir;
- L:=Length(FN);
- If (L>0) and (FN[l]<>'/') then
- FN:=FN+'/';
- FN:=FN+Utf8Encode(AFileName);
- Writeln('\epsfig{file='+FN+'}');
- Writeln('\end{center}');
- Writeln('\end{figure}');
- end;
- procedure TLaTeXWriter.DescrWriteFileEl(const AText: DOMString);
- begin
- Write('\file{');
- DescrWriteText(AText);
- Write('}');
- end;
- procedure TLaTeXWriter.DescrWriteKeywordEl(const AText: DOMString);
- begin
- Write('\textbf{\\ttfamily ');
- DescrWriteText(AText);
- Write('}');
- end;
- procedure TLaTeXWriter.DescrWriteVarEl(const AText: DOMString);
- begin
- Write('\var{');
- DescrWriteText(AText);
- Write('}');
- end;
- procedure TLaTeXWriter.DescrBeginLink(const AId: DOMString);
- begin
- FLink := Engine.ResolveLink(Module, UTF8Encode(AId));
- // System.WriteLn('Link "', AId, '" => ', FLink);
- end;
- procedure TLaTeXWriter.DescrEndLink;
- begin
- WriteF(' (\pageref{%s})',[StripText(Flink)]);
- end;
- procedure TLaTeXWriter.DescrBeginURL(const AURL: DOMString);
- begin
- Inherited; // Save link
- Write('\htmladdnormallink{');
- end;
- procedure TLaTeXWriter.DescrEndURL;
- begin
- WriteF('}{%s}',[LastURL]);
- LastURL:='';
- end;
- procedure TLaTeXWriter.DescrWriteLinebreak;
- begin
- WriteLn('\\');
- end;
- procedure TLaTeXWriter.DescrBeginParagraph;
- begin
- // Do nothing
- end;
- procedure TLaTeXWriter.DescrEndParagraph;
- begin
- WriteLn('');
- WriteLn('');
- end;
- procedure TLaTeXWriter.DescrBeginCode(HasBorder: Boolean;
- const AHighlighterName: String);
- begin
- StartListing(HasBorder,'');
- end;
- procedure TLaTeXWriter.DescrWriteCodeLine(const ALine: String);
- begin
- WriteLn(ALine);
- end;
- procedure TLaTeXWriter.DescrEndCode;
- begin
- EndListing
- end;
- procedure TLaTeXWriter.DescrBeginOrderedList;
- begin
- WriteLn('\begin{enumerate}');
- end;
- procedure TLaTeXWriter.DescrEndOrderedList;
- begin
- WriteLn('\end{enumerate}');
- end;
- procedure TLaTeXWriter.DescrBeginUnorderedList;
- begin
- WriteLn('\begin{itemize}');
- end;
- procedure TLaTeXWriter.DescrEndUnorderedList;
- begin
- WriteLn('\end{itemize}');
- end;
- procedure TLaTeXWriter.DescrBeginDefinitionList;
- begin
- WriteLn('\begin{description}');
- end;
- procedure TLaTeXWriter.DescrEndDefinitionList;
- begin
- WriteLn('\end{description}');
- end;
- procedure TLaTeXWriter.DescrBeginListItem;
- begin
- Write('\item ');
- end;
- procedure TLaTeXWriter.DescrEndListItem;
- begin
- WriteLn('');
- end;
- procedure TLaTeXWriter.DescrBeginDefinitionTerm;
- begin
- Write('\item[');
- end;
- procedure TLaTeXWriter.DescrEndDefinitionTerm;
- begin
- WriteLn(']');
- end;
- procedure TLaTeXWriter.DescrBeginDefinitionEntry;
- begin
- // Do nothing
- end;
- procedure TLaTeXWriter.DescrEndDefinitionEntry;
- begin
- WriteLn('');
- end;
- procedure TLaTeXWriter.DescrBeginSectionTitle;
- begin
- Write('\subsection{');
- end;
- procedure TLaTeXWriter.DescrBeginSectionBody;
- begin
- WriteLn('}');
- end;
- procedure TLaTeXWriter.DescrEndSection;
- begin
- // Do noting
- end;
- procedure TLaTeXWriter.DescrBeginRemark;
- begin
- WriteLn('\begin{remark}');
- end;
- procedure TLaTeXWriter.DescrEndRemark;
- begin
- WriteLn('\end{remark}');
- end;
- procedure TLaTeXWriter.DescrBeginTable(ColCount: Integer; HasBorder: Boolean);
- var
- i: Integer;
- begin
- // !!!: How do we set the border?
- Write('\begin{FPCltable}{');
- for i := 1 to ColCount do
- Write('l');
- write('}{');
- TableCaptionWritten:=False;
- end;
- procedure TLaTeXWriter.DescrEndTable;
- begin
- WriteLn('\end{FPCltable}');
- end;
- procedure TLaTeXWriter.DescrBeginTableCaption;
- begin
- // Do nothing.
- end;
- procedure TLaTeXWriter.DescrEndTableCaption;
- begin
- Write('}{table');
- Inc(FTableCount);
- Write(IntToStr(FTableCount));
- Writeln('}');
- TableCaptionWritten := True;
- end;
- procedure TLaTeXWriter.DescrBeginTableHeadRow;
- begin
- if not TableCaptionWritten then
- DescrEndTableCaption;
- TableRowStartFlag := True;
- end;
- procedure TLaTeXWriter.DescrEndTableHeadRow;
- begin
- WriteLn('\\ \hline');
- end;
- procedure TLaTeXWriter.DescrBeginTableRow;
- begin
- if not TableCaptionWritten then
- DescrEndTableCaption;
- TableRowStartFlag := True;
- end;
- procedure TLaTeXWriter.DescrEndTableRow;
- begin
- WriteLn('\\');
- end;
- procedure TLaTeXWriter.DescrBeginTableCell;
- begin
- if TableRowStartFlag then
- TableRowStartFlag := False
- else
- Write(' & ');
- end;
- procedure TLaTeXWriter.DescrEndTableCell;
- begin
- // Do nothing
- end;
- procedure TLaTeXWriter.WriteLabel(const S: String);
- begin
- WriteLnF('\label{%s}', [LowerCase(StripText(s))]);
- end;
- procedure TLaTeXWriter.WriteIndex(const S: String);
- begin
- Write('\index{');
- Write(EscapeText(s));
- Writeln('}');
- end;
- procedure TLaTeXWriter.StartListing(Frames: Boolean; const name: String);
- begin
- FInVerbatim:=True;
- if Not LaTexHighLight then
- begin
- Writeln('');
- Writeln('\begin{verbatim}');
- end
- else
- if Frames then
- Writelnf('\begin{lstlisting}{%s}',[StripText(Name)])
- else
- Writelnf('\begin{lstlisting}[frame=]{%s}',[StripText(Name)]);
- end;
- procedure TLaTeXWriter.EndListing;
- begin
- FInVerbatim:=False;
- If LaTexHighLight then
- Writeln('\end{lstlisting}')
- else
- Writeln('\end{verbatim}')
- end;
- procedure TLaTeXWriter.WriteCommentLine;
- const
- CommentLine =
- '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%';
- begin
- Writeln(CommentLine);
- end;
- procedure TLaTeXWriter.WriteComment(Comment: String);
- begin
- Write('% ');
- Writeln(Comment);
- end;
- procedure TLaTeXWriter.StartChapter(ChapterName: String);
- begin
- WriteCommentLine;
- WriteComment(ChapterName);
- WriteCommentLine;
- Writeln('\chapter{'+EscapeText(ChapterName)+'}');
- end;
- procedure TLaTeXWriter.StartSection(SectionName: String);
- begin
- WriteCommentLine;
- WriteComment(SectionName);
- Writeln('\section{'+EscapeText(SectionName)+'}');
- end;
- procedure TLaTeXWriter.StartSubSection(SubSectionName: String);
- begin
- WriteComment(SubSectionName);
- Writeln('\subsection{'+EscapeText(SubSectionName)+'}');
- end;
- procedure TLaTeXWriter.StartSubSubSection(SubSubSectionName: String);
- begin
- Writeln('\subsubsection{'+EscapeText(SubSubSectionName)+'}');
- end;
- procedure CreateLaTeXDocForPackage(APackage: TPasPackage; AEngine: TFPDocEngine);
- var
- Writer: TLaTeXWriter;
- begin
- Writer := TLaTeXWriter.Create(APackage, AEngine);
- try
- Writer.DoWriteDocumentation;
- finally
- Writer.Free;
- end;
- end;
- procedure TLaTeXWriter.StartProcedure;
- begin
- Writeln('\begin{FPCList}');
- InList:=True;
- end;
- procedure TLaTeXWriter.StartSynopsis;
- begin
- Writeln('\Synopsis');
- end;
- procedure TLaTeXWriter.StartDeclaration;
- begin
- Writeln('\Declaration ');
- end;
- procedure TLaTeXWriter.StartVisibility;
- begin
- Writeln('\Visibility');
- end;
- procedure TLaTeXWriter.StartDescription;
- begin
- Writeln('\Description');
- end;
- procedure TLaTeXWriter.StartErrors;
- begin
- Writeln('\Errors');
- end;
- procedure TLaTeXWriter.StartVersion;
- begin
- Writeln('\VersionInfo');
- end;
- procedure TLaTeXWriter.StartAccess;
- begin
- Writeln('\Access')
- end;
- procedure TLaTeXWriter.EndProcedure;
- begin
- InList:=False;
- Writeln('\end{FPCList}');
- end;
- procedure TLaTeXWriter.StartProperty;
- begin
- Writeln('\begin{FPCList}');
- InList:=True;
- end;
- procedure TLaTeXWriter.EndProperty;
- begin
- InList:=False;
- Writeln('\end{FPCList}');
- end;
- procedure TLaTeXWriter.WriteExampleFile(FN: String);
- begin
- If (FN<>'') then
- WritelnF('\FPCexample{%s}', [ChangeFileExt(FN,'')]);
- end;
- procedure TLaTeXWriter.StartOverview(const What: String; WithAccess: Boolean);
- begin
- If WithAccess then
- begin
- WriteLn('\begin{tabularx}{\textwidth}{lllX}');
- WriteLnF('%s & %s & %s & %s \\ \hline',[EscapeText(SDocPage), EscapeText(What), EscapeText(SDocAccess), EscapeText(SDocDescription)])
- end
- else
- begin
- WriteLn('\begin{tabularx}{\textwidth}{llX}');
- WriteLnF('%s & %s & %s \\ \hline',[EscapeText(SDocPage), EscapeText(What), EscapeText(SDocDescription)])
- end;
- end;
- procedure TLaTeXWriter.EndOverview;
- begin
- WriteLn('\hline');
- WriteLn('\end{tabularx}');
- end;
- procedure TLaTeXWriter.WriteOverviewMember(const ALabel, AName, Access,
- ADescr: String);
- begin
- WriteLnF('\pageref{%s} & %s & %s & %s \\',[ALabel,EscapeText(AName),Access,ADescr]);
- end;
- procedure TLaTeXWriter.WriteOverviewMember(const ALabel, AName, ADescr: String);
- begin
- WriteLnF('\pageref{%s} & %s & %s \\',[ALabel,EscapeText(AName),ADescr]);
- end;
- class function TLaTeXWriter.FileNameExtension: String;
- begin
- Result:=TexExtension;
- end;
- procedure TLaTeXWriter.StartSeealso;
- begin
- If not InList then
- begin
- Writeln('');
- Writeln('\begin{FPCList}');
- end;
- Writeln('\SeeAlso');
- end;
- procedure TLaTeXWriter.EndSeealso;
- begin
- If Not InList then
- Writeln('\end{FPCList}');
- end;
- procedure TLaTeXWriter.StartUnitOverview(AModuleName, AModuleLabel: String);
- begin
- WriteLnF('\begin{FPCltable}{lr}{%s}{%s:0units}',
- [Format(SDocUsedUnitsByUnitXY, [EscapeText(AModuleName)]), StripText(AModuleName)]);
- WriteLn('Name & Page \\ \hline');
- end;
- procedure TLaTeXWriter.WriteUnitEntry(UnitRef: TPasType);
- begin
- WriteLnF('%s\index{unit!%s} & \pageref{%s} \\',
- [EscapeText(UnitRef.Name), EscapeText(UnitRef.Name), StripText(GetLabel(UnitRef))]);
- end;
- procedure TLaTeXWriter.EndUnitOverview;
- begin
- WriteLn('\end{FPCltable}');
- end;
- function TLaTeXWriter.InterPretOption(const Cmd, Arg: String): boolean;
- begin
- Result:=True;
- if (cmd= '--latex-highlight') then
- LatexHighLight:=True
- else if Cmd = '--latex-extension' then
- TexExtension:=Arg
- else if Cmd = '--latex--verbatim-length' then
- MaxVerbatimLength:=StrToInt(Arg)
- else if Cmd = '--image-dir' then
- ImageDir:=Arg
- else
- Result:=False;
- end;
- Resourcestring
- SLatexHighlightDocs = 'Use the syntax highlighter for declarations.';
- SLatexExtensionDocs = 'Specify the extension for the latex files.';
- SLatexVerbatimLengthDocs = 'Specify maximum line length for verbatim environments (default 64).';
- SLatexImageDirDocs = 'Specify the directory where the images are stored.';
- class procedure TLaTeXWriter.Usage(List: TStrings);
- begin
- Inherited;
- List.Add('--latex-highlight');
- List.Add(SLatexHighlightDocs);
- List.Add('--latex-extension=ext');
- List.Add(SLatexExtensionDocs);
- List.Add('--latex-verbatim-length=len');
- List.Add(SLatexVerbatimLengthDocs);
- List.Add('--image-dir=dir');
- List.Add(SLatexImageDirDocs);
- end;
- initialization
- // Do not localize.
- RegisterWriter(TLaTeXWriter,'latex','Latex output using fpc.sty class.');
- finalization
- UnRegisterWriter('latex');
- end.
|