如何使圆形文本的特定部分变为斜体并加下划线?

如何使圆形文本的特定部分变为斜体并加下划线?

我画了两个同心圆,并将它们分成三个扇区,每个扇区包含一些文字。如何装饰文字?

\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.text}

\begin{document}
  \begin{tikzpicture}   
    \draw [thick] (0,0) circle (10cm); %outer circle

    \foreach \i/\j in {0/text-1, 120/text-2, 240/text-3}
    {
        \draw [black] (0,0) -- (\i:10cm);
        \draw [black] (0,0) -- (\i+1:10cm);

        \path 
        [
        decorate, 
        decoration={
            text along path, 
            reverse path, 
            text={\j}, 
            text align=center
        }
        ] (\i:10mm) arc (\i:{\i+120}:10mm);
    }

    \draw [thick] (0,0) circle (5cm); %inner most circle

    \foreach \k/\m in {0/Text in Italics: Some text here., 120/Text to be underlined: Some text here too., 240/Text to be underlined and then italicized: Some more text here.} 
    {           
        \path 
        [
        decorate, 
        decoration={
            text along path, 
            reverse path, 
            text={\m}, 
            text align=center
        }
        ] (\k:65mm) arc (\k:{\k+120}:65mm);
    }
\end{tikzpicture}
\end{document}

答案1

这将产生斜体,这很容易:

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{decorations.text}

\begin{document}
\begin{tikzpicture}
  \draw [thick] (0,0) circle (10cm); %outer circle

  \foreach \i/\j in {0/text-1, 120/text-2, 240/text-3}
  {
      \draw [black] (0,0) -- (\i:10cm);
      \draw [black] (0,0) -- (\i+1:10cm);

      \path
      [
      decorate,
      decoration={
          text along path,
          reverse path,
          text={\j},
          text align=center
      }
      ] (\i:10mm) arc (\i:{\i+120}:10mm);
  }

  \draw [thick] (0,0) circle (5cm); %inner most circle

  \foreach \k/\m in {0/|\itshape|Text in Italics||: Some text here., 120/Text to be underlined: Some text here too., 240/Text to be underlined and |\itshape|then italicized||: Some more text here.}
  {
      \path
      [
      decorate,
      decoration={
          text along path,
          reverse path,
          text={\m},
          text align=center
      }
      ] (\k:65mm) arc (\k:{\k+120}:65mm);
  }
\end{tikzpicture}
\end{document}

斜体

为了强调,你必须做出选择。

  1. 选择其他效果而不是下划线,然后按上述步骤操作。简单明了,而且印刷效果也更好。也就是说,它很简单,而且美观性更好。它不符合你的要求,但你不应该给文本添加下划线,这样它就满足了你应该有的要求。遗憾的是,这可能没有多大帮助。

  2. 找出相关点并手动绘制弧线。简单但繁琐。维护棘手。不够优雅。满足要求。

  3. 切换到text effects along path,它允许您将序列中的每个字符作为独立节点处理。功能更强大,但速度很慢。如果您需要在文档中多次执行此操作,则编译时间会有很大差异。另一方面,PGF/TiZ 已经非常慢了,所以编译时间可能不是一个主要问题。

其中,我推荐并首选方案 1。如果不行,则选择方案 3。

答案2

也许有一些更轻松的东西,基于@cfr 解决方案:foreach可以用类似这样的内容替换:

\path
[
decorate,
decoration={text along path,
            raise=.7ex,
            text align={align=left},
            text={Some |\bfseries|Bold|| and \itshape|italics|| text}
           }
] (0:65mm) arc (0:120:65mm);

相关内容