如何|
在 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
加载包是必要的。tipa
t4phonet
答案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,则必须对示例进行相应的更改。