텍스트나 단락 주위에 텍스트 모양(상자와 같은 직사각형이 아님)으로 프레임을 그리는 LaTeX 패키지가 있습니까?

텍스트나 단락 주위에 텍스트 모양(상자와 같은 직사각형이 아님)으로 프레임을 그리는 LaTeX 패키지가 있습니까?

주어진 시의 의도적인 형태의 경우 텍스트와 선 주위에 프레임을 그릴 수 있다면 확실히 유용할 수 있습니다. 이는 직사각형 형태의 단순한 상자와 유사하지 않고, 선이 쓰여진 형태와 잘 어울린다.

가능한 경우 몇 가지 힌트를 제공해 주시면 감사하겠습니다.

MWE:

\documentclass{report}

\begin{document}
    
\centering
This is\\
an example  \\
how it can be\\
and should\\
appear.

\vspace*{\baselineskip}
Without \\
the lines \\
around it. Can you\\
imagine the\\
lines?

\end{document}

텍스트 주위의 선을 상상해야 합니다. 텍스트 테두리에 가깝게 선을 그리는 방법이나 패키지가 있습니까? Not직사각형 상자!

다음 이미지 파일을 참조하세요. 여기에 이미지 설명을 입력하세요

패키지를 처음 살펴보면 tikz솔루션에 대한 다음 코드 가능성이 제공되었지만 아직 만족스럽지 않은 것 같습니다. 이유: 바깥쪽 줄과 안쪽 텍스트 사이의 구분이 충분하지 않습니다. 시도했지만 inner sep=5mm효과가 없었습니다(아래 코드에는 포함되지 않음).

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
    
\centering
\tikzmark{A} \qquad \tikzmark{N}\\
\tikzmark{B} This is \tikzmark{M}\\
\tikzmark{C} an example \tikzmark{L}    \\
\tikzmark{D} how it can be \tikzmark{K}\\
\tikzmark{E} and should \tikzmark{J}\\
\tikzmark{F} appear. \tikzmark{I}\\
\tikzmark{G} \qquad \tikzmark{H} 

\tikz[remember picture] \draw[overlay,thick,rounded corners=6pt] (pic cs:A) -- (pic cs:B) -- (pic cs:C) -- (pic cs:D) -- (pic cs:E) -- (pic cs:F) -- (pic cs:G) -- (pic cs:H) -- (pic cs:I) -- (pic cs:J) -- (pic cs:K) -- (pic cs:L) -- (pic cs:M) -- (pic cs:N) -- cycle;

\vspace*{\baselineskip}

\tikzmark{a} \qquad \tikzmark{n}\\
\tikzmark{b} Without \tikzmark{m}\\
\tikzmark{c} the lines \tikzmark{l}\\
\tikzmark{d} around it. Can you \tikzmark{k}\\
\tikzmark{e} imagine the \tikzmark{j}\\
\tikzmark{f} lines? \tikzmark{i}\\
\tikzmark{g} \qquad \tikzmark{h}

\tikz[remember picture] \draw[overlay,thick,rounded corners=6pt] (pic cs:a) -- (pic cs:b) -- (pic cs:c) -- (pic cs:d) -- (pic cs:e) -- (pic cs:f) -- (pic cs:g) -- (pic cs:h) -- (pic cs:i) -- (pic cs:j) -- (pic cs:k) -- (pic cs:l) -- (pic cs:m) -- (pic cs:n) -- cycle;

\end{document}

여기에 이미지 설명을 입력하세요

답변1

\draw plot[smooth cycle, thick] coordinates { ... }\tikzmarksa 비트를 위로 이동하면 더 나은 결과를 얻을 수 있습니다 . 당신 과 함께 tension=...재미있고 아마도 예측할 수 없는 효과를 얻을 수도 있습니다.

여기에 이미지 설명을 입력하세요

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\newcommand\ml[3]{% marked line
  \raisebox{0.5ex}[0ex][0ex]{\tikzmark{#1}}\quad
  #2\quad
  \raisebox{0.5ex}[0ex][0ex]{\tikzmark{#3}}%
}
\begin{document}
    
\begin{center}
  \ml A{}N\\
  \ml B{This is}M\\
  \ml C{an example}L\\
  \ml D{how it can be}K\\
  \ml E{and should}J\\
  \ml F{appear.}I\\
  \ml G{}H
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick]
coordinates {(pic cs:A) (pic cs:B) (pic cs:C) (pic cs:D) (pic cs:E)
  (pic cs:F) (pic cs:G) (pic cs:H) (pic cs:I) (pic cs:J) (pic cs:K)
  (pic cs:L) (pic cs:M) (pic cs:N)};

\begin{center}
  \ml a{}n\\
  \ml b{Without}m\\
  \ml c{the lines}l\\
  \ml d{around it. Can you}k\\
  \ml e{imagine the}j\\
  \ml f{lines?}i\\
  \ml g{}h
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick]
coordinates {(pic cs:a) (pic cs:b) (pic cs:c) (pic cs:d) (pic cs:e)
  (pic cs:f) (pic cs:g) (pic cs:h) (pic cs:i) (pic cs:j) (pic cs:k)
  (pic cs:l) (pic cs:m) (pic cs:n)};

\begin{center}
  \ml 1{}{14}\\
  \ml 2{Without}{13}\\
  \ml 3{the lines}{12}\\
  \ml 4{around it. Can you}{11}\\
  \ml 5{imagine the}{10}\\
  \ml 6{lines?}9\\
  \ml 7{}8
\end{center}
\tikz[remember picture,overlay] \draw plot[smooth cycle, thick, tension=3]
coordinates {(pic cs:1) (pic cs:2) (pic cs:3) (pic cs:4) (pic cs:5)
  (pic cs:6) (pic cs:7) (pic cs:8) (pic cs:9) (pic cs:10) (pic cs:11)
  (pic cs:12) (pic cs:13) (pic cs:14)};
\end{document}

관련 정보