2010-01-29 6 views
4

J'écris un document dans LaTeX, et je rencontre un problème quand j'ai une ligne de texte qui s'enroule autour. Ce dont j'ai besoin, c'est que le texte, lorsqu'il est enroulé, indente afin qu'il corresponde à l'étiquette (un peu comme la fonction \ item [Label:] Text, sauf que je ne peux pas utiliser un contexte {description}Enveloppe de mots en retrait dans LaTeX

Cela se produit dans le contexte de

\newcommand{\objectiveresheading}[1]{% 
    {\parashade[.9]{sharpcorners{\textbf{\Large{Objective: }\large{#1}}}}} 
+0

probablement besoin de plus d'informations-- êtes-vous dans un environnement de n'importe quel type? ou est-ce que cela se produit dans le corps du texte? – Mica

+0

Il est contenu dans cette fonction définie: \ newcommand {\ objectiveresheading} [1] {{\ parashade [.9] {sharpcorners} {\ textbf {\ Large {Objectif:} \ large {# 1}}}}} \ Objectivereading est appelé dans le corps du texte. –

+0

Ouch. S'il vous plaît ne mettez pas autant de code dans un commentaire ... éditez la question à la place. Le contrôle est juste sous les balises. – dmckee

Répondre

5

Il existe une macro interne LaTeX pour exécuter cette fonction appelée \@hangfrom. Voici un exemple:

 
\documentclass{article} 
\usepackage{lipsum} 
\begin{document} 
\makeatletter 
\newcommand*\objectiveresheading[1]{% 
    \@hangfrom{\Large\bfseries Objective: }% 
    {\large\bfseries #1\par}% 
} 
\makeatother 
\objectiveresheading{\lipsum[1]} 
\end{document} 

Notez que le texte encapsulé ne peut contenir qu'un seul paragraphe. Si vous avez besoin de plusieurs paragraphes, quelque chose de plus similaire à un environnement de liste serait mieux.

+0

Comment trouvez-vous des choses comme ça? Vous parcourez 'latex.ltx'? –

+0

Osmose :) Je n'ai pas passé beaucoup de temps à lire le cover-to-cover de source2e, pour ainsi dire, mais j'ai passé pas mal de temps dans différentes parties de celui-ci. Sinon, passer beaucoup de temps dans des endroits comme comp.tex.text., Où il y a un tas de gens qui utilisent (La) TeX depuis des décennies de plus que moi. –

0

Vous pouvez mettre l'étiquette dans une boîte numérotée, prenez la largeur de cette boîte, et utiliser \hangindent et \hangafter pour faire un paragraphe indenté. pour savoir comment utiliser \setbox , \wd, \hangindent, et \hangafter, la meilleure source est probablement la bouche du cheval: Le TeXbook

+0

Oui, c'est ce que '\ @ hangfrom' fait en interne :) –

+0

@Will: Vous êtes un maître LaTeX, et je suis un tel dinosaure ... –

+0

Je dirais qu'il est plus important de savoir comment le faire! Mais pour une question comme celle-ci, il est utile de connaître un raccourci. P.S. Un jour, je peux vous solliciter pour l'expertise noweb :) –