論文執筆中に、私は複数のGitリポジトリを作成しました。GitHubがリポジトリの説明として使用しているreadme.md. 今、私はそれらの文書を論文の付録に含めたいと思っています。そのための最良の方法は何でしょうか?
readme.md
変更が自動的に含まれるように、ファイルをリンクするだけのソリューションが望ましいです。
答え1
これは、Markdown-to-LaTeX-Compiler と Makefile を使用してプロジェクトをビルドするのが最適です。次に、実行方法の例を示します。
- pandocをインストールする
次の内容を含む Makefile または同等のもの (バッチ ファイル、スクリプトなど) を作成し、含めるすべてのプロジェクトの readme の最初の行を繰り返します。
pandoc /path/to/GitHub/project/readme.md -f markdown -t latex -s -o /path/to/GitHub/project/readme.tex pdflatex <arguments> file.tex
\include{/path/to/GitHub/project/readme}
該当する場合は、LaTeX ドキュメントにステートメントを追加します。- Makefile を使用してプロジェクトをビルドします。LaTeX ドキュメントを変更するたびにこれを行う必要はなく、GitHub プロジェクトの readme を変更/追加した後のみ実行します。
あるいは、この答えそして、LaTeX で pandoc をオンザフライで使用します。これはあまりエレガントな解決策ではないと思いますが、それでも、これを使用して目的を達成する方法を簡単に説明します。
- pandocをインストールする
- リンクされた回答のサンプル文書から序文をコピーします
Markdown ファイルを埋め込むには、次のようにドキュメントに埋め込みます。
\begin{markdown} \input{/path/to/GitHub/project/readme.md} \end{markdown}
- ドキュメントをコンパイルするたびに、Markdown ドキュメントもコンパイルされて埋め込まれます。
答え2
私の回答は、PowerShell の自動化に関して @Big-Blue が提案したものに基づいています。Projects フォルダーのように、すべてのリポジトリが入っているフォルダーがあると思います。
フォルダー構造の例:
-MyProjects
-MardownsToPdfs.ps1 << see script bellow
-ProjectDirA
-ReadmeA.md
-ImageA.png
-ProjectDirB
-ReadmeB.md
-ImageB.png
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
}
*.ps1 ファイルで「Powershell で実行」を右クリックすると、同じ名前の各 *.md ファイルの横に PDF が作成されます。
次のようにして、*.tex ファイルに PDF ファイルを含めることができます。
%In your latex *.tex file you can embed
\includepdf[pages=-]{MyProjects/ProjectDirA/ReadmeA.pdf}
答え3
実際、私もまったく同じことをしたかったのです。つまり、readme.md
ファイルを付録に含めるつもりだったのです。
私は見つけたmarkdown
パッケージは非常に便利です。実際、外部ファイルを含めるように修正された入力コマンドがあり.md
、そのままインポートできます\markdownInput{path/to/readme.md}
。
私は次のことを行いました:
\documentclass{article}
% your packages here
\usepackage{markdown}
\begin{document}
% your content here
\appendix
\markdownInput{path/to/readme.md}
\end{document}
を注意:
- マークダウンの最初のセクション レベル (単一の
#
) は に対応し\chapter
、以下同様に (は 、...##
に対応\section
) します。したがって、 オプションを使用してセクション レベルを調整する必要がある場合がありますshiftHeadings
。 - シェル エスケープを有効にして (つまり
pdflatex --shell-escape
) ドキュメントをビルドする必要があります。