TeXStudio(TeXLive)中的“\No”:“未定义的控制序列”

TeXStudio(TeXLive)中的“\No”:“未定义的控制序列”
! Undefined control sequence.
\@title ->Home work \\ Economics \No 
                           ~2
l.16 \maketitle

今天,我尝试将我的文本编辑器从 TeXworks 更改为 TeXStudio(并将 MiKTeX 更改为 TeXLive),然后在那里(在与 TeXLive 包连接的 TeXStudio 中)运行我的作业。因此,如上所示,问题与“\No~2”有关。

TeXworks 运行正常,并添加了符号,但 TeXStudio 没有。当我删除“\No”时,毫无疑问,TeXStudio 也能正常工作。

有没有机会教 TeXStudio 在 \maketitle 中使用数字符号 (\No)?在文本的其余部分,它也不起作用。

\documentclass[12pt]{article}
\usepackage{cmap}
\usepackage[utf8]{inputenc} 
\usepackage[russian]{babel}
\usepackage{amsmath}
\usepackage{graphicx} 
\usepackage{array}

\title{Home work \\ Economics \No~2}

\author{MY name}

\date{12 may 2014}

\begin{document}

\maketitle

\textbf{\large Task 1}

Some stuff

\end{document}

附言:当我在文本的某些部分(不是标题信息)输入“\No~2”时,它不起作用。我认为,我不得不说这是数字的俄语符号(№)。该符号与英文符号(No. 或 #)略有不同。

我需要这个: \No~2 由 texworks 在 \maketitle 中发布

答案1

textcomp该符号由其定义提供\textnumero,但您可以创建\No新命令来产生相同的符号:

\documentclass[12pt]{article}
\usepackage{cmap}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{textcomp}
\newcommand*{\No}{\textnumero}

\title{Home work\\Economics \No~2}

\author{MY name}

\date{12 may 2014}

\begin{document}

\maketitle

\section*{Task 1}% use semantic markup

Some stuff

\end{document}

顺便说一句,这个符号在英式英语中也表示“数字”,但可能有点过时,所以往往不被使用。(我猜No.可能是因为在打字机无法产生专门的符号时才使用,但我不确定。)

数字符号

答案2

russianbabel 的选项定义了一个针对\No西里尔数字符号(Unicode “2116”)的宏。您可以使用字体Latin Modern和加载fontenc选项来获取它T2A, TS1, T1

您还可以使用 来获取它XeLaTeX,加载fontspecpolyglossia包。然后您必须定义\No命令。

以下是可以双向工作的代码(注释和取消注释相关部分):

\documentclass[12pt]{article}

%\usepackage[utf8]{inputenc}
%\usepackage[T2A, TS1,T1]{fontenc}
%\usepackage{lmodern}
%\usepackage[russian]{babel}

\usepackage{fontspec}
\setmainfont{Minion Pro}
\usepackage{polyglossia}
\setmainlanguage{russian}
\providecommand\No{\char"2116}%{№}%

\title{Home work \\ Economics \No ~2}

\begin{document}

\maketitle

\end{document} 

两种方法的结果如下,XeLaTeX 方法与 Minion Pro 结合使用的结果如下:

在此处输入图片描述

在此处输入图片描述

答案3

正如 Ian 所说,您没有\No在文档类或任何加载的包中定义宏,至少在您的 TeX Live 发行版中没有,因此任何编辑器都会产生相同的错误(TeXworks 也是如此)。

\No但您可以根据需要在序言中简单定义。例如:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc} 
\usepackage[russian]{babel}
\newcommand\No{N.\textsuperscript{o}}
\title{Home work \\ Economics   \No ~2}
\begin{document}
\maketitle
\end{document}

因为您babel在俄语中使用了简写",所以您还可以为序数词定义新的简写。例如:

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\defineshorthand{"o}{$.\!$º}
\begin{document}
\title{Home work\\Economics N"o~2}
\maketitle
N"o $\neq$ N.\textsuperscript{o}
\end{document}

请注意,如果要在 中使用简写\title,则必须将其放在文档正文中、 之前\maketitle,但不能放在序言中。

顺便说一句,由于大多数字体使用无下划线的\textordmasculine符号,与度数符号非常相似,如果您希望它在不改变字体的情况下加下划线,您可以定义宏/简写来写一些类似的东西:

N$\!$.$\!$\textsuperscript{\tiny\underline{o}}

相关内容