! 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. 或 #)略有不同。
我需要这个:
答案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
russian
babel 的选项定义了一个针对\No
西里尔数字符号(Unicode “2116”)的宏。您可以使用字体Latin Modern
和加载fontenc
选项来获取它T2A, TS1, T1
。
您还可以使用 来获取它XeLaTeX
,加载fontspec
和polyglossia
包。然后您必须定义\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}}