我想在 Haskell 语法中使用特殊字符(U+2225):
\begin{document}
$\parallel$ this works as expected
\begin{minted}{haskell}
regardless which method I use in here I cannot get the paralell symbol to accure...
\end{minted}
\end{document}
我也尝试了 \DeclareUnicodeCharacter 但无法使其工作...有什么建议吗?
答案1
目前还不完全清楚您进行的实验\DeclareUnicodeCharacter
是什么,但以下实验可行pdflatex
:
\documentclass{article}
\DeclareUnicodeCharacter{2225}{$\parallel$}
\usepackage{minted}
\begin{document}
$\parallel$ this works as expected
\begin{minted}{haskell}
parseOr :: Parser Operator
parseOr = Or <$> oneOf "v+∥"
\end{minted}
\end{document}
结果:
当你在字符串外面使用 ∥ 时,minted
它会认为存在语法错误,并在字符周围显示一个红框。你可以在打印符号之前通过转义到 LaTeX 来关闭此功能:
\documentclass{article}
\usepackage{minted}
\DeclareUnicodeCharacter{2225}{$\parallel$}
\begin{document}
$\parallel$ this works as expected
\begin{minted}[escapeinside=\#\#]{haskell}
parseOr :: Parser Operator
parseOr = Or <$> oneOf "v+∥"
doSomething = doFirst #∥# doSecond
\end{minted}
\end{document}
这里的问题是你需要找到一个在代码中没有使用的字符和这是允许的escapeinside
(基本上只有标准 ASCII)。
另一种方法是完全关闭错误框:
\documentclass{article}
\usepackage{minted}
\DeclareUnicodeCharacter{2225}{$\parallel$}
\makeatletter
\AtBeginEnvironment{minted}{\dontdofcolorbox}
\def\dontdofcolorbox{\renewcommand\fcolorbox[4][]{##4}}
\makeatother
\begin{document}
$\parallel$ this works as expected
\begin{minted}{haskell}
parseOr :: Parser Operator
parseOr = Or <$> oneOf "v+∥"
doSomething = doFirst ∥ doSecond
\end{minted}
\end{document}
两种情况的结果:
来源:希腊字母周围铸有红色方框。