Problem bei der Verwendung des „mdframed-Pakets“ zum Erstellen eines Lemma-Rahmens

Problem bei der Verwendung des „mdframed-Pakets“ zum Erstellen eines Lemma-Rahmens

Ich habe geändert dieLemma-UmgebungProbe imAbonnierenPaket zum Erstellen einesBeispielumgebung. Ich setze in persischer Sprache (die RTL-Richtung hat) mit dem XePersian-Paket. Mein Problem ist, dass der erste Buchstabe des Satzes nicht in der endgültigen kompilierten PDF-Datei erscheint. Beispielsweise beginnt der Satz mit „برای“, aber in der endgültigen Ausgabe erscheint er als „رای“, was im folgenden Foto in einem roten Rechteck dargestellt ist. Ich wäre Ihnen dankbar, wenn Sie mir helfen würden, meinen Fehler zu finden. Der Code, den ich verwende, ist wie folgt:

\documentclass[a4paper,11pt,aleqn]{article}
\usepackage{amsmath, mathtools}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Niloofar}
\setlatintextfont[Scale=1]{XB Niloofar}
\setdigitfont[Scale=0.85]{Yas}


%Lemma
\newcounter{example}[section] \setcounter{example}{0}
\renewcommand{\theexample}{\arabic{example}.\arabic{section}}
\newenvironment{example}[2][]{%
    \refstepcounter{example}%
    \ifstrempty{#1}%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0pt]
                \node[anchor=east,rectangle,fill=red!20]
                {\strut \theexample~{مثال}};}}
    }%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0pt]
                \node[anchor=east,rectangle,fill=blue!20]
                {\strut 
                    ~#1
                    :\theexample
                    ~مثال
                };}}%
    }%
    \mdfsetup{innertopmargin=5pt,roundcorner=10pt,backgroundcolor=gray!10,linecolor=green!20,linewidth=2pt,topline=true,        frametitleaboveskip=\dimexpr-\ht\strutbox\relax
    }
    \begin{mdframed}[]\relax%
        \label{#2}}{\end{mdframed}}


\title{\textbf{روش‌های جبران‌سازی}}
\date{}
\author{نویسنده }


\begin{document}
\maketitle

    
    
\section{تبدیلات ریاضی
        }
    تبدیل فوریه یک تبدیل از زمان به فرکانس است.
\begin{example}[فوریه]
برای محاسبه تبدیل فوریه  .....

\end{example}

\end{document}

Beispielfoto der Ausgabe

Antwort1

Ich denke, die unerwünschte Ausgabe liegt daran, dass Sie in Ihrer exampleUmgebung zwei Argumente haben und nur ein Argument eingegeben haben und das System den ersten Buchstaben Ihres Textes automatisch als zweites Argument auswählt. Weitere Einzelheiten finden Sie unterdieser Stackoverflow-Beitrag.

Auf jeden Fall sollten Sie Ihre neue Umgebung wie folgt verwenden:

\begin{example}[فوریه]{second rags} %it is not optional and it is a label for this env.
برای محاسبه تبدیل فوریه  .....

\end{example}

und Sie können in Ihrem Text mit auf dieses Beispiel verweisen \ref{second arg}. Sie können dieses zweite Argument entfernen, indem Sie es wie folgt ändern:

\newenvironment{example}[1][]{%
    \refstepcounter{example}%
    \ifstrempty{#1}%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0pt]
                \node[anchor=east,rectangle,fill=red!20]
                {\strut \theexample~{مثال}};}}
    }%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0pt]
                \node[anchor=east,rectangle,fill=blue!20]
                {\strut 
                    ~#1
                    :\theexample
                    ~مثال
                };}}%
    }%
    \mdfsetup{innertopmargin=5pt,roundcorner=10pt,backgroundcolor=gray!10,linecolor=green!20,linewidth=2pt,topline=true,        frametitleaboveskip=\dimexpr-\ht\strutbox\relax
    }
    \begin{mdframed}[]\relax%
        }{\end{mdframed}}

verwandte Informationen