问题

问题

我试图避免将文档模块化为单独的文件(因为它会被翻译成 10 种语言!)相反,我正在尝试使用软件包comments

假设我有针对该程序的三个变体的三份软件手册:

  1. 应用程序名称-demo.tex
  2. 应用程序名称-pro.tex
  3. 应用程序名称.tex

问题

在我看来,问题在于重叠的包含和排除都会写入comment.cut。这会导致文件在嵌入式(顺序)读取期间可能为空。

comment.sty源代码来看:

注释环境使用两个辅助命令。通过重新定义它们,您可以获得漂亮的特殊效果。[...] \def\CommentCutFile{comment.cut}

试图

未排版。

\documentclass{article}
\usepackage{comment}
\usepackage{xstring}
\usepackage{lipsum}

\IfSubStr{\jobname}{\detokenize{pro}}
  {\includecomment{include-pro}} % TRUE, so show pro stuff
  {\excludecomment{include-pro}}
\IfSubStr{\jobname}{\detokenize{demo}}
  {\excludecomment{exclude-demo}} % TRUE, so hide stuff
  {\includecomment{exclude-demo}} 

%\specialcomment{include-pro-functionality}% Attempt at changing `\CommentCutFile`
%  {\begingroup\def\CommentCutFile{include-pro.cut}}{\endgroup}
%\specialcomment{hide-in-demo}% Attempt at changing `\CommentCutFile`
%  {\begingroup\def\CommentCutFile{exclude-demo.cut}}{\endgroup}


\begin{document}
\section{Normal Functions}
\lipsum[1]

\begin{exclude-demo}
\section{Paid-Version Only Functions}
\lipsum[2]
\end{exclude-demo}

\begin{include-pro}
\section{Professional Functions}
\lipsum[3]
\end{include-pro}

% Overlapping Comments Test
\begin{exclude-demo}
\section{Paid-Version Only Functions}
\lipsum[2]
\begin{include-pro}
\subsection{Pro-Version Only Embedded}  
\end{include-pro}
\end{exclude-demo}

\end{document}

答案1

我想结束这个问题。我将和 Ulrike Fischer 一起说目前还不能嵌套评论

也许可以通过为每个嵌套注释创建单独的文件来实现,但这将花费更多的时间。也许有一天……

相关内容