Jó módszer a szöveges körök készítésére?

Ez a kérdés új csomaghoz vezetett:
circledsteps

Megpróbálok néhány szép számot készíteni egy körben az egyszerű paranccsal:

\textcircled{1} 

A kör azonban függőlegesen van elhelyezve a számmal, és kissé hanyagnak tűnik:

alt szöveg

Bármilyen javaslat A függőleges igazítást úgy állítom be, hogy a számok jobban nézzenek ki a körökre írva, vagy ha ez nem opció, akkor milyen más módszerekkel érhetjük el ugyanezeket az eredményeket?

Csak ezeket fogom használni a számokhoz, és nagyon kevés helyen, így a karakterjelenkénti kézi beállítás opció.

A pdfLaTeX t használom a Computer Modern alkalmazással, ha ez számít.

Megjegyzések

  • Két jó választ kapott itt, kevesebb mint 30 percig utes (srácok gyorsak vagytok!).

Valószínűleg közösségi wiki-választ adok, amely az összes lehetőséget összefoglalja a napok egyikében, lehet, hogy időközben más megoldások is megjelennek.

  • I ‘ m alváshiányos, ezért ‘ miért!
  • Milyen csomagot nyújt \textcircled?
  • @Matthew: Úgy tűnik, hogy a LaTeX-szel van beépítve. A dobozon kívül működik.
  • Használhatja az Unicode-ot. U + 2460-2473 1-20-ig, U + 24EA 0-nál, U + 3251-325F 21-35-ig és U + 32B1-32BF 36-50-ig.
  • Válasz

    Itt van a TikZ megoldás:

    \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} 

    alt szöveg

    Ez csak egy csomópont. A TikZ opciókat használjuk az alapvonal igazításához, a méret beállításához és a kör alakjának megszerzéséhez. Szabadon választhat további lehetőségeket a méret vagy a kör vastagsága tekintetében (opció thick). Van még: például megnevezheti a csomópontokat egy másik argumentummal, hogy nyilakkal kapcsolja össze őket. később.

    Ha valaki például felsorolt listához szeretné használni, akkor könnyű, de védeni kell:

    \usepackage{enumitem} ... \begin{enumerate}[label=\protect\circled{\arabic*}] \item First item \item Second item \item Third item \item Fourth item \end{enumerate} 

    alt szöveg

    Megjegyzések

    • Jó példa! A múltban problémáim voltak A TikZ példák sorban, de most látom, hogy ezt megoldotta a baseline=(char.base). Hűvös.
    • @Stefan: talán ki kellene cserélnie a \newcommand által \DeclareRobustCommand, például, hogy a \protect -re már nincs szükség, ami felhasználóbarátabb.
    • Ezután a \ newcommand paranccsal kell deklarálni egy üres parancs ökölt, majd a \ DeclareRobustCommand parancsot. Így egy meglévő parancs hibát fog kiadni.
    • @LuisFelipeVillavicencioLopez Biztos! nem a legjobb a kódbeszélgetésekhez. Esetleg tegyen fel egy új kérdést, vagy hagyja, hogy ‘ s beszéljen a LaTeX közösségben , ahová naponta postázok.
    • Ez szép, de a probléma az, hogy ‘ nem használható \tikzpicture — hasonlóan, például például egy csomópont szövege vagy egy címke. Van valami megoldás egy ” univerzális ” szép körözött számra? Hivatkozásként lásd: tex.stackexchange.com/questions/496348/…

    Válasz

    Kellemesen meglepődtem, hogy hányan döntöttek úgy, hogy megpróbálják, és rengeteg érdekes megoldás jelent meg. A hagyományoknak megfelelően ez a válasz közösségi wiki lesz, és összefoglalja és összehasonlítja az összes javasolt megoldást.


    Ezúton három különböző értékelési kritériumot javaslok, mindegyik 1-től 5-ig osztályozva:

    • Egyszerűség . Ez egy olyan intézkedés, amilyen egyszerű használni a javasolt megoldást. Pontok levonása további csomagok használatáért vagy bármi más meghatározásáért, kivéve az egyszerű kényelmi makrót.
    • Rugalmasság . Ez elsősorban azt foglalja magában, hogy ezt milyen könnyű más körülmények között használni, ebben az esetben a különböző keretformák, -méretek és -vastagságok.
    • Pontosság . Egyszerűen fogalmazva, mennyire esztétikusan néz ki a megoldás, különös tekintettel arra, hogy mennyire jól áll a karakterjel a körben, és hogy illeszkedik a szabadon futó szövegbe.

    Tesszük:

    1. A raisebox megoldás.

      Köszönöm Jimi Oke nak a gyors ujjakat. Ez jött be először, és ez az, ami különösen tetszik az alkalmazásban, amelyre gondoltam. Olyan egyszerű, mint:

      \raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {8}}} 

      Ennél több. Az egyszerűség szempontjából ez nem lesz jobb ennél.Szilárd 5/5 , mivel nincs szükség extra csomagokra, és a nehézkes definíció triviálisan elvonatkoztatható egyvonalas \def.

      Rugalmasan, ez a megoldás meglehetősen alacsony, mivel Ön nem tudja ellenőrizni a kör méretét vagy paramétereit (biztos vagyok benne, hogy néhány TeX hacker bizonyítsd, hogy tévedek, de a $ DEITY szeretete miatt kímélj meg minket az ilyen utálatosságoktól. 2/5 itt jól megérdemelt. {1}

      A pontosság kérdése szubjektív, mint mindig, de a függőleges távolságokkal el kell játszanod, hogy az éppen megfelelő legyen ™. kiválasztottak. 2/5 .

    2. A ding -y megoldás.

      Ez a TH. ből jött, amely néhány előre definiált szimbólumjel használatát javasolja. A mindentudó szimbólumok-a4 dokumentum azt mondja, hogy a The True True Way to use használata:

      \usepackage{pifont} \ding{172}--\ding{181} % seriffed fonts \ding{192}--\ding{201} % sans-seriffed fonts 

      Vagy akár a Go tábla nómenklatúrája:

      \usepackage{igo} \whitestone{1}--\whitestone{99} 

      Az egyszerűség kedvéért ez 4.5 / 5 , bár nem szívesen adok neki 5-ös szorzót a benne lévő extra csomagok miatt.

      Ez egyáltalán nem rugalmas. Ha nem tetszik a karakterjel, akkor egyedül vagy. 1/5 .

      Maguk a karakterjelek jól megtervezettek, ahogy az várható volt, és a számok vizuálisan jól igazodik a körökhöz. Bár ha van egy külön stílusú betűkészlete, akkor a számok betűtípusa nem biztos, hogy jól illeszkedik a szöveghez.

    3. A kötelező tikz megoldás.

      Ahh, mindig van ilyen, nem ez. Ez Stefan Kottwitz nak köszönhető.

      \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} 

      Személy szerint nem vagyok bele tikz (tudom , Egyik nap egyikén kellene megtanulnom), így ezzel a csomag egyszeri használata lenne a számomra, amit szeretnék elkerülni. Itt nem adhatok többet, mint 2/5 , de az tikz A fanboiz-nak (és a galz! -nak) ezt fel kell ütnie egészen a 4/5 -ig.

      Mint ami a rugalmasságot illeti: ez az igazi. Stefan még azt is megmutatta, hogyan lehet a felkarikázott szimbólumokat felsorolt listákkal használni. Különböző keretformák minden bizonnyal lehetségesek, változó mértékben illeszkednek a karakter körül. Vitathatatlan 5/5 .

      Az alapvonal igazítása csúcsminőségű, anélkül, hogy néhány kézi beállítással el kellene játszani, ami nagyon jó. A szimbólum körüli távolság rendben van, bár a szabadon futó szövegben a körnek lehetőleg szorosabb illeszkedést kell tartalmaznia a szám körül, ami a inner sep paraméterrel való lejátszással érhető el. a parancs meghatározása. 5/5 itt.

    4. pict2e / picture megoldás

      Herbert késői kiegészítése A a picture és a pict2e csomagokból néhány alapvető primitívet javasol. Ide kerül:

      \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}}}} 

      Az egyszerűség szempontjából ez nem túl jól értékelhető. Kicsit összezavarodottnak tűnik, bár tanulmányozása után mindenképpen érthető, és használ két további csomag. 2/5 itt elfogadható pontszám.

      A rugalmasság nem egészen beépített – -ban, de minden bizonnyal lehetséges. A kör sugara a 1.5 tényező módosításával állítható be, és az alapvonal kiigazítása lejátszható. 3.5 / 5 .

      Ebben a definícióban a környező szöveg alapvonala a kört érinti, ahelyett, hogy a körözötté lenne számalap. Ez bizonyos esetekben kívánatos lehet, de a számok így kissé helytelennek tűnnek. Jobb eredmények érhetők el néhány további számítással a dobozok elhelyezésekor, és egy 3.5 / 5 itt van megadva a reflec t ezt a lehetőséget.

    5. A másik kötelező tikz megoldás

      Matthew Leingang és morbusg kipróbálta a kezét ebben, és bár erőfeszítéseit minden bizonnyal nagyra értékelik, Stefan megoldását egyszerűbbnek érzem. Hálás vagyok az erőfeszítésért (és az alázatosságért), és mindkét válaszát felértékeltem.

    Végső pontszám:

    • Egyszerűség : raisebox
    • Rugalmasság : tikz
    • Pontosság : tikz és ding

    Összességében: tikz, habozás nélkül ( közönség általi elismerés, dobott kalapok, zsebkendők lengetése és mindezek).

    Végül néhány tesztkód:

    \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} Ha valaki mégis úgy dönt, hogy ír egy ilyen dolgot, tudassa velem, és ezt a választ külön költség nélkül felveszem ebbe a válaszba, de figyelmeztetjük, hogy a bejegyzést később a gyenge szív védelmére.

    Megjegyzések

    • kiváló összefoglaló, jól sikerült! Az ilyen bejegyzések miatt érdemes ezt a weboldalt megkapni.
    • @Yiannis ‘ s már egy ideje, hogy feltettem a kérdést, de csak most találtam időt a csiszolásra az összegzés. Remélem, hogy ugyanazokkal a problémákkal küzdő emberek számára hasznos lesz.
    • Ön azt mondja, ” A szimbólum körüli távolság rendben van, bár szabadon fut a kör szövegének lehetőleg szorosabban kell illeszkednie a szám körül. ” Ezt könnyen meg lehet javítani, ha a inner sep=2pt értéket a \circled parancsdefinícióban.
    • @Matt: Persze – szándékom esztétikai kérdésre volt rámutatni, de gondolom ‘ nem voltam teljesen világos ebben. Az információ arról, hogy mit kell változtatni, most szerepel a bejegyzésben. Köszönet.
    • @MartinTapankov A problémát a raisbox segítségével oldják meg, feltéve, hogy minden hívást megelőz a \ protect.

    Válasz

    A leggyorsabb megoldás a \raisebox parancs használata. Kicsit játszottam már vele, és úgy tűnik, hogy a szöveget 0,9pt-rel csökkentve az ábra hozzávetőlegesen a középpontba kerül:

     \textcircled{\raisebox{-0.9pt}{8}} 

    Lehetne játszani abszolút középpont eléréséhez, de határozottan 0,9 és 1pt között van. itt kaptam az ötletet. Úgy tűnik, hogy a \textcircled parancs működik a legjobban a szöveghez! De mindenesetre ez megoldja a problémát.

    Megjegyzések

    • Ez ‘ megváltozni fog a számok alapvonala, amelyek esetleg nem kívánatosak. De talán egy külső \raisebox vel az egész körözött szám növelése érdekében az alapvonalak fennmaradhatnak.
    • Mais oui! Magamnak kellett volna erre gondolnia. Köszönöm! ‘ Várok még néhány javaslatot, mielőtt ezt elfogadottként megjelölném.
    • @TH. Igaz, de ez nem számít nekem ‘ – számok nem jelennek meg a szabadon futó szövegben, hanem inkább a táblázat oszlopainak fejlécei vagy címkézésre szolgálnak.
    • De valójában a \textcircled kimenetnek már alacsonyabb az alapvonala a \raisebox nélkül vagy anélkül. Tehát, ha a szerző mindezt öblítésnek részesíti előnyben, akkor a pifont parancsot kell választania. Külső \raisebox esetén a maximum egy 0,5pt emelés, amely a kört visszaállítja eredeti helyzetébe, amely azonban nem egyezik meg a szöveggel. Ha mindent felemelünk a 0,5pt-nél nagyobb mértékben, akkor a szám nem a kör, hanem a kör eltolódik, ezzel kezdetleges erőfeszítéseket tagadva. Így, ha a szerző jó \textcircled -t akar, akkor itt ‘ s egyet: \raisebox{.5pt}{\textcircled{\raisebox{-.9pt} {8}} } . Ez valójában nagyon jó.
    • @Martin: Ön is kaphat TikZ-javaslatot. 😉

    Válasz

    morbusg már említett hogy egyes betűtípusok számokat vettek körbe Unicode karakterjelek , és megmutatták, hogyan lehet őket közvetlenül beágyazni. Néhány betűtípus felhasználóbarátabb felületet biztosít a számok eléréséhez, pl. Linux Libertine és Junicode. Nyilvánvalóan ez azt jelenti, hogy eltérünk a Computer Modern használatának követelményétől. Ezeknek az Unicode-számoknak az előnye feltehetően az, hogy betűtípus-tervező készítette őket, így nem kell finomhangolásra szorulni. telepítse a junicode csomagot):

    \documentclass{article} \usepackage{fontspec} \usepackage{libertine} \begin{document} \libertineGlyph{uni2460} \libertineGlyph{uni24F5} \libertineGlyph{uni2776} {\fontspec[Ligatures=Discretionary]{Junicode}[1] [[1]] <1>} \end{document} 

    output

    Ezeket a módszereket a megfelelő dokumentációk ismertetik.

    Itt még kényelmesebb módon érheti el ezeket a számkészleteket. A kétszeresen bekarikázott számok (Unicode-onként) 1-től 10-ig, a többiek 0-tól 20-ig állnak rendelkezésre.

    \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} 

    output

    Megjegyzések

    • Úgy gondolom, hogy ez nem működik a pdflatex esetén.
    • @moose Igen .. Ellenőriznem kell, hogy az első kódbit működik-e az aktuálisal libertine egyáltalán (de akkor a pdfLaTeX-nek rendben kell lennie), a második bit csak XeLaTeX / LuaLaTeX, ezt is bele kell tennem a válaszba.

    Válasz

    A PGF túlterhelt ennél az alkalmazásnál, de ha már be van töltve, akkor használhatja:

    \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} 

    kivonat kimenete

    Mint láthatja, van némi hely a körök körül a div id = “d10156c98e”>

    de ez nem rossz.

    a poszt előtti szerkesztés: Úgy látom, hogy Stefan és morbusg ütőre vertek. Na jó.

    Hozzászólások

    • Úgy gondolom, hogy egy külső folyamat valóban túlzott ahhoz, ami a LaTeX-en belül elvégezhető. Éppúgy összeállíthatja, mint \ newcommand {\ Ring} [1] {\ raisebox {-1pt} {\ begin {tabular} {@ {} c @ {}} {\ small # 1} \ [ -11.5pt] \ BigCircle \ end {tabular}}}. A dimenziók automatikus beállítása gyakorlatként az olvasó számára marad 🙂
    • Peter, milyen külső folyamat?
    • @ u0b34a0f6ae: Szerintem Péter arra a tényre utal, hogy tikz egy csomó \special parancsot használ, miután a TeX feldolgozta a bemenetet. Tehát ‘ „normál” a normál TeX emésztőrendszeren.

    Válasz

    A sümbolok.pdf fájlból úgy tűnik, hogy pifont azt teheti, amit akar, a \ding{172} és vagy \ding{192}\ding{201}.

    Vagy a igo csomag \whitestone{1} -től \whitestone{99} -ig, bár ez a Go táblák tipizálására szolgál.

    Úgy tűnik, hogy a megoldást megtalálták, de itt egyszerű összehasonlítás van.

    \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} 

    írja ide a kép leírását

    Megjegyzések

    • Ez nagyszerű megoldás. A pifontok azonban eléggé fel vannak osztva, a \textcircled kimenethez képest. A pro azonban az, hogy a pifonts egybeesik a szöveggel, ami jó dolog lehet a szerző számára.
    • @TH: Szép. Mit csinál a textcomp csomag?
    • @Jimi: Úgy gondoltam, hogy szükséges a \textcircled fájlhoz. Tévedtem. (Néztem a Symbols.pdf 17. táblázatát, amely megjegyzi, hogy textcomp szükséges a \newtie mezőhöz, de nem voltam ‘ nem olvasok elég figyelmesen.) Frissítettem a kódot.
    • @PatrickT Köszönöm a képet. ‘ jó kiegészítés.

    Válasz

    A mathdesign csomag meghatározza a \figurecircled csomagot, amelynek jobb a távolsága a számoknál, mint a \textcircled igen.

    A mathdesign csomag nem kompatibilis a amsfonts és amssymb de ha úgyis mathdesign betűtípust használ, az nem jelent problémát.

    Megjegyzések

    • Ezt a választ leszavazták? Aki ezt csinálta, meg tudná magyarázni, miért gondolja, hogy ez rossz megoldás a problémára?
    • Nem ‘ nem mondtam le téged, de hibát kaptam egy egyszerű tesztfájl. Tudna biztosítani egy MWE-t? Hibaüzenetem: ! 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!

    Válasz

    @Stefan ” s a válasz jó, azonban javítottam a válaszán.

    Először is, ha a \circled{1} és a \circled{10} együtt vannak , a két kör nem lesz azonos méretű, ezért hozzáadtam egy opcionális paramétert a \circled parancshoz. Az opcionális paraméter helyőrzőként lett besorolva, hogy megbizonyosodjon arról, hogy ezek a körök megjelennek a azonos méretű.

    Ezenkívül, mivel “\ifblank -t használtam, amelyet a etoolbox csomag biztosít, annak ellenőrzésére, hogy megadták-e az opcionális paramétert, A \robustify segítségével a parancsot robusztusvá tettem. Ez megkerülte az \DeclearRobustCommand használat hátrányát, amelyet @Stefan említett válaszának megjegyzésében. Így a \protact -re már nincs szükség.


    Kód:

    \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} 

    Eredmény:

    Megjegyzések

    • ismeri a minimum size lehetőséget a csomópontokhoz?
    • @percusse Sajnáljuk, de Nem értem ‘.
    • Megadhat egy minimális méretet a körcsomópontok számára, ha nincs egyforma méretű doboz vagy fantom.
    • @percusse Ez ‘ jó javaslat azonban nem gondolom, hogy ‘ gondolom, hogy megértette az ötletet a hozzászólásomban. Ezt az opcionális paramétert úgy alakítottam ki, hogy egyenletes legyen a körök mérete, mivel az egymáshoz igazított különböző méretű körök barátságtalan megjelenést kölcsönöznek.

    Válasz

    Még könnyebb:

    \textcircled{\small{2}} 

    vagy

    {\large \textcircled{\small 2}} 

    vagy

    {\Large \textcircled{\normalsize 2}} 

    [szerk. Segletesek, MWE & kép]

    \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} 

    A fenti .tex fájl LaTeX-renderelése

    Megjegyzések

    • Ez működhet, ha a kört nem veszi körül szöveg, és a szám betűmérete nem jelent problémát – de én ‘ inkább a többi megoldás egyikét használom ehelyett.
    • Megfordíthatjuk-e a körön belüli színeket?

    Válasz

    erre a válasz egy csomagban lett átalakítva a CTAN-on: https://ctan.org/pkg/circledsteps

    Az itt található válaszok mindegyike szép, és főleg az tikz nagyon konfigurálható. De van egy problémája: nem használhatja más tikzpicture s biztonságosan. Tehát összevontam néhány dolgot, és ezt megvalósítottam:

     \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}  

    Példa használatra

    megjegyzések

    • Nagyon jól néz ki! (+1)

    Válasz

    az alapértelmezett képparancsokkal:

    \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} 

    alt szöveg

    Válasz

    Sima nyelven (véletlenül botlott erre és emlékezett erre a kérdésre):

    \def\circled#1{{\ooalign{\hfil\lower.1ex\hbox{#1}\hfil\crcr\Orb}}} $\circled1 \circled2 \circled3 \ldots \circled9 \quad \circled{23}$ \bye 

    körözött számok

    XeTeX használatával:

    \font\circled="Arial Unicode MS" {\circled ➀} Didn"t occur to me {\circled ➄} earlier that some fonts have {\circled ➇} these. \bye 

    Vagy a TikZ-szel:

    \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 egy szebbel vert meg.

    Válasz

    Itt van egy \pdfliteral megoldás. Csak egyes számoknál működik.

    \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 

    írja ide a kép leírását

    Megjegyzések

    • Miért éppen a koordináta-átalakítások?
    • @percusse Valójában csak átmásoltam ide a kódot innen és kissé módosítottam. Ha bármilyen forrást tudsz biztosítani a PDF-kódolással kapcsolatban, akkor nagyon örülnék.
    • Valójában PostScript, de a PDF sok grafikus objektumot is támogat. Tehát ‘ kissé nehézkes megérteni a PDF-ben támogatott összes operátor készletét. De legalább a kód olvasásának elkezdéséhez használhatja a adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/… . Az ISO specifikációban (az adobe.com/devnet/pdf/pdf_reference.html 59. táblázatában is felismerheti a TikZ operátorokat, amelyek a frontendhez vannak hozzárendelve;). A kezdeti probléma, hogy a határolótáblát állítsuk be, a többi szokásos PS jelölés.

    Válasz

    Használat pifont csomag és szimbólumok \ding{172} -től \ding{211} -ig könnyen kiváló karikázott számokkal rendelkeznek, de ha körözni akarsz 10-nél nagyobb számokkal van egy problémánk. Amint azt a többi stackexchange felhasználó megmutatta itt, megoldhatjuk a problémát, ha a számok nem túl nagyok, de a dolgok nehézzé váltak (összetett LaTeX kódok), és problémáink lehetnek, ha egy szöveg belsejébe írunk (ha a kör nagy lett, a LaTeX képes arra kényszerítve, hogy növelje a sorok közötti teret, vagy esetleg átfedje a kört a szomszédos felső és alsó vonalon): a dolgok valamivel egyszerűbbek, ha csak körözött számot akarunk egy tétellistában. A rugalmasságnak ez a hiánya bizonyos esetekben zavaró lehet. Úgy tűnik, hogy egy ésszerű megoldás a tcolorbox csomagot használja: próbálkozások után azt tapasztaltam, hogy ezt egyszerűen be kell tennünk a preambulumba

    \usepackage{tcolorbox} \newcommand{\ciao}[1]{{\setlength\fboxrule{0pt}\fbox{\tcbox[colframe=black,colback=white,shrink tight,boxrule=0.5pt,extrude by=1mm]{\small #1}}}} 

    és hívja meg a dokumentumban a \ ciao parancsot, amikor egy “körözött” számot akarunk (például: \ ciao {12} “körbe” írja a 12-es számot). Egyébként az fbox használata a preambulum sorában azért fontos, mert nélküle a lekerekített doboz kinyúlhat a bal vagy a jobb sorból, amikor a vonal szélén vannak: ez nagyon esztétikus lenne.

    Folytatódik, ebben a megoldásban 3 előny és 1 hátrányt látok:

    • pros : egyszerű kód, a szövegben is jól működik, rugalmasság (nagy számok is & arra az esetre, ha könnyen játszhatunk szegélyekkel vagy színekkel: lásd 0.5pt vagy fekete & fehér a preambulum sorában).
    • hátrányok : nem körök vannak, hanem lekerekített doboz, de ezt ésszerű kompromisszumnak találom.

    A módszer alkalmazására példa a

    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. 

    ez adja

    írja ide a kép leírását

    ne feledje, hogy a számok nem állnak ki, és hogy a sorok közötti távolság mindig ugyanaz: függetlenül attól, hogy van-e számunk vagy sem. Röviden, ezek a szinte körbeírt számok akkor is nagyon jól működnek, ha szövegben vannak.

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük