我正在写的一段文字包含很多符号,例如“{”或“_”。要将这些符号显示为文本而不是命令,我必须将它们写为“\{”和“\_”。否则,Latex 会提示错误。但是,我的文档中有很多这样的符号,每次都要在它们前面加一个破折号,这很不方便。
一个例子:
\begin{document}
The Tadrart Acacus (https://en.wikipedia.org/wiki/Acacus_Mountains) have a large variation of landscapes, from different-coloured dunes to arches, gorges, isolated rocks and deep wadis (ravines).
\end{document}
参考维基百科链接:通常,我只是从浏览器复制链接并将其粘贴到我的段落中。但由于“Acacus_Mountains”一词中的“_”符号,Latex 会说有错误并要求我用“$”符号将其括起来。
关于 \verbatim 环境:它对我来说不起作用,因为:
- 它改变了段落的字体。
- 到达边缘时不会转到新行。
为了说明这一点,我将用 \verbatim 括住我的段落:
\begin{document}
\begin{verbatim}
The Tadrart Acacus (https://en.wikipedia.org/wiki/Acacus_Mountains) have a
large variation of landscapes, from different-coloured dunes to arches,
gorges, isolated rocks and deep wadis (ravines).
\end{verbatim}
\end{document}
我的问题是:如何告诉 Latex 将某个段落中的所有内容解释为纯文本?
答案1
根据问题和评论,以下是我对您的需求的理解:
- 您希望以非特殊的方式处理某些字符(下划线
_
是一个,括号{
可能是另一个,但它不清楚,因为它与下一点相矛盾)(即,简单地排版该字符)。 - 与 不同
verbatim
,您希望某些字符继续以特殊方式处理,就像 TeX 默认那样:例如,\textbf{hello}
您希望 the\
和{
the}
具有其默认(特殊)含义。 - 与 不同
verbatim
,您希望字体保持正常,排版也保持正常(带有换行符的常规段落等)。
如果这是正确的,它可能会帮助你理解通常发生的事情。当 TeX 读取你的输入时,它会为每个字符分配一个特定的“catcode”。(参见类别代码是什么?了解更多详情。)具有 catcode 11(“字母”)或 catcode 12(“其他”)的内容只是正常排版(具体来说,它们被视为在当前加载的字体中排版该位置的字形的指令),而其他内容则被特殊处理。
默认情况下,这些字符会被特殊处理:
\
,,{
}
$
,,,,,,,&
#
^
_
~
%
- 空格、行尾、控制字符
我假设您想继续特殊处理第一组(和第三组)中的字符,但将第二组中的字符视为文本(在 TeX 术语中,为“其他”字符)。您可以通过定义如下环境来实现simplechar
:
\documentclass{article}
\usepackage[T1]{fontenc}
\newenvironment{simplechar}{%
\catcode`\$=12
\catcode`\&=12
\catcode`\#=12
\catcode`\^=12
\catcode`\_=12
\catcode`\~=12
\catcode`\%=12
}{}
\begin{document}
\begin{simplechar}
This is a paragraph with \textbf{bold} and \emph{emphasized} text, but ``special'' characters like $ & # ^ _ ~ % are treated normally, while {braces} are not, and the paragraph uses a normal font and wraps (has line breaks) at text width.
\end{simplechar}
\end{document}
将此输出与您获得的类似输出进行比较alltt
,该输出比以下输出略好一些verbatim
:
TeX/LaTeX 的默认行为是将所有这些字符视为特殊字符,这使得某些输入非常方便(进入数学模式、下标和上标、定义宏等),但对于只想排版文本而还不想做这些事情的初学者来说,这可能是一个“陷阱”。查看 ConTeXt 用户的类似想法阿迪亚在他的博客上:关于降低 TeX 学习曲线的一些想法。
答案2
\documentclass{article}
\usepackage[T1]{fontenc}
\def\zzz{%
\catcode`\$=12
\catcode`\&=12
\catcode`\#=12
\catcode`\^=12
\catcode`\_=12
\catcode`\~=12
\catcode`\%=12
\catcode`\\=12
\catcode`\{=12
\catcode`\}=12
\zzzz}
{
\catcode`\/=0
\catcode`\[=1
\catcode`\]=2
\catcode`\{=12
\catcode`\}=12
\catcode`\\=12
/long/gdef/zzzz#1\end{zzz}[%
#1/end[zzz]]
]
\begin{document}
\begin{zzz}
The Tadrart Acacus (https://en.wikipedia.org/wiki/Acacus_Mountains) have a large variation of landscapes, from different-coloured dunes to arches, gorges, isolated rocks and deep wadis (ravines).
and \ and & and # and } and { not forgetting _ and ^ and %
\end{zzz}
\end{document}
答案3
如果url
加载了包(最好使用选项hyphens
、spaces
和obeyspaces
)并运行了指令\urlstyle{same}
,则可以将整个段落包含在\url
指令中。但我不建议这样做,因为您会失去连字符功能。当然,如果这是我的文档,我会\url
只在必要时应用指令。
\documentclass{article}
\usepackage[hyphens,spaces,obeyspaces]{url}
\urlstyle{same}
\begin{document}
\noindent
The Tadrart Acacus (\url{https://en.wikipedia.org/wiki/Acacus_Mountains}) have a large
variation of landscapes, from different-coloured dunes to arches, gorges, isolated rocks
and deep wadis (ravines), along with several \url{my_matlab_code.m} files.
\smallskip\noindent
\url{The Tadrart Acacus (https://en.wikipedia.org/wiki/Acacus_Mountains) have a large
variation of landscapes, from different-coloured dunes to arches, gorges, isolated rocks
and deep wadis (ravines), as well as a few my_matlab_code.m files.}
\end{document}