TeXShop 排版成功后自动“丢弃辅助文件”

TeXShop 排版成功后自动“丢弃辅助文件”

是否有某种方法可以在 TeXShop 中成功排版后自动触发“Trash Aux Files”命令,而无需用户采取手动操作?

答案1

除了 Кигава Енсеи 关于使用 xelatex 引擎排版的回答之外,下面的微小改动也可以在 TeXShop 中使用 pdflatex 进行排版

只需更改xelatex' topdflatex' 它就可以工作

答案2

虽然可能存在我不知道的更简洁的方法,但我发现下面的方法具有相同的功能。请注意,下面将使用 XeLaTeX 处理文档,但可以根据需要进行自定义。

~/Library/TeXShop/Engines目录中创建一个python脚本,例如XeLaTeX.py,内容如下:

# -*- coding: utf-8 -*-
import os, sys
tex_file = sys.argv[-1]
os.system("xelatex --shell-escape " + tex_file)
if os.path.isfile(os.path.splitext(os.path.basename(tex_file))[0] + ".aux"):
  os.remove(os.path.splitext(os.path.basename(tex_file))[0] + ".aux")
if os.path.isfile(os.path.splitext(os.path.basename(tex_file))[0] + ".log"):
  os.remove(os.path.splitext(os.path.basename(tex_file))[0] + ".log")
if os.path.isfile(os.path.splitext(os.path.basename(tex_file))[0] + ".out"):
  os.remove(os.path.splitext(os.path.basename(tex_file))[0] + ".out")
if os.path.isfile(os.path.splitext(os.path.basename(tex_file))[0] + ".synctex.gz"):
  os.remove(os.path.splitext(os.path.basename(tex_file))[0] + ".synctex.gz")
print(os.path.splitext(os.path.basename(tex_file))[0])

接下来,指示 TeXShop 使用此文件。一种方法是在TeXShop Preferences 选项卡中,编辑下面Engine的命令行指令:LatexpdfTeX

/usr/bin/python /Users/USERNAME/Library/TeXShop/Engines/XeLaTeX.py

现在,使用命令处理文件后LaTeX,、.aux和文件将.log全部.synctex.gz自动删除;可以轻松编辑脚本以删除任何其他文件。

最后,正如对原始问题的评论所指出的那样,如果必须再次引用这些文件,则可能会导致问题,在这种情况下不应使用该脚本。

答案3

您可以在 Mac 或 Linux 上为脚本添加别名,如下所示:

import os,sys

args = sys.argv
print(args)
if len(args) < 1:
    print(
        '''
        please rerun, being sure to include your tex file(s) as an argument!
        ''')
    sys.exit(0)

for tex in args[1:]:
    os.system('pdflatex {0}.tex'.format(tex))
os.system('rm *.aux *.log')
  1. ~/bin把上面的内容放入trash-aux.py
  2. 编辑~/.bashrc或任何在 OS X 上包含的内容alias leantex='python ~/bin/trash-aux.py'

完毕!

笔记

  • 这不会复制非基本pdflatex调用(例如 +-draftmode+ 将失败)
  • 它可以处理多个文件:leantex hw1 hw2 problem_set

相关内容