lstlist 环境中的天城文字符

lstlist 环境中的天城文字符

我正在使用包listingsutf8在 tex 输出中突出显示 Python 代码。尝试此代码 -

\documentclass{standalone}
%\usepackage{fontspec} % Currently commented as making no change in the output.
%\setmainfont{Sanskrit2003} % Use any Devanagari font here.
\usepackage{listingsutf8}

\begin{document}
    \begin{lstlisting}
        अ=( "अ","आ","इ","ई","उ","ए","ऐ","ओ","औ")
    \end{lstlisting}
\end{document}

即使使用listings结果也不会改变。我尝试使用包添加包含这些字符的字体fontspec。仍然没有得到字符。我该怎么办?


我尝试了 Ulrike Fischer 提供的解决方案。这是新代码。

\documentclass{article}
\usepackage{listings,fontspec}
\setmainfont[Script=Devanagari]{Yashomudra}
\makeatletter
\lst@InputCatcodes
\def\lst@DefEC{%
    \lst@CCECUse \lst@ProcessLetter
    ^^^^0905^^^^0906^^^^0907^^^^0908^^^^0909^^^^090a^^^^090b^^^^090c^^^^090d^^^^090e^^^^090f^^^^0911^^^^0912^^^^0913^^^^0914^^^^0915^^^^0916^^^^0917^^^^0918^^^^0919^^^^0920^^^^0921^^^^0922^^^^0923^^^^0924^^^^0925^^^^0926^^^^0927^^^^0928^^^^0929^^^^0930^^^^0931^^^^0932^^^^0933^^^^0934^^^^0935^^^^0936^^^^0937^^^^0938^^^^0939^^^^091a^^^^091b^^^^091c^^^^091d^^^^091e^^^^091f^^^^092a^^^^092b^^^^092c^^^^092d^^^^092e^^^^092f^^^^093e^^^^093f^^^^0940^^^^0941^^^^0942^^^^0943^^^^0944^^^^0945^^^^0946^^^^0947^^^^0948^^^^0949^^^^094b^^^^094d^^^^094c^^00}
\lst@RestoreCatcodes
\makeatother

\begin{document}
    \begin{lstlisting}[extendedchars=true]
        हा देवनागरी लिपीतील मजकूर आहे
        परंतु ह्यात स्वरांशचिन्हे योग्यरूपात दिसत नाहीत.
    \end{lstlisting}
    हा देवनागरी लिपीतील मजकूर आहे\\
    ह्यात स्वरांशचिन्हे योग्यरूपात दिसत आहेत.
\end{document}

现在我的输出如下所示 -

1

如何解决这个问题?

答案1

listings 逐个处理输入。它无法很好地处理像您这样的需要大量连字的脚本。您可以使用它来改进输出,columns=fullflexible但这也不是完美的。使用 minted 可以获得最佳结果:

\documentclass{article}
\usepackage{listings,fontspec}
\setmainfont[Script=Devanagari]{Noto Sans Devanagari}
\setmonofont[Script=Devanagari]{Noto Sans Devanagari}
\makeatletter
\lst@InputCatcodes
\def\lst@DefEC{%
    \lst@CCECUse \lst@ProcessLetter
    ^^^^0905^^^^0906^^^^0907^^^^0908^^^^0909^^^^090a^^^^090b^^^^090c^^^^090d^^^^090e^^^^090f^^^^0911^^^^0912^^^^0913^^^^0914^^^^0915^^^^0916^^^^0917^^^^0918^^^^0919^^^^0920^^^^0921^^^^0922^^^^0923^^^^0924^^^^0925^^^^0926^^^^0927^^^^0928^^^^0929^^^^0930^^^^0931^^^^0932^^^^0933^^^^0934^^^^0935^^^^0936^^^^0937^^^^0938^^^^0939^^^^091a^^^^091b^^^^091c^^^^091d^^^^091e^^^^091f^^^^092a^^^^092b^^^^092c^^^^092d^^^^092e^^^^092f^^^^093e^^^^093f^^^^0940^^^^0941^^^^0942^^^^0943^^^^0944^^^^0945^^^^0946^^^^0947^^^^0948^^^^0949^^^^094b^^^^094d^^^^094c^^00}
\lst@RestoreCatcodes
\makeatother
\usepackage{minted}
\begin{document}
\begin{lstlisting}[extendedchars=true,columns=fullflexible]
        हा देवनागरी लिपीतील मजकूर आहे
        परंतु ह्यात स्वरांशचिन्हे योग्यरूपात दिसत नाहीत.
\end{lstlisting}


\begin{minted}{latex}
        हा देवनागरी लिपीतील मजकूर आहे
        परंतु ह्यात स्वरांशचिन्हे योग्यरूपात दिसत नाहीत.
\end{minted}

    हा देवनागरी लिपीतील मजकूर आहे\\
    ह्यात स्वरांशचिन्हे योग्यरूपात दिसत आहेत.
\end{document}

输出xelatex --shell-escape file

在此处输入图片描述

相关内容