Während meiner Diplomarbeit habe ich mehrere Git-Repositories erstellt, die mit demreadme.md, das GitHub als Repository-Erklärung verwendet. Nun möchte ich diese Dokumentationen in den Anhang meiner Arbeit aufnehmen. Wie gehe ich dabei am besten vor?
Mir wäre eine Lösung lieber, bei der die readme.md
Dateien nur verknüpft werden, so dass Änderungen automatisch übernommen werden.
Antwort1
Dies lässt sich am besten mit einem Markdown-zu-LaTeX-Compiler und einem Makefile zum Erstellen des Projekts erreichen. Hier ist ein Beispiel, wie Sie vorgehen könnten:
- Installieren Sie Pandoc
Erstellen Sie ein Makefile oder eine gleichwertige Datei (Batch-Datei, Skript usw.) mit dem folgenden Inhalt und wiederholen Sie die erste Zeile für jede Projekt-Readme-Datei, die Sie einbinden möchten:
pandoc /path/to/GitHub/project/readme.md -f markdown -t latex -s -o /path/to/GitHub/project/readme.tex pdflatex <arguments> file.tex
Fügen Sie
\include{/path/to/GitHub/project/readme}
bei Bedarf Anweisungen in Ihr LaTeX-Dokument ein.- Verwenden Sie das Makefile, um Ihr Projekt zu erstellen. Dies ist nicht unbedingt nach jeder Änderung im LaTeX-Dokument erforderlich, sondern nur nach dem Ändern/Hinzufügen einer GitHub-Projekt-Readme.
Alternativ können Sie folgendiese Antwortund verwenden Sie pandoc spontan in LaTeX. Ich halte das für eine weniger elegante Lösung, aber hier ist trotzdem ein kurzer Überblick darüber, wie Sie damit das erreichen, was Sie wollen:
- Installieren Sie Pandoc
- Kopieren Sie die Präambel aus dem Beispieldokument in der verlinkten Antwort
Um Markdown-Dateien einzubetten, betten Sie sie wie folgt in Ihr Dokument ein:
\begin{markdown} \input{/path/to/GitHub/project/readme.md} \end{markdown}
- Jedes Mal, wenn Sie das Dokument kompilieren, sollten auch die Markdown-Dokumente kompiliert und eingebettet werden.
Antwort2
Meine Antwort basiert auf dem, was @Big-Blue mit etwas Powershell-Automatisierung vorgeschlagen hat. Ich vermute, Sie haben einen Ordner, in dem sich alle Ihre Repos befinden, wie ein Projektordner.
Beispiel einer Ordnerstruktur:
-MyProjects
-MardownsToPdfs.ps1 << see script bellow
-ProjectDirA
-ReadmeA.md
-ImageA.png
-ProjectDirB
-ReadmeB.md
-ImageB.png
Inhalt der Datei MardownsToPdfs.ps1:
$currendDir=(Get-Item -Path ".\" -Verbose).FullName
#repeat for every *.md file
childitem ../ -include *.md -recurse | foreach ($_) {
$mdPath = $_.FullName
$pdfPath = $_.FullName.Replace(".md", ".pdf")
$pdfFileName = $_.Name.Replace(".md", ".pdf")
cd $_.directory
pandoc --wrap=preserve -f markdown+hard_line_breaks -s -V geometry:margin=1in -o $pdfPath $mdPath
cd $currendDir
}
Klicken Sie mit der rechten Maustaste auf „Mit Powershell ausführen“ in der *.ps1-Datei. Daraufhin wird neben jeder *.md-Datei mit demselben Namen eine PDF-Datei erstellt.
Sie können PDF-Dateien wie folgt in Ihre *.tex-Datei einbinden:
%In your latex *.tex file you can embed
\includepdf[pages=-]{MyProjects/ProjectDirA/ReadmeA.pdf}
Antwort3
Eigentlich wollte ich genau das Gleiche machen, also die readme.md
Datei in den Anhang aufnehmen.
ich fand diemarkdown
Paket als sehr nützlich. Tatsächlich verfügt es über einen modifizierten Eingabebefehl, um externe .md
Dateien einzuschließen, die Sie so importieren können, wie sie sind. Es ist \markdownInput{path/to/readme.md}
.
Ich habe Folgendes gemacht:
\documentclass{article}
% your packages here
\usepackage{markdown}
\begin{document}
% your content here
\appendix
\markdownInput{path/to/readme.md}
\end{document}
Beachten Sie, dass:
- Die erste Unterteilungsebene von Markdown (ein einzelnes
#
) entspricht\chapter
, und so weiter (##
entspricht\section
, ...). Daher möchten Sie möglicherweise die Unterteilungsebene mit dershiftHeadings
Option anpassen. - Sie müssen Ihr Dokument mit aktiviertem Shell-Escape erstellen (d. h.
pdflatex --shell-escape
).