我试图避免将文档模块化为单独的文件(因为它会被翻译成 10 种语言!)相反,我正在尝试使用软件包comments
。
假设我有针对该程序的三个变体的三份软件手册:
- 应用程序名称-demo.tex
- 应用程序名称-pro.tex
- 应用程序名称.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 一起说目前还不能嵌套评论。
也许可以通过为每个嵌套注释创建单独的文件来实现,但这将花费更多的时间。也许有一天……