我使用 php 脚本在本地 OSX 10.6.7 上使用 MAMP 生成 LaTeX 文件 (report.tex)(文件系统为 HFS+)。然后我使用exec()
LaTex 构建文件。.tex 在文件系统上很好地创建,但它不会被查找器识别为 .tex 文件,也不会被 LaTex 识别。我已经检查过问题不在于文件本身,而在于 php 脚本创建它的方式。
事实上,如果我使用文本编辑器创建 report.tex,系统会正确处理该文件,并且 LaTex 不会出现问题。如果我运行 php 脚本,它会在同一个目录中创建另一个具有相同名称(!)的文件。在内部,这些文件完全相同,用十六进制编辑器检查。如果我ls -ls@
在目录中运行,我会获得
8 -rw-r--r--@ 1 tom staff 871 4 jui 12:30 report.tex
com.apple.FinderInfo 32
com.apple.TextEncoding 15
8 -rw-r--r-- 1 tom staff 805 4 jui 12:35 report.tex
最后一个文件是 php 生成的。如果我xattr -p com.apple.FinderInfo
在第一个文件上运行,我会得到
54 45 58 54 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
如果我跑步xattr -p com.apple.TextEncoding
,
UTF-8;134217984
一旦指定了文本编辑器,我就可以毫无问题地打开第二个文件(该文件未被识别为 .tex 但第一个文件是!)。然后该文件在 TextWrangler 中显示良好,但 tex 的语法着色未激活(它为第一个激活,并且它们的内容按字节顺序相同)。
我很确定这些问题与这个额外的属性有关。我的问题是:有没有办法使用 PHP 或 OSX 来实现正确的行为,即 php 创建的文件被识别为普通的 .tex 文件,例如覆盖第一个文件(当然可以处理由乳胶)?
问候,
汤姆