我正在写一本书,将以纸质和数字形式出版。这本书的散文部分可以在数字设备上重排,但书中有很多显示部分的编程代码,重排这些显示(即更改换行符)是非常不可取的。有些设备提供的行比其他设备长得多,所以我正在考虑的一种方法是制作一份手稿,其中每个代码显示有两种形式:用于宽显示和用于窄显示。为了真正做到这一点,我希望在 Word 中使用条件文本,因为这样就可以制作两个版本的手稿,一个版本的代码显示为宽行,另一个版本的代码显示为窄行。
我已经在 Google 上搜索了很多有关 Word 中条件文本支持的信息,但结果却令人沮丧。 ThirtySix 软件公司的 SmartDocs似乎它可以支持我想要的东西,但是他们的产品每年要花费 695 美元,这对于独立作家来说在经济上没有什么意义。 Livelinx 的条件文本似乎是一个被遗弃的产品,并且发布的宏Gary Calwell 的文章不处理条件文本中的括号(这对我来说是个问题,因为编程代码显示包含大量括号)。MS 社区论坛中的主题也Office 开发中心提供有关 DIY 解决方案的线索,但我的目标是写一本书,而不是学习 VBA。
我是不是用错了方法?在 Word 2010 中,是否有一种处理条件文本(或者更一般地说,条件内容)的方法值得我考虑?似乎说“如果(行宽)显示本文,否则显示另一段文字“”。
感谢您提供的任何帮助和指导。
答案1
我刚刚在 Word for Mac 2011 中使用了 Gary Calwell 的宏。问题是从 2 列 PDF 粘贴时会弄乱换行符,特别是 IF 语句(请参阅http://www.daniweb.com/software-development/visual-basic-4-5-6/threads/47217/end-if-statements#)
要将分隔符从花括号更改为其他一些模糊的字符,我认为您只需更改 Function TagPara() 中的以下几行:
pos1 = InStr(myText, "{")
pos2 = InStr(myText, "}")
If myTag <> "" Then myRange.Text = "{" & myTag & "}"
我尝试粘贴完整的代码,而不会被 PDF 列弄乱,但这个论坛似乎不喜欢这么长的帖子;也许它能读懂尊敬的 Calwell 先生的聪明才智。
答案2
Adobe FrameMaker 使这种编辑变得轻而易举。我现在正在 FM 中创建一个文档,它需要有多个打印版本以及 wiki 的标记。我能够将所有这些不同的要求作为条件文本包含进去,然后生成必要的输出,根据需要隐藏和取消隐藏条件文本。wiki (TWiki) 标记确实需要一些额外的“调整”,但这是最少的,我使用 NoteTab Pro 来完成这项工作。
此外,我还使用Macro Toolworks Pro来协助标记,使用宏而不必手动执行重复任务。
答案3
我建议我的工具:宽松模块。也许这对于您的需求来说有点过度,但您可以忽略不相关的功能。
答案4
我今天遇到了这些研究,类似于你所问的问题:
对于简单的短条件文本情况,我认为这说明了示例:https://help.nintex.com/en-US/docgen/docservices/#docgen-sfdc/Services/templates/ConditionalTextWord.htm?Highlight=conditional。
对于更复杂的情况:
https://stackoverflow.com/questions/47335758/word-conditional-text
我可以使用 Microsoft Word 中的条件文本自动化来隐藏整个段落吗
这个仅适用于 Windows……
并且该文章中引用的文章(包括提供此支持所需的二进制文件)现已消失,但我在网络档案中找到了缓存副本