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:
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.
\textcircled
? 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}
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}
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:
-
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 .
-
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.
-
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 aztikz
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. -
pict2e
/picture
megoldásHerbert késői kiegészítése A a
picture
és apict2e
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.
-
A másik kötelező
tikz
megoldásMatthew 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
ésding
Ö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 apifont
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}
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}
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}
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}
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, hogytextcomp
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}
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}
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}
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
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
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
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.