我似乎遇到了一个无法解决的问题,需要帮助解决,我完全清楚这在纯 LaTeX 中是不可能的,但我希望如此。所以开始讨论手头的问题。
我想建立一个图像表,在这种情况下,它们是 11,251 个汉字的 eps。现在从一开始我就研究了如何在 LaTex 中循环文件,因为我不想手动输入所有 11,251 个。我发现如果没有 shell 脚本的帮助,这是不可能的,所以我拼凑了这个
for f in *.eps; do echo "\includegraphics[scale=0.25]{./Reference/kanji/eps/$f}" >> ../eps.list; done
这只是一个开始,它工作得非常好,现在唯一的问题是 LaTeX 不能很好地处理该列表。它会抛出错误,例如Number too big ...=0.25]{./Reference/kanji/eps/0002e.svg.eps}
它们Dimension too large ...=0.25]{./Reference/kanji/eps/0002e.svg.eps}
只有 512x512,所以我假设这意味着边界框太大,作为对 eps 的说明,它们是使用以下脚本从 SVG 转换而来的
for f in *.svg; do inkscape -f $f -D -E $f.eps -z; done
而且它只花了大约 58 分钟就运行完毕,所以我的生活可能更糟了。我主要想寻求帮助的是如何生成表格。它需要有 6 列,N 行,并按顺序填充插槽,我不知道该怎么做,所以如果你愿意帮助我的话。
我可能要提出的另一个问题是,我似乎在使用 CJK 包时遇到了很多麻烦,经过几个小时在这里和其他地方的查找,我已经完成了字体并重建了字体数据库,更新了所有内容,但它仍然死机,Undefined control sequence 縲梧律
并出现大量Undefined control sequence 縲梧律
错误,主文件看起来像这样
\documentclass[UTF8,14pt]{book}
\usepackage{graphicx}
\usepackage{CJK}
\newcommand{\bookversion}{v0.0 REV 0}
\begin{document}
\begin{CJK*}{UTF8}{min}
\input{Title}
\clearpage
「日本語」
\tableofcontents
\include{Introduction/Part.Introduction}
\include{Learn/Part.Learn}
\include{Reference/Part.Reference}
\clearpage
\end{CJK*}
\end{document}
正如之前提到的,我在多个方面都感到不知所措,对于冗长的文字我深表歉意,并感谢您提供的所有帮助。
答案1
嗯,很难知道从哪里开始。
您说您认为边界框太大。我认为它们都是一样的,%%BoundingBox
EPS 中的线是什么(它们都是一样的吗?)
这可能是(我认为)你只是生成了一条太长的行。你似乎在制作一个\includegraphics{}
11251 长的命令列表,中间没有命令。对于 TeX 来说,包含的图形基本上就像一封信,所以它就像
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA....
有一条很长的、不可断的线。
修改 shell 脚本以写入
for f in *.eps; do echo "\do\includegraphics[scale=0.25]{./Reference/kanji/eps/$f}" >> ../eps.list; done
现在你们\do
每个人面前都有了。
如果您\let\do\par
在包含图像列表之前说,每个图像将位于其自己的段落中,这会占用 TeX 内存很多。这不是您想要的布局,但这是一个很好的测试,可以查看错误在这种情况下是否会改变。
要连续获取六幅图像,您可以定义
\newcount\imgcount
\def\do{%
\advance\imgcount 1
\ifnum\imgcount=7
\par
\imgcount=0
\else
\space
\fi}
这样就会在每幅图像之间留出一个空格,并且每 6 幅图像开始一个新段落(垂直对齐是自动的,因为它们都是相同的大小,所以您不需要构造表格。