句子注释

句子注释

我有这样一个句子“पठ् + अ + ति”,我想添加一些注释,如附图所示。有没有这样的软件包,或者我需要使用 Tikz。

任何参考资料或帮助都将不胜感激。

在此处输入图片描述

============根据 Gonzolo 给出的解决方案编辑问题 ============ 这是 MWE 和我得到的输出。

\documentclass{article}
\usepackage{fontspec,xltxtra,xunicode}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts}
\setmainfont[Script=Devanagari,AutoFakeBold=3.5]{Sanskrit 2003}
\definecolor{myblue}{RGB}{122,175,234}

\newcommand\tikzmark[1]{%
  \tikz[remember picture,overlay]\node (#1) {};}
\newcommand\MyNote[3][]{%
\begin{tikzpicture}[remember picture,overlay]
\node[rectangle callout, fill=myblue,text width=2cm,align=center,font=\sffamily\bfseries\color{white},#1] at #2 {#3}; 
\end{tikzpicture}%
}

\begin{document}

पठ् \tikzmark{a}\qquad + अ + \tikzmark{b} ति ।

\MyNote[callout relative pointer={(0,1)}]{([yshift=-1.5cm]a)}{क्रिया को धारण करता है वह धातु है ।}
\MyNote[callout relative pointer={(0,1)}]{([yshift=-1.5cm]b)}{"अ \& ति" का कर्ता अर्थ को कह रहा है}

\end{document}

上述 MWE 的输出

答案1

您可以使用shapes.calloutsTikZ 中的库:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts}

\definecolor{myblue}{RGB}{122,175,234}

\newcommand\tikzmark[1]{%
  \tikz[remember picture,overlay]\node (#1) {};}
\newcommand\MyNote[3][]{%
\begin{tikzpicture}[remember picture,overlay]
\node[rectangle callout, fill=myblue,text width=2cm,align=center,font=\sffamily\bfseries\color{white},#1] at #2 {#3}; 
\end{tikzpicture}%
}

\begin{document}

Some \tikzmark{a}text\qquad Some other\tikzmark{b} text

\MyNote[callout relative pointer={(0,1)}]{([yshift=-1.5cm]a)}{some note for the first text}
\MyNote[callout relative pointer={(0,1)}]{([yshift=-1.5cm]b)}{some note for the second text}

\end{document}

在此处输入图片描述

有关详细信息,请参阅第节48.7 标注形状在 PGF 手册中。

对于Sanskrit 2003使用的字体,必须从字体属性中删除 \sffamily:

\documentclass{article}
\usepackage{fontspec,xunicode}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts}
\setmainfont[Script=Devanagari,AutoFakeBold=3.5]{Sanskrit 2003}
\definecolor{myblue}{RGB}{122,175,234}

\newcommand\tikzmark[1]{%
  \tikz[remember picture,overlay]\node (#1) {};}
\newcommand\MyNote[3][]{%
\begin{tikzpicture}[remember picture,overlay]
\node[rectangle callout, fill=myblue,text width=2cm,align=center,font=\color{white},#1] at #2 {#3}; 
\end{tikzpicture}%
}

\begin{document}

पठ् \tikzmark{a}\qquad + अ + \tikzmark{b} ति ।

\MyNote[callout relative pointer={(0.6,1)}]{([yshift=-1.65cm,xshift=-1cm]a)}{क्रिया को धारण करता है वह धातु है ।}
\MyNote[callout relative pointer={(-0.5,1)}]{([yshift=-1.65cm,xshift=0.65cm]b)}{"अ \& ति" का कर्ता अर्थ को कह रहा है}

\end{document}

在此处输入图片描述

答案2

您可以使用 TikZ 和库中的标注形状很好地完成此操作shapes.callouts

使用选项将注释设置为标签overlay,这样它们就不会影响 TikZ 图片的大小(我们不希望它比标记的文本大)。为了校正垂直尺寸,

\path[draw=none] ([email protected]) -- ([email protected]);

被添加,否则它将在下一行或上一行突出。

我不会在运行的文本中使用它,而是把它放在浮点数中或至少放在环境中center

标注指针的底部与标记文本一样宽(此处issentence)。

指针指向标记文本边框上的最近点,这是通过巧妙的线实现的

tikz@label@post/.append style={/pgf/callout absolute pointer=\tikz@node@at},

这确保\tikz@node@at在实际计算之后对其进行评估。

代码

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.callouts}
\makeatletter
\tikzset{
  Text/.style={
    shape=rectangle,
    anchor=base,
    inner xsep=+0pt,
    outer xsep=+0pt,
    outer ysep=+0pt,
    label={[%
      shape=rectangle callout,
      /utils/exec={%
        \pgfpointdiff
          {\pgfpointanchor{\tikzlastnode}{west}}
          {\pgfpointanchor{\tikzlastnode}{east}}},
      callout pointer width/.expanded=\the\pgf@x,
      tikz@label@post/.append style={/pgf/callout absolute pointer=\tikz@node@at},
      alias=tikz@callout]#1}
  },
  label position=below,
  label distance=2ex,
  every label/.style={draw,overlay},
  labels/.style={every label/.append style={#1}}
}
\makeatother
\newcommand*{\myNote}[3][]{%
  \tikz[baseline,#1]{
    \node[Text={#3}] {#2};
    \path[draw=none] ([email protected]) -- ([email protected]);
  }%
}
\begin{document}
  This \myNote{is}{This is a verb.} a \myNote[label position=above]{sentence}{This is another word.}.
\end{document}

输出

在此处输入图片描述

相关内容