我正在排版一本关于使用 R 编程语言的手册。与其他一些语言一样,! 用作“非”的逻辑运算符。我希望这个符号出现在索引中,但它不会出现。似乎 Latex 将其解释为标点符号并忽略它。
我尝试将其包含在 \code{} 块中(我们为手册定义的 texttt 命令),但这会导致索引中添加一个空行。(见下文)我还尝试了 \fun{$!$},但文档无法编译,并且我收到 .ind 文件的错误消息:
第 4 行“缺少 $ 插入”
第 5 行“缺少 $ 插入”
我也在寻找可以使用的替代符号,但 Latex 似乎只包含\textexclamdown
,而没有\textexclamup
。
\documentclass{report}
\RequirePackage{imakeidx}
%===----- Functions for indexing and typesetting -----=====
\newcommand{\fun}[1]{\texttt{#1}\index{#1}}
\newcommand{\FUN}[1]{\texttt{#1}\index{#1|textbf}}
\newcommand{\code}[1]{\texttt{#1}}
\makeindex
\begin{document}
\SweaveOpts{concordance=TRUE}
\chapter{Logical operators}
In this section, we would like to introduce you to some of the logical operators used in the R programming language. These include the \FUN{\&} operator, the \FUN{!} operator, and the \fun{\textbar{}} operator. (Note that \FUN{\code{!}} produces an empty space in the index.)
<<>>=
nums1 <- c(1,4,2,8,11,100,8)
# Subset of nums1, where value is exactly 8 or 11:
nums1[nums1 == 8 | nums1 == 11]
# Subset nums1 where number is NOT equal to 100
nums1[nums1 != 100]
@
Here is a table that summarizes the logical operators:
\begin{table}[!htbp]
\caption{Logical operators.} \label{table:logicops}
\begin{center}
\begin{tabular}{l l}
Operator & Meaning \\ \hline
\fun{\textgreater{}} & greater than\\
\fun{\textless{}} & less than\\
\fun{\&} & AND\\
\fun{==} & equal to\\
\fun{\textbar{}} & OR\\
\fun{\%in\%} & is an element of\\
\fun{!} & NOT\\
\end{tabular}
\end{center}
\end{table}
\newpage
\printindex
\end{document}
在此先感谢您的帮助!
答案1
字符!
、@
和|
需要在索引上下文中进行转义。为了makeindex
理解您是想提及它们而不是使用它们,您必须用 '引用' 它们"
。以下应该可以解决问题:
\index{"!} % or, in this case: \fun{"!}
答案2
我尝试了一下,问题似乎源于您的\fun
命令,因为我添加了一个来$x$
查看它是否会打印,但只打印了 x。此外,添加空格{ ! }
而不是似乎{!}
会破坏格式。我把它留在里面,这样你就能看到它了。删除命令\fun
也会将其从索引中完全删除,但我想你自己可能已经解决了这个问题。
\documentclass{report}
\usepackage{imakeidx}
%\RequirePackage{imakeidx}
%===----- Functions for indexing and typesetting -----=====
\newcommand{\fun}[1]{\texttt{#1}\index{#1}}
\newcommand{\FUN}[1]{\texttt{#1}\index{#1|textbf}}
\newcommand{\code}[1]{\texttt{#1}}
\makeindex
\begin{document}
%\SweaveOpts{concordance=TRUE}
\chapter{Logical operators}
\begin{table}[!htbp]
\caption{Logical operators.} \label{table:logicops}
\begin{center}
\begin{tabular}{l l}
Operator & Meaning \\ \hline
\fun{\textgreater{}} & greater than\\
\fun{\textless{}} & less than\\
\fun{\&} & AND\\
\fun{==} & equal to\\
\fun{\textbar{}} & OR\\
\fun{\%in\%} & is an element of\\
\fun{ ! x } & NOT\\
\end{tabular}
\end{center}
\end{table}
我希望这会有所帮助,我以前从未亲自使用过索引。
我在编译时还遇到了其他问题,所以我注释掉了除表格之外的所有内容。这可能是我的编译器的问题,所以我把那部分留给你 :)