명령줄에서 Markdown 섹션을 포함/제외하려면 LaTeX '태그'를 추가하세요.

명령줄에서 Markdown 섹션을 포함/제외하려면 LaTeX '태그'를 추가하세요.

명령줄 선언에 따라 문서의 특정 섹션을 "켜거나 끌" 수 있기를 원합니다.

LaTeX 템플릿을 사용하여 Pandoc을 통해 내부 및 외부 사용을 위한 대규모 정책 문서 그룹을 PDF로 변환하고 있으며 Pandoc은 pdfTeX를 사용하고 있습니다. 또한 이를 재귀적으로 변환하는 PowerShell 스크립트도 있습니다.

gci -r -i *.md | foreach{$pdf=$_.directoryname+"\"+$_.basename+".pdf"; pandoc -f markdown --template template.latex -V geometry:margin=1.5cm -V fontfamily:lato -V fontfamilyoptions:default -V fontfamilyoptions:defaultsans -s $_.name -o $pdf}

외부 버전에는 목차 다음의 첫 번째 페이지인 문서 세부정보 섹션이 필요하지 않습니다. 아마도 세 번째 페이지를 제거할 수 있지만 긴 ToC가 포함된 문서도 있고 그렇지 않은 문서도 있으며 그 외에는 우아한 솔루션이라고 생각되지 않습니다.

내 일반적인 문서는 다음과 같습니다(간결하게 하기 위해 YAML 및 콘텐츠가 축소됨).

---
title: "A policy"
documentdetails: True/false % I could add something here for the default?
...

Table of contents:

\documentdetailstart % A tag looking like this for instance

# Document Details

#### Document Details

| Description | Status/Version | Reference Code | Control |
| --- |---|---|---|
|A Policy | Final / 1.0 | LaTeX | All |

\documentdetailend % A tag looking like this for instance

Begin Document

아마도 템플릿에서 처리되는 각 정책의 마크다운에 일종의 래핑을 추가하여 명령줄에 아래와 같은 항목을 추가하여 태그의 내용을 자동으로 생략/포함할 수 있도록 하려면 어떻게 해야 합니까?

-V Documentdetails:True

귀하가 제공할 수 있는 도움에 미리 감사드립니다!

답변1

당신은 가질 수 있습니다

\iftrue
Document details
\fi

iftrue를 iffalse로 바꾸고 새 복사본을 컴파일하도록 powershell 스크립트에 지시하십시오.

편집: 모든 내부 전용 항목을 아래와 같이 둘러싸면 \begininternal두 번째 줄을 로 \endinternal바꿔서 문서가 PDF의 내부용인지 외부용인지 전환할 수 있습니다 . 그런 다음 "외부인 경우 iffalse를 iftrue로 바꾸고 컴파일" 등의 내용을 스크립트에 표시하면 됩니다.iffalseiftrue

\documentclass{article}
\let\begininternal\iffalse
\let\endinternal\fi

\begin{document}
Stuff everyone gets

\begininternal
Internal  only stuff
\endinternal

More stuff everyone gets

\begininternal
More internal only stuff
\endinternal

The end.
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보