Stále se setkávám s problémem, kdy při psaní textů ve Wordu někdy vyjde předložka nebo jednopísmenná spojka na konci řádku. Pokud vám záleží na tom, aby na konci řádku nebyla, musí se posunout na další řádek, ale nikolik mezerníkem ani enterem! Jak to udělat správně, bez rozhození odstavců, se dočtete v tomto článku. Pokud vám návod pomohl, staňte se fanoušky na Facebooku a doporučte tyto stránky vašim známým, může se jim také hodit.

Předložky by se rozhodně neměly zobrazovat na konci řádků. Vždy je proto pojíme se slovem následujícím. Aby byla předložka společně s následujícím slovem, musíme ji z konce řádku posunout. Mnoho lidí se mylně domnívá, že jim k tomu pomůže vícekrát stisknutý mezerník, tabulátor nebo dokonce enter. Ale pozor, např. enter ukončuje odstavec a začíná odstavec nový. Vznikl by tak zcela samostatný kus textu, který by při budoucích úpravách akorát dělal neplechu.

Níže popsané klávesové zkratky fungují ve všech verzích Wordu a i v některých jiných Office aplikacích. Případné příkazy a ikony popisované níže fungují pro verzi 2007 a novější.

Online kurzy Microsoft Office

  1. Pokud je již text ve finální podobě a nebudeme v budoucnu upravovat jeho formát jako např. typ nebo velikost písma, je možné využít tzv. zalomení řádku klávesou Shift+Enter. Umístíme kurzor myši bezprostředně před předložku na konci řádku a stiskneme Shift+Enter. Text za kurzorem se posune na další řádek k následujícímu slovu. Zapneme-li zobrazení skrytých znaků (netisknutelných) volbou na kartě Domů, ikonka řeckého písmene „„, bude se zalomení řádku projevovat jako zalomená šipka na konci řádku. Takto můžeme v budoucnu zjistit, kde jsme zalomení řádku vložili a případně ho vymazat.
  2. Druhý postup, ten nejlepší, je tzv. pevná mezera. Tento znak, zapsaný místo původní mezery mezi slovy pomocí kláves Ctrl+Shift+Mezerník, natrvalo spojí tato slova a už nikdy se tato slova nerozdělí koncem řádku – budou tedy vždy společně, a to i po změně formátů písma. Pevnou mezeru Word vkládá automaticky po každé jednopísmenné předložce. Je to zajištěno díky nastavení Automatických oprav. Pevná mezera je v režimu zobrazení netisknutelných znaků rozpoznatelná jako kolečko mezi slovy.

Fungující postup pro nahrazení všech mezer za jednopísmennými slovy (předložky a spojky), je:

  1. otevřít okno nahrazování pomocí Ctrl+H
  2. do pole “Najít” zadat “<(?)> ” (bez uvozovek); kde <(?)> vyhledá právě jedno písmeno a za ním mezeru
  3. do pole “Nahradit čím” zadat “\1^s” (bez uvozovek); kde \1 zastupuje ono hledané písmeno a ^s znak pro pevnou mezeru
  4. stisknout tlačítko “Více” a zaškrtnout políčko “Použít zástupné znaky”
  5. stisknout tlačítko “Nahradit vše”

Máte-li otázky nebo vlastní zkušenosti, napište je do komentářů nebo si vše nechte rovnou vysvětlit na konzultaci.

24 thoughts on “Jak opravit předložky na konci řádku”

  1. Snažil jsem se pomocí Wordu vysázet knihu o rozsahu 150 stran a po hromadné náhradě normálních mezer za pevné za všemi jednopísmennými předložkami obsahovaly některé řádky vizuálně příliš velké mezery. To kvůli tomu, že pevné mezery mají ve Word pevnou šířku. Začal jsem tedy experimentovat a výsledkem je následující makro, které nahradí jen normální mezery jen tam, kde by zůstala předložka na konci řádku.

    Postup použití je následující:
    1) Vložit makro do Wordu.
    2) Nahradit všechny pevné mezery normálními.
    3) Spustit makro – u 150 stránkové knihy to trvá asi 10 minut.

    Kód makra:
    =========
    Sub vlozeniPevnychMezer()
    Application.ScreenUpdating = False
    Dim AscA, AscE, AscI, AscK, AscO, AscS, AscU, AscV, AscZ As Integer
    AscA = Asc(„A“)
    AscE = Asc(„E“)
    AscI = Asc(„I“)
    AscK = Asc(„K“)
    AscO = Asc(„O“)
    AscS = Asc(„S“)
    AscU = Asc(„U“)
    AscV = Asc(„V“)
    AscZ = Asc(„Z“)
    AscSpace = Asc(“ „)

    Dim doc As Document
    Set doc = ActiveDocument

    Dim prevWord As Range
    Set prevWord = doc.Range.Words.First
    Dim prevLine As Integer
    prevLine = prevWord.Information(wdFirstCharacterLineNumber)

    Dim currWord As Range
    For Each currWord In doc.Range.Words
    Dim currLine As Integer
    currLine = currWord.Information(wdFirstCharacterLineNumber)
    If (prevLine currLine) Then
    Dim prevWordChars As Characters
    Set prevWordChars = prevWord.Characters
    If (prevWordChars.Count = 2) Then
    If (Asc(prevWordChars.Last) = AscSpace) Then
    Select Case (Asc(UCase(prevWordChars.First.Text)))
    Case AscA, AscE, AscI, AscK, AscO, AscS, AscU, AscV, AscZ
    prevWordChars.Last.Text = Chr$(160)
    End Select
    End If
    End If
    End If
    prevLine = currLine
    Set prevWord = currWord
    Next

    Application.ScreenUpdating = True
    End Sub

  2. Problém „nejlepšího postupu“ je ten, že ona pevná mezera má fixní šířku, takže když je zvoleno zarovnání do bloku a, tak ona mezera vypadá často nepřirozeně, když je i několikanásobně menší, než mezera obyčejná. Předpokládám, že nejde udělat, aby se i její šířka přizpůsobovala?

  3. Po nekonečném procházení anglického webu mě napadlo vyhledat to česky a ejhle…
    Wow, díky moc za tenhle článek i Adamovi. Funguje to parádně! 🙂 (Jinak to makro mi přijde zbytečné. Postupem, který je zmíněný v článku a upravený Adamem to máte sotva za dvě minuty.)

  4. Provedla jsem vše přesně podle toho tzv. fungujícího postupu pro nahrazení všech mezer za jednopísmennými slovy. Výsledkem toho je, že mám za všemi jednopísmennými předložkami a spojkami mezery dvě, přičemž problém s umístěním na konci řádku to nijak nevyřešilo. Naopak se mi utvořily mezery i za slovy, které na koncích řádků nejsou a nebyly míněny ani jako předložky či spojky (nýbrž třeba citoslovce). Co dělám špatně?

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *