Remove support for CRLF (except for Windows .bat's), as required by CTAN.

This commit is contained in:
Casper Ti. Vector 2013-12-27 11:20:17 +08:00
parent 0d18a685d5
commit 1111ff17b6
5 changed files with 64 additions and 30 deletions

View File

@ -29,11 +29,11 @@ clean:
distclean:
utils/dist $(DIST_FLAGS) distclean
toutf8lf:
utils/enclt toutf8lf
toutf8:
utils/enc toutf8
togbkcrlf:
utils/enclt togbkcrlf
togbk:
utils/enc togbk
qa:
utils/qa

View File

@ -75,19 +75,27 @@ mpm --install=pkuthss
texdoc pkuthss
\end{Verbatim}
所打开的 pdf 所在的同一目录中包含本文档(\verb|pkuthss.pdf|)的源代码%
\verb|utf8lf/| 和 \verb|gbkcrlf/| 两个子目录,
两目录中代码除使用的编码和换行符外基本上完全相同)。
\verb|utf8/| 和 \verb|gbk/| 两个子目录,
两目录中代码除使用的字符编码基本上完全相同)。
其中,%
\verb|utf8lf/| 目录下的源代码使用的是 UTF-8 编码、\verb|\n|LF换行
适合类 UNIX 系统用户使用;%
\verb|gbkcrlf/| 目录下的源代码使用的是 GBK 编码、\verb|\r\n|CRLF换行
适合 Windows 用户使用。%
用户可以试情况将 \verb|utf8lf/| 或 \verb|gbkcrlf/| 中
的所有内容复制到合适的目录,
\verb|utf8/| 目录下的源代码使用的是 UTF-8 编码,适合类 UNIX 系统用户使用;%
\verb|gbk/| 目录下的源代码使用的是 GBK 编码,适合 Windows 用户使用。%
用户可以试情况将 \verb|utf8/| 或 \verb|gbk/| 中的所有内容复制到合适的目录,
并在此目录中根据模版修改出自己的论文。
\verb|utf8lf/| 和 \verb|gbkcrlf/| 目录中的重要文件有:
\myemph{%
注意:
在 1.4 rc4 之后版本的 pkuthss 文档模版中,除了 \texttt{Make.bat} 之外,
所有文件均是 LF\texttt{\string\n})换行。
在 Windows 下用“记事本”打开这些文件时,
所有的换行会变成某个奇怪的字符,而所有文字会挤在一行上。
这是“记事本”的固有问题,
因此 pkuthss 文档模版的作者建议用户
使用支持 LF 换行的文本编辑器编辑文件。%
}
\verb|utf8/| 和 \verb|gbk/| 目录中的重要文件有:
\begin{itemize}
\item \verb|Makefile|
被 Make 工具调用的 Makefile用于使编译工作自动化。
@ -167,14 +175,37 @@ texdoc pkuthss
指定被编译的主文件名,
并通过设定变量 \verb|LATEX| 的值指定采用哪种编译方式,
即可通过在主文件所在目录调用 Make 工具来实现自动编译:
如果是在类 UNIX 环境下,则用户应该调用的命令名为 \verb|make|
如果是在类 UNIX 环境下,则用户应该调用的命令名为 \verb|make|
\begin{Verbatim}[frame = single]
cd /path/to/directory/with/pkuthss.tex
make
\end{Verbatim}
而如果是在 Windows 环境下,
则用户应该调用的命令名可能为 \verb|mingw32-make|。
则用户应该调用的命令名可能为 \verb|mingw32-make|
\begin{Verbatim}[frame = single]
cd \path\to\directory\with\pkuthss.tex
mingw32-make
\end{Verbatim}
用户如果不想配置 Windows 下的 GNU Make
则也可以使用由 Windows 批处理实现的伪“Makefile”
通过在主文件所在目录调用 \verb|make|\footnote{%
Windows 将批处理文件作为可执行文件,
调用时可以不显式地指出扩展名。%
} 或直接双击 \verb|Make.bat| 的图标运行之。
}
\begin{Verbatim}[frame = single]
cd \path\to\directory\with\pkuthss.tex
make
\end{Verbatim}
\myemph{%
注意:%
Windows 批处理对于 LF\texttt{\string\n})换行的批处理文件支持有问题。
在命令提示符cmd下执行这些批处理文件时没有问题
但双击文件图标执行时就会出错。
作者在 Google Code 和北大未名 BBS 上发布的压缩包中 \texttt{Make.bat}
均是 CRLF\texttt{\string\r\string\n})换行,
\TeX{}Live、\CTeX{} 套装中安装的 \texttt{Make.bat}
CTAN 上提供的压缩包里的 \texttt{Make.bat}
可能是 LF\texttt{\string\n})换行的。%
}

View File

@ -16,10 +16,18 @@
生成的 pdf 文档中可能缺少部分字符,
解决方式见第 \ref{sec:req} 节。
Windows 批处理对于 LF\texttt{\string\n})换行的批处理文件支持有问题,
解决方式见第 \ref{sec:compile} 节。
\verb|img/| 目录中 eps 图片未转换为 pdf 格式时,%
pdf\LaTeX{} 方式编译可能出错,
解决方式见第 \ref{sec:doc-dir} 节。
Windows 的“记事本”程序在查看 LF\texttt{\string\n}
换行的文本文件时存在着一些问题,
因此建议用户使用支持 LF 换行的文本编辑器编辑文件,
详见第 \ref{sec:doc-dir} 节。
使用过旧的 \TeX{} 系统和各宏包,
或使用某些 Linux 发行版软件仓库所提供的 \TeX{}Live 时,
可能引起一些问题,

View File

@ -16,11 +16,11 @@ dist:
doc-dist: doc/
mkdir -p $@/
make toutf8lf
cp -r doc/ $@/utf8lf
make togbkcrlf
cp -r doc/ $@/gbkcrlf
make toutf8lf
make toutf8
cp -r doc/ $@/utf8
make togbk
cp -r doc/ $@/gbk
make toutf8
doc-pdf: doc/
cd doc && make && make clean

View File

@ -1,27 +1,22 @@
#!/usr/bin/make -f
# vim:ts=4:sw=4
#
# Copyright (c) 2011-2012 Casper Ti. Vector
# Copyright (c) 2011-2013 Casper Ti. Vector
# Public domain.
FIND_GBKCRLF = -name '*.bat*'
TOLF = dos2unix -q
TOCRLF = unix2dos -q
TOUTF8 = enca -L zh -x UTF-8
TOGBK = enca -L zh -x GBK
toutf8lf:
toutf8:
find doc -not $(FIND_GBKCRLF) -type f -exec $(TOUTF8) '{}' '+'
find doc -not $(FIND_GBKCRLF) -type f -exec $(TOLF) '{}' '+'
sed -i -e '/\\documentclass/ s/GBK/UTF8/' \
-e '/^\\usepackage.*{biblatex}$$/ s/gbk/utf8/' \
doc/pkuthss.tex
sed -i '/{pkuthss-gbk\.def}$$/ s/gbk/utf8/g' doc/chap/encl1.tex
togbkcrlf:
find doc -type f -exec $(TOGBK) '{}' '+'
find doc -type f -exec $(TOCRLF) '{}' '+'
togbk:
find doc -not $(FIND_GBKCRLF) -type f -exec $(TOGBK) '{}' '+'
sed -i -e '/\\documentclass/ s/UTF8/GBK/' \
-e '/^\\usepackage.*{biblatex}$$/ s/utf8/gbk/' \
doc/pkuthss.tex