25
25
import org.apache.maven.doxia.book.model.BookModel;
26
26
import org.apache.maven.doxia.book.model.Chapter;
27
27
import org.apache.maven.doxia.book.model.Section;
28
import org.apache.maven.doxia.module.latex.LatexSink;
29
28
import org.apache.maven.doxia.parser.manager.ParserNotFoundException;
30
29
import org.apache.maven.doxia.parser.ParseException;
31
30
import org.apache.maven.doxia.Doxia;
31
import org.codehaus.plexus.util.ReaderFactory;
32
32
import org.codehaus.plexus.util.StringUtils;
33
33
import org.codehaus.plexus.util.IOUtil;
34
import org.codehaus.plexus.util.WriterFactory;
35
36
import java.io.File;
36
37
import java.io.FileWriter;
37
38
import java.io.IOException;
38
39
import java.io.PrintWriter;
39
import java.io.FileReader;
40
40
import java.io.FileNotFoundException;
41
import java.io.Reader;
42
import java.io.Writer;
41
43
import java.util.Iterator;
42
44
import java.util.Map;
43
45
import java.util.HashMap;
48
* <p>LatexBookRenderer class.</p>
46
50
* @plexus.component role-hint="latex"
48
51
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
49
* @version $Id: LatexBookRenderer.java 572956 2007-09-05 14:22:50Z ltheussl $
52
* @version $Id: LatexBookRenderer.java 746976 2009-02-23 12:15:38Z vsiveton $
51
54
public class LatexBookRenderer
52
55
implements BookRenderer
160
163
writer.println( "\\author{" + book.getDate() + "}" );
163
writer.print( IOUtil.toString( LatexSink.getDefaultSinkCommands() ) );
164
writer.print( IOUtil.toString( LatexSink.getDefaultPreamble() ) );
166
LatexBookSink sink = new LatexBookSink( writer );
167
sink.defaultBookPreamble();
165
169
writer.println( "\\begin{document}" );
166
170
writer.println( "\\maketitle" );
167
171
writer.println( "\\tableofcontents" );
201
205
File file = new File( context.getOutputDirectory(), ( section.getId() + ".tex" ) );
203
FileWriter writer = new FileWriter( file );
207
Writer writer = WriterFactory.newWriter( file, context.getOutputEncoding() );
205
209
LatexBookSink sink = new LatexBookSink( writer );
212
216
+ section.getId() + "." );
219
Reader reader = null;
217
doxia.parse( new FileReader( bookFile.getFile() ), bookFile.getParserId(), sink );
222
reader = ReaderFactory.newReader( bookFile.getFile(), context.getInputEncoding() );
223
doxia.parse( reader, bookFile.getParserId(), sink );
219
225
catch ( ParserNotFoundException e )
231
237
throw new BookDoxiaException( "Could not find document: "
232
238
+ bookFile.getFile().getAbsolutePath() + ".", e );
242
IOUtil.close( reader );
243
IOUtil.close( writer );
235
246
SectionInfo info = new SectionInfo();
236
247
info.id = section.getId();