我最近一直在尝试用不同的符号替换索引中的逗号。以下代码将上述逗号替换为空格。
\begin{filecontents}{\jobname.mst}
%delim_0 " $a$ "
delim_0 " $ $ "
%delim_1 " $b$ "
delim_1 " $ $ "
%delim_2 " $c$ "
delim_2 " $ $ "
delim_n ","
\end{filecontents}
\documentclass{book}
\let\cleardoublepage\clearpage
\usepackage{makeidx}
\usepackage{idxlayout}
\makeindex
\begin{document}
Some words.\index{entryA}
Some words.\index{entryB!subentry}
\idxlayout{columns=1}
\printindex
\end{document}
产生索引输出:
评论:我也运行了上面的代码,使用filecontents*
它来代替filecontents
,输出看似相同。
filecontents
问题:有人可以解释一下和之间的区别吗filecontents*
?以及什么时候建议使用其中一个而不是另一个?
谢谢。
答案1
filecontents
(及其星号版本)是 LaTeX 内核的一部分,但最初作为单独的软件包发布,名为filecontents
. 因此,从其文档:
filecontents
工作原理与 非常相似verbatim
,只是它接受一个强制的文件名参数:\begin{filecontents}{myfile.tex} This text gets written to \texttt{myfile.tex}. \end{filecontents}
上述代码将写入一个 myfile.tex 文件,其内容类似于以下内容:
%% LaTeX2e file `myfile.tex' %% generated by the `filecontents' environment %% from source `mydocument' on 2001/07/31. %% This text gets written to \texttt{myfile.tex}.
myfile.tex
\include
然后可以使用或 重新合并到文档中\input
。如果filecontents*
使用 而不是filecontents
,文件将只包含“This text gets written to \texttt{myfile.tex}.
”行。filecontents*
因此,对于编写非 LaTeX 文件(如封装的 PostScript 文件)非常有用。
另一个用例filecontents*
来自编写列表,其中 TeX 注释可能看起来不合适,或者语法完全不同。
我个人更喜欢,filecontents*
因为注释的描述没有提供任何不能合并到文件名中的内容,例如(如20010731_myfile.tex
)。