Aktivieren und Deaktivieren von Inhalten des Befehls \chapter

Aktivieren und Deaktivieren von Inhalten des Befehls \chapter

Ich habe einen großen Satz von Inhalten für den Benutzer. Einem anderen Benutzer möchte ich andere Inhalte zeigen. Dazu möchte ich eine andere Ausgabe erzeugen, indem ich einige der Inhalte (z. B. Kapitel, Abschnitte, Unterabschnitte) des Dokuments zeige und nicht zeige.

Meine Idee ist: Während ich ein Kapitel/Abschnitt schreibe, deklariere ich, dass es einem bestimmten Benutzer angezeigt werden soll, indem ich das Argument auf true oder false setze. Zum Beispiel:

if (user1 == true) dann sollte es da sein inuser1.pdf

Genauer gesagt etwas wie:

Makro ist: \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]

Wenn ich user1und user3als 'True' übergebe, dann sollte meine Ausgabe enthalten

Befehl (Beispiel):\def\arg1=true, arg2=false, arg1=true \input{myfile}

chapterName1

sectionName1

Wie kann ich das machen?

Antwort1

Sie können von hier aus beginnen. Die folgenden Methoden verwenden das environPaket zum Überspringen von Inhalten. Sie können jedoch auch versuchen, das commentPaket für diesen Zweck zu verwenden.

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

Eine weitere Möglichkeit mit der Liste der aktivierten Benutzer:

\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: Um alle Dateien auf einmal zu erstellen, können Sie mit den Antworten beginnenHier


Eine weitere Möglichkeit besteht darin, nur diecommentPaketfür diesen Zweck ohne die Änderungen am chapterBefehl.

verwandte Informationen