Latex에 Github readme.md 삽입

Latex에 Github readme.md 삽입

논문을 작성하는 동안 저는 다음을 사용하여 문서화된 여러 Git-Repositories를 만들었습니다.GitHub가 저장소 설명으로 사용하는 readme.md. 이제 나는 그 문서들을 내 논문의 부록에 포함시키고 싶습니다. 그렇게 하는 가장 좋은 방법은 무엇입니까?

readme.md나는 파일을 연결하기만 하면 변경 사항이 자동으로 포함되는 솔루션을 선호합니다 .

답변1

Markdown-to-LaTeX-Compiler 및 Makefile을 사용하여 프로젝트를 빌드하는 것이 가장 좋습니다. 다음은 진행 방법에 대한 예시 요약입니다.

  1. 판독 설치
  2. 포함하려는 모든 프로젝트 readme에 대해 첫 번째 줄을 반복하여 다음 내용으로 Makefile 또는 이에 상응하는 파일(배치 파일, 스크립트 등)을 만듭니다.

    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 프로젝트 추가 정보를 변경/추가한 후에만 수행할 수 있습니다.

또는 다음을 수행할 수도 있습니다.이 답변LaTeX에서 즉시 pandoc을 사용하세요. 나는 이것이 덜 우아한 해결책이라고 생각하지만, 그럼에도 불구하고 이것을 사용하여 원하는 것을 달성하는 방법에 대한 간단한 요약은 다음과 같습니다.

  1. 판독 설치
  2. 연결된 답변의 예제 문서에서 서문을 복사하세요.
  3. Markdown 파일을 포함하려면 다음과 같이 문서에 포함하세요.

    \begin{markdown}
      \input{/path/to/GitHub/project/readme.md}
    \end{markdown}
    
  4. 문서를 컴파일할 때마다 Markdown 문서도 컴파일하고 포함해야 합니다.

답변2

내 대답은 @Big-Blue가 일부 Powershell 자동화에서 제안한 내용을 기반으로 합니다. 프로젝트 폴더처럼 모든 저장소가 있는 폴더가 있는 것 같습니다.

예제 폴더 구조:

-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)로 문서를 빌드해야 합니다.

관련 정보