Durante mi tesis, he creado varios repositorios Git que están documentados utilizando elreadme.md que GitHub usa como explicación del repositorio. Ahora me gustaría incluir esa documentación en el apéndice de mi tesis. ¿Cual es la mejor manera de hacerlo?
Preferiría una solución que simplemente vincule los readme.md
archivos, de modo que los cambios se incluyan automáticamente.
Respuesta1
Esto se puede hacer mejor usando un compilador Markdown-to-LaTeX y un Makefile para construir el proyecto. A continuación se muestra un resumen de ejemplo de cómo podría proceder:
- Instalar pandoc
Cree un Makefile o equivalente (archivo Batch, script, ...) con el siguiente contenido, repitiendo la primera línea para cada archivo Léame del proyecto que desee incluir:
pandoc /path/to/GitHub/project/readme.md -f markdown -t latex -s -o /path/to/GitHub/project/readme.tex pdflatex <arguments> file.tex
Agregue
\include{/path/to/GitHub/project/readme}
declaraciones en su documento LaTeX cuando corresponda.- Utilice el Makefile para construir su proyecto. No es estrictamente necesario hacer esto después de cada cambio en el documento LaTeX, solo después de cambiar/agregar un archivo Léame del proyecto GitHub.
Alternativamente, puedes seguiresta respuestay use pandoc en LaTeX sobre la marcha. Considero que esta es una solución menos elegante, pero aun así aquí hay un resumen rápido de cómo usarías esto para lograr lo que deseas:
- Instalar pandoc
- Copie el preámbulo del documento de ejemplo en la respuesta vinculada
Para incrustar archivos Markdown, incrústelos en su documento de esta manera:
\begin{markdown} \input{/path/to/GitHub/project/readme.md} \end{markdown}
- Cada vez que compila el documento, también debe compilar e incrustar los documentos de Markdown.
Respuesta2
Mi respuesta se basa en lo que @Big-Blue sugirió con cierta automatización de PowerShell. Supongo que tienes una carpeta donde están todos tus repositorios, como una carpeta de Proyectos.
Ejemplo de estructura de carpetas:
-MyProjects
-MardownsToPdfs.ps1 << see script bellow
-ProjectDirA
-ReadmeA.md
-ImageA.png
-ProjectDirB
-ReadmeB.md
-ImageB.png
Contenido del archivo 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
}
Haga clic derecho en Ejecutar con Powershell en el archivo *.ps1 y se creará un PDF junto a cada archivo *.md con el mismo nombre.
Puede incluir archivos PDF en su archivo *.tex de esta manera:
%In your latex *.tex file you can embed
\includepdf[pages=-]{MyProjects/ProjectDirA/ReadmeA.pdf}
Respuesta3
De hecho, quería hacer exactamente lo mismo, es decir, incluir el readme.md
archivo en el Apéndice.
Encontré elmarkdown
paquete para ser muy útil. De hecho, tiene un comando de entrada modificado, para incluir .md
archivos externos, que puedes importar tal como están. Es \markdownInput{path/to/readme.md}
.
Hice lo siguiente:
\documentclass{article}
% your packages here
\usepackage{markdown}
\begin{document}
% your content here
\appendix
\markdownInput{path/to/readme.md}
\end{document}
Sé consciente de:
- El primer nivel de sección de rebajas (un solo
#
) corresponde a\chapter
, y así sucesivamente (##
corresponde a\section
,...). Por lo tanto, es posible que desees ajustar el nivel de sección usando lashiftHeadings
opción. - Debe crear su documento con el escape de shell habilitado (es decir
pdflatex --shell-escape
).