TeXShop 中的缩进和换行

TeXShop 中的缩进和换行

正如指出的那样这个问题在 TeXShop 中,没有办法让源段落(即没有硬换行的长行)遵循源缩进自动地即在打字时。接受的答案在我看来,这是不能令人满意的,因为它需要在每一行手动插入换行符...我相信在 2011 年你不应该被迫采用这种行为,除非你是老式打字机的忠实粉丝。

我的最终目标是实现

可读的“编程语言风格”源代码,带有用于环境的缩进块,

我想使用 TeXShop 来实现它(我知道使用其他编辑器很容易,比如 Emacs)。我的问题是:

有没有办法获得这样的格式打字,例如使用在正确位置插入换行符的宏?

我尝试的第一件事如下:

  1. 自然地编写代码,没有缩进或硬换行;
  2. 选择任意块(甚至整个代码),然后从 TeXShop 的菜单中应用 Source > Wrap Lines > Hard Wrap;
  3. 选择您想要缩进的任何块,然后使用源菜单中的相应命令进行缩进。

然而,这并不好用,因为在缩进块之后,某些行可能会变得太长,超出编辑器窗口的宽度。

答案1

我不确定您到底需要什么功能,但也许下面的功能会让您满意。我使用另一个程序来完成这项工作,即 Textwrangler,以正确对齐和插入硬换行符。

这是一个执行以下操作的宏:

  1. 收集所有标记的文本,
  2. 将其传递给 Textwrangler
  3. 文本正确对齐且断开
  4. 将结果粘贴回 TexShop 以代替标记的文本。

我使用指定的键盘快捷键应用宏。我不是 Applescript 专家,所以我想宏可以改进。

--Applescript
-- Script to transfer the current TeXShop document to TextWrangler
-- Ido Ben-Zvi
-- Based on Ramon Figueroa-Centeno's macros 

tell application "TeXShop"
    try
        activate
        set posPath to path of the front document
        --return posPath

        tell application "System Events" to keystroke "c" using {command down}

        tell application "TextWrangler"
            activate
            tell application "System Events"
                keystroke "a" using command down
                keystroke "v" using command down
                keystroke "a" using command down
            end tell
            hard wrap selection of text window 1 limit character width width 80 indentation none with paragraph fill and relative
            --copy selection of text window 1
            --set modified_text to selection of text window 1       
            tell application "System Events" to keystroke "c" using {command down}
            --close myTeXfile
        end tell


        -- back at TexShop      
        activate
        --set modified of front document to yes
        --paste 
        tell application "System Events"
            keystroke "v" using command down
        end tell
    on error
        beep
    end try
end tell




--tell application "TextWrangler"
--  close POSIX file FILEPATH
--end tell

答案2

TeXShop 的宏编辑器非常强大,因此如果您可以编写脚本来漂亮地打印您的代码,您可以将其挂接到宏中并在需要时运行它。

但最好的办法可能是与开发人员取得联系。

答案3

到目前为止,我发现的最好的方法是以下相当平淡无奇的解决方案:按照问题中描述的相同步骤,添加:

1.5:调整 TeXShop 中的源窗口大小,将其宽度减少约 2 或 3 个缩进的大小;

2.5:将窗口大小调整为其原始宽度。

这样就避免了问题最后一句所描述的问题。

相关内容