LaTeX i Maven2
Serię artykułów związanych z Apache Maven zaczynam od tematu, który być może powinien pojawić się dużo później. Jednak ukończyłem właśnie pracę nad projektem, który wiąże się bezpośrednio z tym zagadnieniem i w najbliższym czasie chciałbym napisać więcej na ten temat.
Tworzenie dokumentacji z wykorzystaniem kompilatora LATEX opisywałem już we wsześniejszych artykułach w tej kategorii. Jednak podczas długiej pracy z dokumentem wykonywanie polecenia pdflatex po każdej dokonanej zmianie może być frustrujące. Dlatego postanowiłem poszukać rozwiązania, które byłoby wygodne w użyciu oraz – o ile to w ogóle możliwe – zintegrowane ze środowiskiem programistycznym.
Do kompilacji, testowania czy publikowania projektów pisanych w języku Java używa się obecnie narzędzia o nazwie Maven. Z ogromną radością odkryłem wtyczkę LaTeX Maven Plugin, pozwalającą na dołączenie dokumentacji utworzonej w LATEX do takiego projektu.
Ponieważ latex-maven-plugin znajduje się w centralnym repozytorium Apach Maven2, wystarczy w pliku pom.xml wskazać tę wtyczkę:
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pl.info.czerwinski</groupId>
<artifactId>latex-sample</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<defaultGoal>latex:latex</defaultGoal>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>latex-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Teraz już wystarczy tylko umieścić źródła LATEX w odpowiednim katalogu, czyli src/main/latex. Każdy dokument, który ma zostać wygenerowany musi znajdować się w osobnym podkatalogu i nosić tę samą nazwę, co ów podkatalog.
Dla przykładu utworzę plik src/main/latex/sample/sample.tex:
\documentclass{report}
\begin{document}
Hello \LaTeX{}!
\end{document}
Tak przygotowany dokument wystarczy skompilować przy użyciu polecenia mvn latex:latex albo po prostu mvn (domyślne zadanie zostało zdefiniowane w pliku pom.xml – znacznik defaultGoal). Plik wynikowy to target/sample.pdf.
Nadmienię jeszcze, że katalog z plikami wspólnymi dla wszystkich dokumentów LATEX (domyślnie src/main/latex/common) nie jest brany pod uwagę jako osobny dokument przy kompilacji.



