<?xml version="1.0" encoding="UTF-8"?>



<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->




		<helpdocument version="1.0">
<meta>
<topic id="textswriterguideinsert_tab_innumberingxml" indexer="include" status="PUBLISH">
<title id="tit" xml-lang="en-US">Changing the Outline Level of Numbered and Bulleted Lists</title>
<filename>/text/swriter/guide/insert_tab_innumbering.xhp</filename>
</topic>
</meta>
<body>
<bookmark xml-lang="en-US" branch="index" id="bm_id3145078"><bookmark_value>tab stops; inserting in lists</bookmark_value>
<bookmark_value>numbering; changing the level of</bookmark_value>
<bookmark_value>lists;changing levels</bookmark_value>
<bookmark_value>levels;changing outline levels</bookmark_value>
<bookmark_value>bullet lists;changing levels</bookmark_value>
<bookmark_value>lowering outline levels</bookmark_value>
<bookmark_value>rising outline levels</bookmark_value>
<bookmark_value>changing;outline levels</bookmark_value>
</bookmark>
<paragraph role="heading" id="hd_id3145078" xml-lang="en-US" level="1" l10n="U" oldref="6"><variable id="insert_tab_innumbering"><link href="text/swriter/guide/insert_tab_innumbering.xhp" name="Changing the Outline Level of Numbered and Bulleted Lists">Changing the Outline Level of Numbered and Bulleted Lists</link>
</variable></paragraph>
<list type="unordered">
<listitem>
<paragraph role="listitem" id="par_id3155909" xml-lang="en-US" l10n="U" oldref="5">To move a numbered or bulleted paragraph down one outline level, click at the beginning of the paragraph, and then press Tab.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3155859" xml-lang="en-US" l10n="U" oldref="7">To move a numbered or bulleted paragraph up one outline level, click at the beginning of the paragraph, and then press Shift+Tab.</paragraph>
</listitem>
<listitem>
<paragraph role="listitem" id="par_id3153403" xml-lang="en-US" l10n="U" oldref="8">To insert a tab between the number or bullet and the paragraph text, click at the beginning of the paragraph, and then press <switchinline select="sys"><caseinline select="MAC">Command 
</caseinline><defaultinline>Ctrl</defaultinline></switchinline>+Tab.</paragraph>
</listitem>
</list>
<embed href="text/shared/00/00000004.xhp#related"/>
<embed href="text/swriter/guide/chapter_numbering.xhp#chapter_numbering"/>
</body>
</helpdocument>
