如何在 (La)TeX 中插入管道符号?

如何在 (La)TeX 中插入管道符号?

如何|在 TeX(LaTeX)中插入管道符号?

我已经尝试过这个示例pdflatex tmp.tex

\documentclass{extarticle}
\begin{document}
\textpipe
\end{document}

并且它给出undefined control sequence错误

This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian)
restricted \write18 enabled.
entering extended mode
(./tmp.tex
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
yphenation, loaded.
(/usr/share/texmf-texlive/tex/latex/extsizes/extarticle.cls
Document Class: extarticle 1996/10/08 v1.0 Non Standard LaTeX document class
(/usr/share/texmf-texlive/tex/latex/base/size10.clo)
(/usr/share/texmf-texlive/tex/latex/base/exscale.sty))
No file tmp.aux.
! Undefined control sequence.
l.3 \textpipe

答案1

管道符号可以直接在输入中使用,如果您使用 T1 字体编码,它将产生所需的输出。例如:

\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
Pipe sign: |
\end{document}

输出:

在此处输入图片描述

比较这些表格来查看两种字体编码之间的区别:OT1(标准编码)对阵T1(Cork 编码)。OT1 表不包含管道符号,但可以在 T1 表中找到它。它的位置是 7C。对于 OT1,7C 表示宽破折号,这就是为什么我们在标准编码中得到宽破折号而不是管道符号。

特殊的 LaTeX 字符了解更多信息。

因为使用像或者这样的命令\textpipe加载包是必要的。tipat4phonet

答案2

除非有其他原因,否则无需加载任何附加包。Mathmode$\vert$为垂直管道和$\Vert$双管道提供了替代符号。这些符号似乎与编码无关。实际上,数学符号$|$似乎也与编码无关。

答案3

我建议使用命令\textbar,因为这不需要您使用不同的编码或附加包。对我来说,这是一个更好的解决方案,因为我已经致力于usepackage[utf8]{inputenc}。此外,我正在使用一个将 UTF-8 数据放入 LaTeX 模板(转义特殊字符)的系统,并且该系统不能依赖任何附加包(UTF-8 编码除外)。

答案4

附注:如果您提供标志 -enable-pipes,MikTeX 支持在 \input 中使用管道。这对于直接从文档调用外部程序很有用。

以下是从 Octave 获取输入的示例和文档文件列表:

%& -enable-pipes
\documentclass{article}
\usepackage{amsmath}
\newcommand\octave[2][]{%
   \input"|octave -qf --eval 'format #1;disp(#2)'"
}

\begin{document}

Foo $\pi \approx \octave{pi}$ bar.
\begin{align}
   \pi           &\approx \octave[long]{pi} \\
   \sqrt 2       &\approx \octave[short]{sqrt(2)} \\
   \pi\exp(3\pi) &\approx \octave[short g]{pi*exp(3*pi)}
\end{align}

{\obeylines
List of files:
\input"|ls -l \jobname.*"
}

\end{document} 

我在 Linux 系统上使用 MikTeX。如果您运行的是 Windows,则必须对示例进行相应的更改。

相关内容