Portál AbcLinuxu, 8. května 2025 17:51

Dotaz: latex: současné použití hanging a tabto

15.7.2014 13:07 JanM | skóre: 28
latex: současné použití hanging a tabto
Přečteno: 174×
Odpovědět | Admin
Dobré odpoledne,

marně bojuji s tím, že použití balíku hanging (pro odsazení druhé a další řádky odstavce) způsobí nefunkčnost tabelátorů balíku tabto.
\documentclass{article}
\usepackage{hanging}
\usepackage{tabto}
 \TabPositions{3mm,10mm}
\begin{document}
\begin{hangparas}{10mm}{1}

Text1

 \tab 001 \tab Bla bla

 \tab 001 \tab Bla bla

Text2

 \tab 001 \tab Blaaaa1

 \tab 001 \tab Blaaaa2

\end{hangparas}
\end{document}
Bez balíku hanging to vypadá dobře:
Text1
 001  Bla bla
 001  Bla bla
Text2
 001  Blaaaa1
 001  Blaaaa2
S balíkem hanging se to chová, jako kdyby byly tabelátory nastaveny na začátek řádky: "001" se tiskne bez odsazení, "Bla bla" taktéž - takže dojde k soutisku (překryvu) textu.
Text1
XXX bla
XXX bla
Text2
XXXaaa1
XXXaaa2
Hanging bych rád použil pro situace kdy text "Text1" i "Bla bla" přepadne do druhé řádky - aby pokračoval odsazený na úroveň druhého tabelátoru.

V nejhorším bych tabelátory asi mohl oželet použitím monospaced písma, ale to je trochu omezující...

Řešení dotazu:


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

wamba avatar 15.7.2014 15:50 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: latex: současné použití hanging a tabto
Odpovědět | | Sbalit | Link | Blokovat | Admin
nesnažíte si sám dělat to, co už umí enumerate, popř. description?
\documentclass{article}
\usepackage{enumerate}
\usepackage[utf8]{inputenc}
\begin{document}

%k tomuhle je potřeba balíček enumerate
Text1
\begin{enumerate}[001]
\item Hanging bych rád použil pro situace kdy text "Text1" i "Bla bla" přepadne do druhé řádky - aby pokračoval odsazený na úroveň druhého tabelátoru.
\item  Bla bla
\end{enumerate}

%tohle funguje i bez tohohle balíčku 
Text2
\begin{enumerate}
\item[001]   Hanging bych rád použil pro situace kdy text "Text1" i "Bla bla" přepadne do druhé řádky - aby pokračoval odsazený na úroveň druhého tabelátoru. 
\item[001]  Blaaaa2
\end{enumerate}
\end{document}
This would have been so hard to fix when you don't know that there is in fact an easy fix.
16.7.2014 22:31 JanM | skóre: 28
Rozbalit Rozbalit vše Re: latex: současné použití hanging a tabto
Díky za popostrčení. enumerate v podstatě fungoval, pokud bych byl spokojen s výchozím nastavením v latexu.

Dost času jsem však strávil odstraňováním vertikálních mezer mezi řádky, seznamy a odstavci, poté optimalizací odsazení štítku a textu v seznamu (\labelwidth, \labelsep), až jsem na tom také nakonec ztroskotal - \leftmargin zůstával bez účinku, takže v případě mnohoznakového štítku se mi jeho první znak nedařilo odsadit, kam bych si přál (vyčníval před levý okraj sloupce).

Na zkoušení dalších alternativ seznamů jsem už neměl sílu ;-)
15.7.2014 22:57 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: současné použití hanging a tabto
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud jsou dva latexove baliky v konfliktu, popremyslel bych, jestli je potreba je pouzivat. Zkuste napsat, ceho chcete dosahnout. Dost casto se to da udelat pomoci jednoduchych maker LaTeXu nebo plainu, i bez sofistikovanych LaTeX balicku. Jestli jde jenom o to udelat
Text1
 001  Bla bla
 001  Bla bla
Text2
 001  Blaaaa1
 001  Blaaaa2
tak bych se na balicky vykaslal uplne. \documentclass{article} \def\tab #1 \tab #2\par{\par\hspace*{3mm}\hbox to 1cm{#1\hss}#2\par} \begin{document}

Text1

\tab 001 \tab Bla bla

\tab 001 \tab Bla bla

Text2

\tab 001 \tab Blaaaa1

\tab 001 \tab Blaaaa2

\end{document}
15.7.2014 23:05 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: současné použití hanging a tabto
Jeste ukazka, jak to modifikovat, pokud ma text pretect do dalsiho radku
documentclass{article}
\def\tab #1 \tab #2\par{\par\hspace*{3mm}\hbox to 1cm{#1\hss}
  \dimen0=\linewidth
  \advance \dimen0 by -1.3 cm
  \begin{minipage}[t]{\dimen0}
    #2\strut
  \end{minipage}
\par}
\begin{document}

Text1

 \tab 001 \tab Bla bla

 \tab 001 \tab Bla bla

Text2

 \tab 001 \tab Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1  Blaaaa1 

 \tab 001 \tab Blaaaa2

\end{document}
16.7.2014 22:48 JanM | skóre: 28
Rozbalit Rozbalit vše Re: latex: současné použití hanging a tabto
Příloha:
To bylo to pravé ořechové - seznam už je hotový včetně číslování položek a tabelátorů, stačí to jen správně vysázet.

Zbývá však doladit jedna drobnost: je li položka seznamu dlouhá, přepadne do dalšího řádku a správně se odsadí na úroveň začátku textu položky z prvního řádku. Potud ok.

Má to (přepad do druhého řádku) ovšem neblahý vliv na řádkování: další odstavec je vertikálně umístěn o něco výše. Dobře je to vidět na přiloženém obrázku.

Seznam exportuji do vícesloupcového rozložení, takže změna řádkování rozhodí zarovnání řádků mezi sloupci. Dá se s tím něco udělat?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.