
Я измениллемма окружениеобразец внутриmdframedпакет для созданияпример среды. Я набираю текст на персидском языке (с направлением письма справа налево) с помощью пакета XePersian. Проблема в том, что первая буква предложения не отображается в окончательном скомпилированном PDF-файле. Например, предложение начинается с "برای", но в окончательном выводе оно отображается как "رای", что показано в красном прямоугольнике на следующей фотографии. Буду признателен, если вы поможете мне найти мою ошибку. Код, который я использую, следующий:
\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}
решение1
Я думаю, что нежелательный вывод происходит из-за того, что у вас в example
среде два аргумента, а вы ввели только один аргумент, и система автоматически выбирает первую букву вашего текста в качестве второго аргумента. Для получения более подробной информации читайтеэтот пост на stackoverflow.
В любом случае, вам следует использовать вашу новую среду следующим образом:
\begin{example}[فوریه]{second rags} %it is not optional and it is a label for this env.
برای محاسبه تبدیل فوریه .....
\end{example}
и вы можете ссылаться в тексте на этот пример с помощью \ref{second arg}
. Вы можете удалить этот второй аргумент, изменив его следующим образом:
\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}}