Добавьте «теги» LaTeX для включения/исключения разделов Markdown из командной строки

Добавьте «теги» LaTeX для включения/исключения разделов Markdown из командной строки

Я хотел бы иметь возможность «включать/выключать» определенные разделы моих документов в зависимости от объявления в командной строке.

Я конвертирую большую группу документов политики, которые предназначены как для внутреннего, так и для внешнего использования, через Pandoc в PDF, используя шаблон LaTeX, а 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

и скажите вашему скрипту PowerShell заменить iftrue на iffalse и скомпилировать новую копию.

Редактировать: Если вы окружите все внутренние вещи \begininternalи \endinternalкак показано ниже, то вы можете переключаться между тем, является ли документ внутренней или внешней копией pdf, заменив iffalseна iftrueво второй строке. Затем вам просто нужно заставить свой скрипт сказать "если внешний, замените iffalse на iftrue и скомпилируйте" или что-то в этом роде.

\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}

введите описание изображения здесь

Связанный контент