当前位置:网站首页>【LaTex-错误和异常】\verb ended by end of line.原因是因为闭合边界符没有在\verb命令所属行中出现;\verb命令的正确和错误用法、verbatim环境的用法
【LaTex-错误和异常】\verb ended by end of line.原因是因为闭合边界符没有在\verb命令所属行中出现;\verb命令的正确和错误用法、verbatim环境的用法
2022-08-11 06:12:00 【键盘即钢琴】
一、背景
用xelatex排版引擎渲染下面的代码
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Roman number\_XII\@. Yes.\\
\verb!Roman number_XII\@. Yes.!\\
\verb{Roman number_XII\@. Yes.}
\verb!Roman number_XII\@. Yes.!\\
\end{document}
出现了错误【\verb ended by end of line.】
二、解决方法
参考:\verb ended by end of line - Overleaf, Online LaTeX Editor
我们把出问题的那一行的最后一个}号改成和前面的{号一样的后,就可以成功渲染出结果。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
Roman number\_XII\@. Yes.\\
\verb!Roman number_XII\@. Yes.!\\
\verb{Roman number_XII\@. Yes.{
\verb!Roman number_XII\@. Yes.!\\
\end{document}
三、反思
在上文给出的参考链接中,我们可以学到很多!
3.1 对于\verb控制命令,不允许在代码中换行
例如下面的代码是错误的
We can write different typefaces in \LaTeX as
\verb{
\textbf{Bold}
\textit{italics}
\textsf{sans serif}
}
而\verbatim环境,就允许代码换行的存在!!!
% In your preamble
\usepackage{verbatim}
% In the main body of your document
We can write different typefaces in \LaTeX as
\begin{verbatim}
\textbf{Bold}
\textit{italics}
\textsf{sans serif}
\end{verbatim}
渲染结果,完全无误!
3.2 \verb的分界符不是唯一的,但是前后要相同
\verb的分界符不是唯一的(一般是感叹号!),但是前后要相同;并且最好不要跟要\verb直线显示的文本中的符号相同。
如果使用了和内容的符号相同的分界符,则可能会误识别。
\verb{\frac{1}{2}}
比如上面的代码, 因为前面的分界符是{,而内容中也有此分界符,最后的输出结果就差强人意了!!
另外,分界符不可能是空格;如果直接在命令后跟空格,这个空格加与不加是等效的。
\verb \frac{1}{2}
上面的这一行,在编译时也会出现错误【\verb ended by end of line.】,因为第一个分界符是\,后面却没有再一次出现分界符。
修改成下面的样子后,编译生成了正确结果。
\verb \frac{1}{2}\
3.3 \verb命令一般不作为另一个命名的参数
当我们试图渲染下面这一行
\section{\verb!\frac{1}{2}!}
我们会收到非常多的错误!
- Missing $ inserted. <inserted text>
- Extra }, or forgotten $. \frac #1#2->{\begingroup #1\endgroup \@@over #2}
- Missing } inserted. <inserted text>
- \verb illegal in command argument.
- Argument of \@sect has an extra }. <inserted text>
- Paragraph ended before \@sect was complete. <to be read again>
- Argument of \@gobble has an extra }. <inserted text>
- ....(太多了写不过来)
因此,非常不建议把这个命令写在另一个命令的参数位置!
如果实在要写。
可以用命令\cprotect修饰一下!这个命令,需要添加宏包cprotect。下面给出示例代码
\documentclass{article}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{cprotect}
\begin{document}
Roman number\_XII\@. Yes.\\
\verb!Roman number_XII\@. Yes.!\\
\verb{Roman number_XII\@. Yes.{
\verb!Roman number_XII\@. Yes.!\\
% In the main body of your document
We can write different typefaces in \LaTeX as
\begin{verbatim}
\textbf{Bold}
\textit{italics}
\textsf{sans serif}
\end{verbatim}
\verb \frac{1}{2}\
\cprotect\section{This is a section heading with a verbatim \verb!\frac{1}{2}!}
\end{document}
渲染结果如下
边栏推荐
猜你喜欢
第一个C函数:如何实现板级初始化?
《Show and Tell: A Neural Image Caption Generator》论文解读
Daily sql-statistics of the number of professionals (including the number of professionals is 0)
Attitude solution - gyroscope + Euler method
抖音分享口令url API工具
Douyin get douyin share password url API return value description
ROS 话题通信理论模型
Edge 提供了标签分组功能
EasyPlayer针对H.265视频不自动播放设置下,loading状态无法消失的解决办法
获取拼多多商品信息操作详情
随机推荐
sql--Users who have purchased more than 3 times (inclusive) within 7 days (including the current day), and the purchase amount in the past 7 days exceeds 1,000
Unity3D 学习路线?
Unity底层是如何处理C#的
矩阵分析——微分、积分、极限
Douyin API interface
How Unity handles C# under the hood
抖音API接口大全
第一个C函数:如何实现板级初始化?
radix-4 FFT principle and C language code implementation
EasyPlayer针对H.265视频不自动播放设置下,loading状态无法消失的解决办法
图的拉普拉斯矩阵
常见激活函数及其导数
Edge 提供了标签分组功能
Discourse's Close Topic and Reopen Topic
一个小时快速熟悉MySQL基本用法
HCIA knowledge review
exness:黄金1800关口遇阻,静待美国CPI出炉
抖音API接口
radix-4 FFT 原理和C语言代码实现
Shell:三剑客之awk