Habilite e desabilite o conteúdo do comando \chapter

Habilite e desabilite o conteúdo do comando \chapter

Eu tenho um grande conjunto de conteúdos para o usuário. Para um usuário diferente, gostaria de mostrar conteúdos diferentes. Para isso, gostaria de produzir resultados diferentes, mostrando ou não alguns dos conteúdos (digamos, subseção de seções de capítulos) do documento.

Minha ideia é: ao escrever o capítulo/seção, declaro que permite a exibição a um usuário específico, definindo o argumento como verdadeiro ou falso. Por exemplo,

if (user1 == true) então deveria estar lá emuser1.pdf

Mais especificamente, algo como:

Macro é: \chapter <chapterName1> [bool arg1][bool arg2][bool arg3]

\chapter <chapterName1> [user1==true][user2==false][user3==false] 

\chapter <chapterName2> [user1==true][user2==true][user3==false]

\section <sectionName1> [user1==true][user2==true][user3==true]

Se eu passar user1e user3como 'True', minha saída deverá conter

comando (ex):\def\arg1=true, arg2=false, arg1=true \input{myfile}

chapterName1

sectionName1

Como posso fazer isso?

Responder1

Você pode começar daqui. Os métodos abaixo apresentam o environpacote para pular conteúdo, mas você também pode tentar usar o commentpacote para essa finalidade.

\documentclass[openany]{scrbook}

\usepackage{environ}
\usepackage{pdftexcmds}

\newcommand{\username}{user1}

\makeatletter
\NewEnviron{condchapter}[2][user]{
    \ifnum\pdf@strcmp{#1}{\username}=\z@
        \chapter{#2}
        \BODY
    \else
    \fi
}
\makeatother

\begin{document}

\begin{condchapter}[user1]{Title-1}

Some text.

\end{condchapter}

\begin{condchapter}[user2]{Title-2}

Some text.

\end{condchapter}

\renewcommand{\username}{user2}

\begin{condchapter}[user2]{Title-3}

Some text.

\end{condchapter}

\end{document}

Outra possibilidade com a lista de usuários habilitados:

\documentclass[openany]{scrbook}

\usepackage{environ}
\usepackage{xstring}

\newcommand{\username}{user1}

\makeatletter
\NewEnviron{condchapter}[2][user]{
    \IfSubStr{#1}{\username}{%
        \chapter{#2}
        \BODY
    }{}
    %\else
    %\fi
}
\makeatother

\begin{document}

\begin{condchapter}[user1]{Title-1}

Some text.

\end{condchapter}

\begin{condchapter}[user2]{Title-2}

Some text.

\end{condchapter}

\renewcommand{\username}{user2}

\begin{condchapter}[user2, user3]{Title-3}

Some text.

\end{condchapter}

\end{document}

PS: para criar todos os arquivos de uma vez você pode começar pelas respostasaqui


Outra possibilidade é usar apenas ocommentpacotepara este propósito sem as modificações no chaptercomando.

informação relacionada