是否有某种方法可以在 TeXShop 中成功排版后自动触发“Trash Aux Files”命令,而无需用户采取手动操作?
答案1
除了 Кигава Енсеи 关于使用 xelatex 引擎排版的回答之外,下面的微小改动也可以在 TeXShop 中使用 pdflatex 进行排版
只需更改xelatex' to
pdflatex' 它就可以工作
答案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
的命令行指令:Latex
pdfTeX
/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')
~/bin
把上面的内容放入trash-aux.py
- 编辑
~/.bashrc
或任何在 OS X 上包含的内容alias leantex='python ~/bin/trash-aux.py'
完毕!
笔记
- 这不会复制非基本
pdflatex
调用(例如 +-draftmode+ 将失败) - 它可以处理多个文件:
leantex hw1 hw2 problem_set