这里有一个奇怪的问题:
Brandon@forge ~/Dropbox/research.local/oil
$ date
Tue, Nov 27, 2012 6:14:23 PM
Brandon@forge ~/Dropbox/research.local/oil
$ cat <<EOF | pdflatex
\documentclass{article}
\begin{document}
\today
\end{document}
EOF
给我一个文档,内容是“2012 年 11 月 28 日”。
现在,我猜想这与区域设置或时区有关 - 但为什么 TeX 内部与命令行中的内容会有所不同?
值得一提的是:我在 Windows 7 和 TeX Live 2012 上运行 Cygwin。
答案1
一提到TZ
环境变量,它似乎就是罪魁祸首,尤其是当您运行的是 Windows 版 TeX Live 而不是 cygwin 版时(这完全是合理的,所以希望这是它导致的唯一问题)。我相信 Windows 和 cygwin 对该变量的解释不同,并且当从 cygwin 会话运行 Windows 二进制文件时,cygwin 环境会被继承。大概在您的系统上 cygwin 之外,TZ
未设置该变量。
因此,为了确保正确解释时间,您需要TZ
在使用本机 Windows 二进制文件(例如 TeX Live 二进制文件)之前取消设置变量。为了避免全局取消设置变量(这肯定在 cygwin 中用于其他需要的用途),也许可以考虑使用bash
别名,例如alias pdflatex="TZ= pdflatex"
。
为了尝试回答您关于在哪个 TZ 值中使用的后一个问题cygwin
,官方时区数据库在条目前有以下文本America/Los Angeles
:
# US Pacific time, represented by Los Angeles
#
# California, northern Idaho (Benewah, Bonner, Boundary, Clearwater,
# Idaho, Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties,
# and the northern three-quarters of Idaho county),
# most of Nevada, most of Oregon, and Washington