Latex 环境以纯文本模式书写

Latex 环境以纯文本模式书写

我正在写的一段文字包含很多符号,例如“{”或“_”。要将这些符号显示为文本而不是命令,我必须将它们写为“\{”和“\_”。否则,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 环境:它对我来说不起作用,因为:

  1. 它改变了段落的字体。
  2. 到达边缘时不会转到新行。

为了说明这一点,我将用 \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}

这是我的文本在 \verbatim 环境中的样子: 在此处输入图片描述

我的问题是:如何告诉 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

使用 alltt 输出

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加载了包(最好使用选项hyphensspacesobeyspaces)并运行了指令\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}

相关内容