DTX 文件基于 LaTeX 注释,这意味着任何可以突出显示 LaTeX 代码的编辑器都会将大多数 DTX 文件(所有文档)打印为注释,因此不是突出显示代码。
我发现 Emacs 可以解决这个问题,但是我不想仅仅因为这个就学习如何使用 Emacs。WinEdt 应该也能解决这个问题,但它不是开源的。TeXworks 不能解决这个问题(我使用的是 Window)。我读到 gedit 应该可以做到这一点,但它也只能突出显示标准的 LaTeX 代码。
在LaTeX 文档源 (.dtx) 文件的编辑器/IDE引入了 TeXworks 中用于高亮显示的脚本,但我不知道如何告诉 TeXworks 使用它。设置对话框不允许这样做。
答案1
我用特克斯沃克斯用于编辑.dtx
文件:我将解释如何设置它。
在 Windows 上,“原始” TeXworks 将其设置存储在C:\Users\<user>\TeXworks\configuration
(Windows 7)/ C:\Documents and Settings\<user>\TeXworks\configuration
(Windows XP) 中。在那里,您将找到一个名为 的文件syntax-patterns.txt
,最好使用 TeXworks 本身来编辑该文件(行尾为 *nix,因此记事本会弄乱格式)。我已向该文件添加了一个部分,内容如下
[LaTeX DTX]
# comments
red Y \^\^A.*
# Guards
orange N %<(?:[A-Za-z0-9!\|\&]+|.)>
limegreen N %<\*(?:[A-Za-z0-9!\|\&]+|.)>
crimson N %</(?:[A-Za-z0-9!\|\&]+|.)>
# special characters
darkred N \^\^\^\^\^[0-9a-z]{5}
darkred N \^\^\^\^[0-9a-z]{4}
darkred N \^\^\^[0-9a-z]{3}
darkred N \^\^[0-9a-z]{2}
darkred N [$#^_{}&]
gray N ^%%.*
gray N ^%
# Macrocode
green N \\(?:begin|end)\{macrocode\}
# LaTeX environments
darkgreen N \\(?:begin|end)\s*\{[^}]*\}
# control sequences
blue N \\(?:[A-Za-z@:_]+|.)
添加此项并重新启动 TeXworks,会在格式 -> 语法颜色菜单中添加一个新选项。当我编辑.dtx
文件时,我会使用这些突出显示设置。
如果您使用由 TeX Live 安装的 TeXworks,则设置位于C:\Users\<user>\.texlive<year>\texmf-config\texworks\configuration
(根据情况选择年份)。
对于 Mac 用户,设置位于~/Library/TeXworks/configuration
,而对于 Linux 用户,设置位于~/TeXworks/configuration
:其他设置细节保持不变。
Windows 上 TeXworks 的替代品是编辑。它有一个相当先进的“DTX 模式”,可从社区支持站点。上面我的设置中的配色方案基于 WinEdt 的 DTX 模式:在切换到 TeXworks 之前,我曾经使用过 WinEdt。
答案2
VIM.dtx
开箱即用地识别文件。¹ 它不会将以%
和开头的行视为%%
注释,并正确突出显示代码。同时, (的 ed 部分^^A
内的注释字符)被识别为正确的注释字符。\DocInput
.dtx
¹ 你对 VIM 还有什么期望?;-)
答案3
特克斯工作室支持dtx
开箱即用地编辑文件。支持可用自 2012 年 5 月以来。