이 질문은 새 패키지로 이어졌습니다.
circledsteps
간단한 명령을 사용하여 원 안에 멋진 숫자를 만들려고합니다.
\textcircled{1}
그러나 원이 숫자와 수직으로 잘못 정렬되어 약간 엉성해 보입니다.
수직 정렬을 조정하여 숫자가 원의 중앙에 더 잘 보이도록 조정합니까? 아니면 옵션이 아닌 경우 동일한 결과를 얻을 수있는 다른 방법은 무엇입니까?
그것만 사용합니다. 숫자 및 극소수의 위치에서 글리프 당 수동 조정이 옵션입니다.
중요한 경우 Computer Modern에서 pdfLaTeX
를 사용합니다.
댓글
Answer
TikZ 솔루션 :
\documentclass{article} \usepackage{tikz} \newcommand*\circled[1]{\tikz[baseline=(char.base)]{ \node[shape=circle,draw,inner sep=2pt] (char) {#1};}} \begin{document} Numbers aligned with the text: \circled{1} \circled{2} \circled{3} end. \end{document}
단지 노드입니다. TikZ 옵션은 기준선을 정렬하고 크기를 조정하며 원 모양을 얻는 데 사용됩니다. 크기 또는 원 두께와 관련된 추가 옵션을 자유롭게 선택할 수 있습니다 (옵션 thick
). 더 많은 옵션이 있습니다. 예를 들어 화살표로 노드를 연결하는 다른 인수로 노드 이름을 지정할 수도 있습니다. 나중에.
예를 들어 열거 된 목록에 사용하려는 경우 “쉽지만 보호해야합니다.
\usepackage{enumitem} ... \begin{enumerate}[label=\protect\circled{\arabic*}] \item First item \item Second item \item Third item \item Fourth item \end{enumerate}
댓글
- 달콤한 예! TikZ 예제는 인라인으로되어 있지만 이제는
baseline=(char.base)
로 해결됩니다. 멋집니다. - @Stefan : 아마도
\newcommand
by\DeclareRobustCommand
, 예를 들어\protect
는 더 이상 필요하지 않아 사용자 친화적입니다. - 그런 다음 \ newcommand를 사용하여 빈 명령을 선언 한 다음 \ DeclareRobustCommand를 사용해야합니다. 이렇게하면 기존 명령에서 오류가 발생합니다.
- @LuisFelipeVillavicencioLopez 물론입니다! 코드 토론에는 적합하지 않습니다. 새 질문을 게시하거나 내가 매일 게시하는 LaTeX 커뮤니티 에서 ‘ 이야기를 나눌 수 있습니다.
- 좋지만 문제는 ‘
\tikzpicture
내부에서 사용할 수 없다는 것입니다. — 예 : 노드 텍스트 또는 레이블. ” 범용 ” 원으로 표시된 멋진 숫자에 대한 해결책이 있습니까? 참조는 tex.stackexchange.com/questions/496348/ …
을 참조하세요.
답변
얼마나 많은 사람들이 시도해보기로 결정했는지 놀랐고 흥미로운 해결책이 많이 나왔습니다. 전통에 따라이 답변은 커뮤니티 위키가되며 제안 된 모든 솔루션을 요약하고 비교합니다.
여기서는 각각 1부터 5까지 등급이 매겨진 세 가지 평가 기준을 제안합니다.
- 단순성 . 제안 된 솔루션을 사용하는 것이 얼마나 쉬운 지 측정합니다. 추가 패키지를 사용하거나 간단한 편의 매크로 이외의 항목을 정의 할 때 차감되는 포인트입니다.
- 유연성 . 여기에는 주로 다른 컨텍스트 (이 경우 다양한 프레임 모양, 크기 및 두께)에서이를 사용하는 것이 얼마나 쉬운 지 포함됩니다.
- 정확도 . 간단히 말해, 솔루션이 미적으로 얼마나 만족스러워 보이는지, 특히 글리프가 원의 중앙에 얼마나 잘 맞는지, 그리고 주변의 자유 실행 텍스트에 얼마나 잘 맞는지.
여기 있습니다.
-
raisebox
솔루션.빠른 손가락에 대한 Jimi Oke 에게 감사드립니다. 이것은 처음에 왔으며 내가 염두에 둔 응용 프로그램에서 특히 좋아하는 것입니다. 다음과 같이 간단합니다.
\raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {8}}}
그 이상은 없습니다. 단순성면에서 이보다 더 나아지지는 않습니다.솔리드 5/5 , 추가 패키지가 필요하지 않고 다루기 힘든 정의를 한 줄로 간단하게 추상화 할 수 있습니다.
\def
.유연한 측면에서이 솔루션은 원 크기 나 매개 변수를 제어 할 수 없기 때문에 매우 낮습니다 (일부 TeX 해커는 내가 틀렸다는 것을 증명하되, $ DEITY 의 사랑을 위해 그러한 혐오감을 아끼지 마십시오). 2/5 는 여기에 적합합니다. {1}
정확도 문제는 항상 주관적이지만 서체에 딱 맞는 ™을 얻으려면 수직 거리를 조정해야합니다. 선택했습니다. 2/5 .
-
ding
-y 솔루션.TH. 에서 왔으며 미리 정의 된 기호 글리프 사용을 제안합니다. 전지적 기호 -a4 문서에 따르면 The One True Way to do it is to use :
\usepackage{pifont} \ding{172}--\ding{181} % seriffed fonts \ding{192}--\ding{201} % sans-seriffed fonts
또는 심지어 Go 보드 명명법 :
\usepackage{igo} \whitestone{1}--\whitestone{99}
단순성 측면에서이 비율은 4.5 / 5 입니다. 추가 패키지가 포함되어 있기 때문에 5 단계를주기를 꺼려합니다.
전혀 유연하지 않습니다. 글리프가 마음에 들지 않으면 스스로 할 수 있습니다. 1/5 .
글리프 자체는 예상대로 잘 디자인되어 있으며 숫자는 다음과 같습니다. 원과 시각적으로 잘 정렬됩니다. 고유 한 스타일의 서체가있는 경우 숫자 글꼴이 텍스트와 잘 맞지 않을 수 있습니다.
-
의무적 인
tikz
솔루션입니다.아, 항상 그렇습니다. 이것은 Stefan Kottwitz 때문입니다.
\usepackage{tikz} \newcommand*\circled[1]{\tikz[baseline=(char.base)]{ \node[shape=circle,draw,inner sep=2pt] (char) {#1};}} \begin{document} Numbers aligned with the text: \circled{1} \circled{2} \circled{3} end. \end{document}
개인적으로 저는
tikz
에 관심이 없습니다. , 나는 요즘에 그것을 배워야한다) 그래서 이것과 함께가는 것은 나를 위해 패키지의 일회성 사용이 될 것이다. 나는 피하고 싶다. 여기서는 2/5 이상을 줄 수 없지만tikz
fanboiz (및 galz!)는이를 4/5 까지 늘려야합니다.유연성에 관한 한 : 이것은 실제 거래입니다. Stefan은 모든 것의 열거 된 목록과 함께 원으로 표시된 기호를 사용하는 방법까지도 시연했습니다. 글리프 주위에 다양한 정도의 맞춤을 통해 다양한 프레임 모양이 확실히 가능합니다. 논쟁의 여지가없는 5/5 .
기준 정렬은 몇 가지 수동 조정 없이도 최고 수준입니다. 이는 매우 좋습니다. 기호 주위의 간격은 괜찮아 보이지만 자유 실행 텍스트에서는 원이 숫자 주위에 더 꽉 맞아야합니다. 이는
inner sep
매개 변수를 사용하여 얻을 수 있습니다. 명령 정의. 5/5 여기 -
pict2e
/picture
솔루션Herbert의 최근 추가 사항 Proposes는
picture
및pict2e
패키지의 몇 가지 기본 프리미티브를 사용합니다. 다음은 다음과 같습니다.\usepackage{pict2e,picture} \newsavebox\CBox \newlength\CLength \def\Circled#1{\sbox\CBox{#1}% \ifdim\wd\CBox>\ht\CBox \CLength=\wd\CBox\else\CLength=\ht\CBox\fi \makebox[1.5\CLength]{\makebox(0,1.5\CLength){\put(0,0){\circle{1.5\CLength}}}% \makebox(0,1.5\CLength){\put(-.5\wd\CBox,0){#1}}}}
단순성 측면에서는 평가가 너무 좋지 않습니다. 연구 한 후에는 확실히 이해할 수 있지만 약간 복잡해 보입니다. 두 개의 추가 패키지입니다. 2/5 는 여기서 합리적인 점수입니다.
유연성은 그다지 구축되지 않았습니다. in,하지만 확실히 가능합니다. 원 반경은
1.5
요소를 수정하여 조정할 수 있으며 기준 조정을 재생할 수 있습니다. 3.5 / 5 .이 정의에서 볼 수 있듯이 주변 텍스트의 기준선은 원으로 정렬되는 대신 원에 접합니다. 숫자 기반입니다. 일부 상황에서는 바람직 할 수 있지만 이러한 방식으로 숫자가 제자리를 벗어난 것처럼 보입니다. 상자를 배치 할 때 몇 가지 추가 계산과 3.5 / 5 는 여기에 reflec에 제공됩니다. 이 잠재력.
-
다른 필수
tikz
솔루션Matthew Leingang 그리고 morbusg 가이 작업에 손을 댔습니다. 그들의 노력은 확실히 감사하지만 Stefan의 해결책이 더 간단하다고 생각합니다. 노력 (그리고 겸손 함)에 감사 드리며 두 답변을 모두 찬성했습니다.
최종 점수 :
- 단순성 :
raisebox
- 유연성 :
tikz
- 정확도 :
tikz
및ding
전체 : tikz
, 주저없이 ( 대중의 환호, 던진 모자, 손수건 등).
마지막으로 테스트 코드 :
\documentclass{article} \usepackage{pict2e,picture} % picture \usepackage{tikz} % tikz \usepackage{pifont} % ding % Picture solution \newsavebox\CBox \newlength\CLength \def\numcircledpict#1{\sbox\CBox{#1}% \ifdim\wd\CBox>\ht\CBox \CLength=\wd\CBox\else\CLength=\ht\CBox\fi \makebox[1.5\CLength]{\makebox(0,1.5\CLength){\put(0,0){\circle{1.5\CLength}}}% \makebox(0,1.5\CLength){\put(-.5\wd\CBox,0){#1}}}} % TikZ solution \newcommand*\numcircledtikz[1]{\tikz[baseline=(char.base)]{ \node[shape=circle,draw,inner sep=1.2pt] (char) {#1};}} % Modified \textcircled solution \newcommand*\numcircledmod[1]{\raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {#1}}}} \begin{document} \begin{tabular}{l|l} Original & Lorem \textcircled{1} ipsum \textcircled{2} dolor \\ Modified & Lorem \numcircledmod{1} ipsum \numcircledmod{2} dolor\\ TikZ & Lorem \numcircledtikz{1} ipsum \numcircledtikz{2} dolor\\ Picture & Lorem \numcircledpict{1} ipsum \numcircledpict{2} dolor\\ Ding serif & Lorem \ding{172} ipsum \ding{173} dolor\\ Ding sans & Lorem \ding{192} ipsum \ding{193} dolor\\ \end{tabular} \end{document}
{1} 누군가 그러한 일을 작성하기로 하는 경우 알려 주시면 추가 비용없이이 답변에 포함하겠습니다. 그러나 이후에 해당 게시물이 는 희미한 마음을 보호합니다.
댓글
- 훌륭한 요약입니다. 이와 같은 게시물은이 사이트를 가치있게 만듭니다.
- @Yiannis It ‘ 질문을 게시 한 지 얼마되지 않았지만 지금은 다듬을 시간을 찾았습니다. 요약. 같은 문제를 가진 사람들에게 도움이 되길 바랍니다.
- ” 자유로 실행되는 경우에도 기호 주변의 간격은 괜찮아 보입니다. 텍스트 원은 숫자 주변에 더 꽉 끼는 것이 좋습니다. “이 문제는
inner sep=2pt
를\circled
명령 정의에 있습니다. - @Matt : 물론입니다. 여기서 제 의도는 미적 문제를 지적하는 것이었지만 나는 ‘ 그것에 대해 명확하지 않았습니다. 변경해야 할 사항에 대한 정보가 이제 게시물에 언급되었습니다. 감사합니다.
- @MartinTapankov 모든 호출이 \ protect로 시작되면 raisebox로 문제가 해결됩니다.
Answer
가장 빠른 해결 방법은 \raisebox
명령을 사용하는 것입니다. 나는 약간 놀았는데, 텍스트를 0.9pt 낮추면 수치가 대략 중앙에있는 것 같습니다.
\textcircled{\raisebox{-0.9pt}{8}}
놀 수 있습니다. 그것으로 절대 중심을 얻지 만 확실히 0.9에서 1pt 사이입니다. 여기 에서 아이디어를 얻었습니다. \textcircled
명령이 텍스트에 가장 잘 작동하는 것 같습니다! 하지만 어쨌든 이렇게하면 문제가 해결 될 것입니다.
댓글
- ‘가 변경 될 것입니다. 바람직하지 않을 수있는 숫자의 기준선. 그러나 아마도 바깥 쪽
\raisebox
로 전체 원 숫자를 올리면 기준선을 유지할 수 있습니다. - Mais oui! 나는 이것을 스스로 생각 했어야했다. 감사! ‘이 항목을 수락 한 것으로 표시하기 전에 몇 가지 제안을 더 기다릴 것입니다.
- @TH. 사실이지만 ‘ 나에게 중요하지 않습니다. 숫자는 자유 실행 텍스트에 표시되지 않고 표 열의 헤더이거나 레이블 지정에 사용됩니다.
- 그러나 실제로
\textcircled
출력에는 이미\raisebox
가 있거나없는 더 낮은 기준선이 있습니다. 따라서 저자가 모든 플러시를 선호하는 경우pifont
로 이동해야합니다. 바깥 쪽\raisebox
의 경우 최대 값은 0.5pt 인상으로 원을 원래 위치로 되돌 리지만 텍스트와 같은 높이가 아닙니다. 0.5pt 이상으로 모든 것을 올리면 원이 아닌 숫자가 이동하기 시작하여 초기 노력이 무효화됩니다. 따라서 저자가 좋은\textcircled
를 원한다면 여기 ‘ 1 :\raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {8}} }
. 이것은 실제로 꽤 좋습니다. - @Martin : TikZ 제안을받을 수도 있습니다. 😉
답변
이미 언급 된 Morbusg 일부 글꼴은 숫자를 유니 코드 글리프 로 둘러싸고 직접 삽입하는 방법을 보여줍니다. 일부 글꼴은 숫자에 액세스하기 위해 보다 사용자 친화적 인 인터페이스 를 제공합니다 (예 : Linux Libertine 및 Junicode. 이는 당연히 Computer Modern을 사용하기위한 귀하의 요구 사항에서 벗어남을 의미합니다. 이러한 유니 코드 숫자의 장점은 아마도 글꼴 디자이너가 만들었 기 때문에 미세 조정할 필요가 없다는 것입니다.
여기에 간단한 개념 증명이 있습니다. junicode
패키지 설치) :
\documentclass{article} \usepackage{fontspec} \usepackage{libertine} \begin{document} \libertineGlyph{uni2460} \libertineGlyph{uni24F5} \libertineGlyph{uni2776} {\fontspec[Ligatures=Discretionary]{Junicode}[1] [[1]] <1>} \end{document}
이러한 방법은 각 문서에 설명되어 있습니다.
다음은 이러한 숫자 집합에 액세스하는 훨씬 더 편리한 방법입니다. 이중 원으로 표시된 숫자는 (유니 코드 당) 1에서 10까지, 나머지는 0에서 20까지입니다.
\documentclass{article} \usepackage{fontspec} \usepackage{libertine} \usepackage{pgf} % for the calculation % \libcirc and \libcircblk display their "0" if the parameter is out of range \newcommand{\libcirc}[1]{\pgfmathparse{ ifthenelse(#1 > 0 && #1 < 21, Hex(9311+#1), Hex(9450) }\libertineGlyph{uni\pgfmathresult}} \newcommand{\libcircdbl}[1]{\pgfmathparse{Hex(9460+#1)}\libertineGlyph{uni\pgfmathresult}} \newcommand{\libcircblk}[1]{\pgfmathparse{ ifthenelse(#1 > 0 && #1 < 11, Hex(10101+#1), ifthenelse(#1 > 10 && #1 < 21, Hex(9450-10+#1), Hex(9471) ) ) }\libertineGlyph{uni\pgfmathresult}} \newcommand{\juncirc}[1]{{\fontspec[Ligatures=Discretionary]{Junicode}[#1]}} \newcommand{\juncircdbl}[1]{{\fontspec[Ligatures=Discretionary]{Junicode}[[#1]]}} \newcommand{\juncircblk}[1]{{\fontspec[Ligatures=Discretionary]{Junicode}<#1>}} \usepackage{pgffor} % just for the demo loop \setlength{\parindent}{0pt} % just for the demo \begin{document} \section{Linux Libertine} \foreach \x in {0,...,20} {\libcirc{\x} } \foreach \x in {1,...,10} {\libcircdbl{\x} } \foreach \x in {0,...,20} {\libcircblk{\x} } \section{\fontspec{Junicode}Junicode} \foreach \x in {0,...,20} {\juncirc{\x} } \foreach \x in {1,...,10} {\juncircdbl{\x} } \foreach \x in {0,...,20} {\juncircblk{\x} } \end{document}
댓글
-
pdflatex
에서는 작동하지 않는 것 같습니다. - @moose 예 .. 첫 번째 코드 비트가 현재와 작동하는지 확인해야합니다.
libertine
전혀 (하지만 pdfLaTeX는 괜찮을 것입니다), 두 번째 비트는 XeLaTeX / LuaLaTeX뿐입니다. 답도 입력해야합니다.
답변
PGF는이 애플리케이션 하나에 과도하지만 이미로드 한 경우 사용할 수 있습니다.
\documentclass{article} \usepackage{tikz} \newcommand{\pgftextcircled}[1]{ \setbox0=\hbox{#1}% \dimen0\wd0% \divide\dimen0 by 2% \begin{tikzpicture}[baseline=(a.base)]% \useasboundingbox (-\the\dimen0,0pt) rectangle (\the\dimen0,1pt); \node[circle,draw,outer sep=0pt,inner sep=0.1ex] (a) {#1}; \end{tikzpicture} } \newcommand{\pangram}{\noindent{The \textcircled{0} quick \textcircled{1} brown \textcircled{2} fox \textcircled{3} jumps \textcircled{4} over \textcircled{5} the \textcircled{6} lazy \textcircled{7} dog.} } \begin{document} \begin{minipage}{0.5\textwidth} \pangram \bigskip \let\textcircled=\pgftextcircled \pangram \end{minipage} \end{document}
보시다시피 원 주변에 \textcircled
하지만 나쁘지 않습니다.
사전 편집 : Stefan과 morbusg가 저를 이겼습니다. 오, 좋습니다.
댓글
- LaTeX 내부에서 수행 할 수있는 작업에 외부 프로세스가 과도하다고 생각합니다. \ newcommand {\ Ring} [1] {\ raisebox {-1pt} {\ begin {tabular} {@ {} c @ {}} {\ small # 1} \ [ -11.5pt] \ BigCircle \ end {tabular}}} 크기 자동 조정은 독자에게 연습으로 남겨집니다. 🙂
- Peter, 어떤 외부 프로세스입니까?
- @ u0b34a0f6ae : Peter가
tikz
는 TeX가 입력을 처리 한 후 추가 된 여러\special
명령을 사용합니다. 따라서 ‘ 일반 TeX 분해 시스템의 “외부”입니다.
답변
symbols.pdf에서 pifont
는 \ding{172}
에서 또는 \ding{192}
~ \ding{201}
.
또는 igo
패키지는 \whitestone{1}
에서 \whitestone{99}
까지이지만 Go 보드를 조판하기위한 것입니다.
해결책을 찾은 것 같지만 “간단한 비교입니다.
\documentclass{article} \usepackage{pifont} \def\X#1{% #1% \textcircled{#1}% \raisebox{.9pt}{\textcircled{\raisebox{-.9pt}{#1}}}% \ding{\numexpr171+#1\relax}% } \begin{document} \X0\X1\X2\X3\X4\X5\X6\X7\X8\X9 \end{document}
댓글
- 이것은 훌륭한 솔루션입니다. 그러나 pifont는
\textcircled
출력에 비해 다소 찌그러집니다. 하지만 전문가는 pifonts가 텍스트와 플러시되어 작성자에게 좋은 일이 될 수 있다는 점입니다. - @TH : 좋습니다. textcomp 패키지의 기능은 무엇입니까?
- @Jimi :
\textcircled
에 필요하다고 생각했습니다. 나는 틀렸다. (Symbols.pdf의 표 17을 살펴 보았는데\newtie
에textcomp
가 필요하지만 ‘ 충분히주의 깊게 읽지 않았습니다.) ‘ 코드를 업데이트했습니다. - @PatrickT 이미지 주셔서 감사합니다. ‘ 좋은 추가 기능입니다.
답변
mathdesign
패키지는 iv보다 숫자 간격이 더 좋은 \figurecircled
를 정의합니다. id = “d10156c98e”>
그렇습니다.
mathdesign 패키지는 amsfonts
및 amssymb
와 호환되지 않습니다. 하지만 “어쨌든 mathdesign 글꼴을 사용하는 경우에는 문제가되지 않습니다.
댓글
- 이 답변이 거부 되었습니까? 누가 이것이 문제에 대한 잘못된 해결책이라고 생각하는지 설명 할 수 있습니까?
- 나는 ‘ 당신을 비하하지 않았지만 간단한 오류가 발생했습니다. 테스트 파일. MWE를 제공 할 수 있습니까? 내 오류 메시지 :
! TeX capacity exceeded, sorry [input stack size=5000]. \figurecircled ->\MDB-cmd \figurecircled \MDB\figurecircled l.14 ...footnote{of the emergency} $\figurecircled {1}$ ! ==> Fatal error occurred, no output PDF file produced!
Answer
@Stefan ” s 답변은 좋지만 답변을 개선했습니다.
먼저 \circled{1}
와 \circled{10}
가 함께 배치되면 , 두 원의 크기가 동일하지 않으므로 \circled
명령에 선택적 매개 변수를 추가했습니다. 선택적 매개 변수는 이러한 원이 표시되도록 자리 표시 자로 재조정되었습니다. 동일한 크기.
또한, 패키지 etoolbox
에서 제공하는 \ifblank
를 사용했기 때문에 선택적 매개 변수가 제공되었는지 확인했습니다. 명령을 강력하게 만들기 위해 \robustify
를 사용했습니다. 이것은 @Stefan이 답변에 대해 언급 한 \DeclearRobustCommand
사용의 단점을 우회했습니다. 따라서 \protact
는 더 이상 필요하지 않습니다.
코드 :
\documentclass{article} \usepackage{enumitem} \usepackage{tikz} \usepackage{etoolbox} \newcommand{\circled}[2][]{% \tikz[baseline=(char.base)]{% \node[shape = circle, draw, inner sep = 1pt] (char) {\phantom{\ifblank{#1}{#2}{#1}}};% \node at (char.center) {\makebox[0pt][c]{#2}};}} \robustify{\circled} \begin{document} \mbox{}\rlap{\rule{.7\linewidth}{.4pt}}% The original version: \circled{1} and \circled{10}. \mbox{}\rlap{\rule{.7\linewidth}{.4pt}}% The improved version: \circled[10]{1} and \circled[10]{10}. \newcommand{\dcircled}[1]{\circled[00]{#1}} \begin{enumerate}[label=\dcircled{\arabic*}, noitemsep] \item I \item am \item happy \item to \item join \item with \item you \item today \item in \item what \item will \item go \item down \item in \item history \item as \item the \item greatest \item demonstration \item for \item freedom \item in \item the \item history \item of \item our \item nation. \end{enumerate} \end{document}
결과 :
댓글
- 노드 용
minimum size
옵션을 알고 있습니까? - @percusse 죄송합니다. ‘ 당신을 이해하지 못합니다.
- 상자 나 팬텀이없는 원형 노드의 최소 크기를 균일 한 크기로 정의 할 수 있습니다.
- @percusse ‘ 좋은 제안입니다. 하지만 ‘ 내 게시물의 아이디어를 이해하지 못했다고 생각합니다. 이 선택적 매개 변수는 원의 크기를 균일하게하기 위해 설계되었습니다. 서로 정렬 된 서로 다른 크기의 원은 비우호적으로 보이기 때문입니다.
Answer
더 쉬움 :
\textcircled{\small{2}}
또는
{\large \textcircled{\small 2}}
또는
{\Large \textcircled{\normalsize 2}}
[ed. Segletes, MWE & 이미지]
\documentclass{article} \usepackage{enumitem} \begin{document} \begin{enumerate}[label=\large\protect\textcircled{\small\arabic*}] \item First item \item Second item \item Third item \item Fourth item \end{enumerate} \textcircled{\small{2}} or {\large \textcircled{\small 2}} or {\Large \textcircled{\normalsize 2}} \end{document}
댓글
- 이 원이 텍스트로 둘러싸여 있지 않고 숫자의 글꼴 크기가 문제가되지 않는 경우 작동 할 수 있지만 ‘ 차라리 다른 솔루션 중 하나를 사용하고 싶습니다. 대신.
- 원 안의 색상을 반전시킬 수 있습니까?
답변
이 CTAN의 패키지에서 답변이 변환되었습니다. https://ctan.org/pkg/circledsteps
여기에있는 답변은 모두 좋습니다. 특히 tikz
는 크게 구성 할 수 있습니다. 하지만 문제가 있습니다. “다른 tikzpicture
내부에서 안전하게 사용할 수 없습니다. 그래서 몇 가지를 병합하여 구현했습니다.
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{tikz} \makeatletter % Based on https://tex.stackexchange.com/questions/7032/good-way-to-make-textcircled-numbers % \usepackage{pict2e,picture} \pgfkeys{/csteps/inner ysep/.initial=4pt, /csteps/inner xsep/.initial=4pt, /csteps/inner color/.initial=red, /csteps/outer color/.initial=blue, } \newsavebox\csteps@CBox \newlength\csteps@XLength \newlength\csteps@YLength \newlength\csteps@YDepth \newlength\csteps@tmplen \def\csteps@CircledParam#1#2{\sbox\csteps@CBox{#2}% \csteps@XLength=\wd\csteps@CBox\advance\csteps@XLength by\pgfkeysvalueof{/csteps/inner xsep}\relax \csteps@tmplen=\pgfkeysvalueof{/csteps/inner ysep}\relax \csteps@YDepth=\dp\csteps@CBox\advance\csteps@YDepth by 0.5\csteps@tmplen\relax \csteps@YLength=\ht\csteps@CBox\advance\csteps@YLength by\dp\csteps@CBox\advance\csteps@YLength by\pgfkeysvalueof{/csteps/inner ysep}\relax \typeout{DBG:#2\space X\space\the\csteps@XLength\space Y:\the\csteps@YLength\space D:\the\csteps@YDepth}% \raisebox{-#1\csteps@YDepth}{% \ifdim\csteps@XLength>\csteps@YLength \makebox[\csteps@XLength]{% X bigger than Y \makebox(0,\csteps@YLength){% \color{\pgfkeysvalueof{/csteps/outer color}}\put(0,0){\oval(\csteps@XLength,\csteps@YLength)}% }% \makebox(0,\csteps@YLength){% \put(-.5\wd\csteps@CBox,0){\textcolor{\pgfkeysvalueof{/csteps/inner color}}{#2}}% }}% \else \makebox[\csteps@YLength]{% \makebox(0,\csteps@YLength){% \color{\pgfkeysvalueof{/csteps/outer color}}\put(0,0){\circle{\csteps@YLength}}% }% \makebox(0,\csteps@YLength){% \put(-.5\wd\csteps@CBox,0){\textcolor{\pgfkeysvalueof{/csteps/inner color}}{#2}}% }}% \fi }% } \def\Circled#1{\csteps@CircledParam{1}{#1}} \def\CircledTop#1{\csteps@CircledParam{0}{#1}} \makeatother \begin{document} This is normal text \Circled{1} is on the baseline, \CircledTop{2} is on top. \par\bigskip This is more evident if you have descendent, like p:\Circled{p} and \CircledTop{p}. \par\bigskip For big horizontal things it becomes oval: \Circled{200} or \CircledTop{199}. \par\bigskip Inside \texttt{tikz} \begin{tikzpicture}[scale=0.8, rotate=30, text width=3cm, transform shape] \node [draw,color=green!50!black]{text \Circled{1}}; \end{tikzpicture} \par\bigskip \tikzset{/csteps/inner ysep=10pt} \tikzset{/csteps/inner xsep=10pt} More space: \Circled{1} \Circled{2} \Circled{p} \Circled{200} \Circled{199}. \end{document}
댓글
- 멋져 보입니다! (+1)
답변
기본 그림 명령 사용 :
\documentclass{article} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{pict2e,picture} \newsavebox\CBox \newlength\CLength \def\Circled#1{\sbox\CBox{#1}% \ifdim\wd\CBox>\ht\CBox \CLength=\wd\CBox\else\CLength=\ht\CBox\fi \makebox[1.2\CLength]{\makebox(0,1.2\CLength){\put(0,0){\circle{1.2\CLength}}}% \makebox(0,1.2\CLength){\put(-.5\wd\CBox,0){#1}}}} \begin{document} \Huge foo \Circled{1} \Circled{2} \Circled{ABC} \end{document}
Answer
With Plain (우연히 우연히 발견하고이 질문을 기억함) :
\def\circled#1{{\ooalign{\hfil\lower.1ex\hbox{#1}\hfil\crcr\Orb}}} $\circled1 \circled2 \circled3 \ldots \circled9 \quad \circled{23}$ \bye
XeTeX 사용 :
\font\circled="Arial Unicode MS" {\circled ➀} Didn"t occur to me {\circled ➄} earlier that some fonts have {\circled ➇} these. \bye
또는 TikZ를 사용하는 경우 :
\input tikz baseline ain"t so pretty \par baseline ain"t so pretty \par baseline \tikz \node[circle,draw] {2}; ain"t \par so pretty \tikz[baseline] \node[circle,draw] {2}; baseline \par ain"t so pretty baseline \par ain"t \tikz[inner sep=1pt,baseline=-.75ex] \node[circle,draw] {2}; so pretty \par baseline \tikz[inner sep=2pt,baseline=-.75ex] \node[circle,draw] {2}; ain"t so \par pretty baseline ain"t so \par pretty \tikz[inner sep=.25ex,baseline=-.75ex] \node[circle,draw] {2}; baseline \par ... actually, now it sorta is \par baseline ain"t so pretty \par baseline ain"t so pretty \bye
mg src =”https://i.imgur.com/LAqbN.png “alt =” “title =”Hosted by imgur.com “/>
Darn, Stefan은 더 좋은 것으로 저를 이겼습니다.
답변
다음은 \pdfliteral
솔루션입니다. 단일 번호에서만 작동합니다.
\def\circled#1{% #1% \pdfliteral{ q .5 w 10 0 0 10 -2.5 3.5 cm .05 w .5 0 m .5 .276 .276 .5 0 .5 c -.276 .5 -.5 .276 -.5 0 c -.5 -.276 -.276 -.5 0 -.5 c .276 -.5 .5 -.276 .5 0 c h S Q }% } \circled{1} a \circled{2} b \circled{3} c \circled{10} \bye
댓글
- 왜 좌표 변환이 필요한가요?
- @percusse 사실, 방금 여기 에서 코드를 복사하여 약간 수정했습니다. PDF 코딩에 대한 자세한 정보를 얻을 수있는 리소스를 제공 할 수 있다면 정말 기쁩니다.
- 실제로는 PostScript이지만 PDF는 많은 그래픽 개체도 지원합니다. 따라서 PDF에서 지원되는 모든 연산자 집합을 이해하는 것은 ‘ 약간 번거 롭습니다. 그러나 적어도이 코드를 읽기 시작하려면 참조 가이드 adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/ … . 또한 ISO 사양 ( adobe.com/devnet/pdf/pdf_reference.html 의 표 59)에서 프런트 엔드에 매핑 된 TikZ 연산자를 인식 할 수 있습니다. 파악해야 할 초기 문제는 경계 상자를 설정하는 것입니다. 나머지는 일반적인 PS 표기법입니다.
Answer
사용 pifont 패키지 및 \ding{172}
에서 \ding{211}
까지의 기호는 매우 우수한 원으로 표시된 숫자를 쉽게 가질 수 있지만 원으로 표시된 경우 10보다 큰 숫자에 문제가 있습니다. 여기에서 다른 stackexchange 사용자들이 보여 주듯이 숫자가 너무 크지 않으면 문제를 해결할 수 있지만 상황이 어려워지고 (복잡한 LaTeX 코드) 텍스트 안에 글을 쓰면 문제가 발생할 수 있습니다 (원이 커지면 LaTeX가 줄 사이의 공간을 늘리거나 인접한 위쪽 및 아래쪽 줄에 원을 겹치도록 강요해야합니다.) 항목 별 목록에서 원으로 표시된 숫자 만 원하면 상황이 조금 더 간단합니다. 이러한 유연성 부족은 어떤 경우에는 귀찮을 수 있습니다. 합리적인 해결책은 tcolorbox 패키지를 사용하는 것 같습니다. 시도한 후이
\usepackage{tcolorbox} \newcommand{\ciao}[1]{{\setlength\fboxrule{0pt}\fbox{\tcbox[colframe=black,colback=white,shrink tight,boxrule=0.5pt,extrude by=1mm]{\small #1}}}}
그리고 “원형”번호를 원할 때 문서에서 \ ciao 명령을 호출합니다 (예 : \ ciao {12}는 번호 12를 “원형”으로 표시합니다). 그건 그렇고, 프리앰블 라인에서 fbox를 사용하는 것은 중요합니다. 왜냐하면 그것이 없으면 둥근 상자가 라인의 여백에있을 때 왼쪽이나 오른쪽의 라인 밖으로 튀어 나올 수 있기 때문입니다. 이것은 매우 미학적 일 것입니다.
다시 시작하겠습니다.이 솔루션에는 3 가지 장점과 1 가지 단점이 있습니다.
- 장점 : 간단한 코드, 텍스트 내에서도 잘 작동, 유연성 (큰 숫자도 & 테두리 나 색상으로 쉽게 플레이 할 수있는 경우 : 0.5pt 또는 검정색 참조 & 프리앰블 줄의 흰색).
- 단점 : 우리는 원이 아니라 둥근 상자가 있지만 합리적인 절충안이라고 생각합니다.
이 방법의 적용 예는 다음과 같습니다.
Quel ramo del lago di Como \ciao{1}, che volge a mezzogiorno, tra due catene \ciao{20} non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a restringersi, e a prender corso \ciao{252} e figura di fiume, tra un promontorio a destra, e un"ampia costiera dall"altra parte; \ciao{3432} e il ponte che ivi congiunge le due rive, par che renda ancor più sensibile all"occhio questa trasformazione, e segni il punto in cui il lago cessa, e l"Adda ricomincia, per ripigliar poi nome di lago dove le rive, allontanandosi di nuovo, lascian l"acqua distendersi e rallentarsi in nuovi golfi e in nuovi seni.
숫자는 튀어 나오지 않으며 줄 사이의 간격은 항상 동일합니다. 숫자가 있든 없든 상관 없습니다. 간단히 말해서, 거의 원으로 둘러싸인이 숫자는 텍스트 안에 있어도 매우 잘 작동합니다.
\textcircled
?