Githubのreadme.mdをLatexに埋め込む

Githubのreadme.mdをLatexに埋め込む

論文執筆中に、私は複数のGitリポジトリを作成しました。GitHubがリポジトリの説明として使用しているreadme.md. 今、私はそれらの文書を論文の付録に含めたいと思っています。そのための最良の方法は何でしょうか?

readme.md変更が自動的に含まれるように、ファイルをリンクするだけのソリューションが望ましいです。

答え1

これは、Markdown-to-LaTeX-Compiler と Makefile を使用してプロジェクトをビルドするのが最適です。次に、実行方法の例を示します。

  1. pandocをインストールする
  2. 次の内容を含む 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
    
  3. \include{/path/to/GitHub/project/readme}該当する場合は、LaTeX ドキュメントにステートメントを追加します。

  4. Makefile を使用してプロジェクトをビルドします。LaTeX ドキュメントを変更するたびにこれを行う必要はなく、GitHub プロジェクトの readme を変更/追加した後のみ実行します。

あるいは、この答えそして、LaTeX で pandoc をオンザフライで使用します。これはあまりエレガントな解決策ではないと思いますが、それでも、これを使用して目的を達成する方法を簡単に説明します。

  1. pandocをインストールする
  2. リンクされた回答のサンプル文書から序文をコピーします
  3. Markdown ファイルを埋め込むには、次のようにドキュメントに埋め込みます。

    \begin{markdown}
      \input{/path/to/GitHub/project/readme.md}
    \end{markdown}
    
  4. ドキュメントをコンパイルするたびに、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) ドキュメントをビルドする必要があります。

関連情報