summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-06-16 21:22:36 +0000
committerKarl Berry <karl@freefriends.org>2015-06-16 21:22:36 +0000
commit21fc82e7b49584f4d7cb67b8f88a28f6f49634aa (patch)
treeff30f141b62dc98508135eb57c05f627058d7506 /Master/texmf-dist/tex
parent5ab17f932f63c1c6cded36de80cf157042a05d5d (diff)
l3experimental (1jun15)
git-svn-id: svn://tug.org/texlive/trunk@37574 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty401
1 files changed, 200 insertions, 201 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index 3da7fd80bfc..b18798c22a8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -14,7 +14,7 @@
%% Do not distribute a modified version of this file.
%%
%% File: l3galley.dtx Copyright (C) 1999-2001, 2004-2009 Frank Mittelbach
-%% (C) 2010-2014 The LaTeX3 Project
+%% (C) 2010-2015 The LaTeX3 Project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -60,15 +60,17 @@
}%
\endinput
}
-\GetIdInfo$Id: l3galley.dtx 5437 2014-10-17 12:24:43Z joseph $
+\GetIdInfo$Id: l3galley.dtx 5624 2015-05-31 19:22:46Z joseph $
{L3 Experimental galley code}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\cs_generate_variant:Nn \seq_map_function:NN { Nc }
\int_new:N \l__galley_tmp_int
-\seq_new:N \l__galley_tmpa_seq
-\seq_new:N \l__galley_tmpb_seq
+\seq_new:N \g__galley_tmpa_seq
+\seq_new:N \g__galley_tmpb_seq
+\seq_new:N \l__galley_tmp_seq
\tl_new:N \l__galley_tmp_tl
+\seq_new:N \l__galley_cutout_left_indent_seq
+\seq_new:N \l__galley_cutout_right_indent_seq
\bool_new:N \l__galley_parshape_multipar_bool
\seq_new:N \l__galley_parshape_left_indent_seq
\seq_new:N \l__galley_parshape_right_indent_seq
@@ -129,6 +131,9 @@
\__galley_initialise_variables:
\cs_new_protected_nopar:Npn \__galley_initialise_settings:
{
+ \bool_set_true:N \l__galley_parshape_multipar_bool
+ \seq_clear:N \l__galley_parshape_left_indent_seq
+ \seq_clear:N \l__galley_parshape_right_indent_seq
\dim_set_eq:NN \l_galley_text_width_dim \l_galley_width_dim
\dim_zero:N \l_galley_total_left_margin_dim
\dim_zero:N \l_galley_total_right_margin_dim
@@ -243,18 +248,50 @@
}
{
\g_galley_par_end_hook_tl
+ \__galley_par_set_cutout:
\group_begin:
\tex_par:D
\group_end:
\int_gset:Nn \g_galley_previous_par_lines_int
{ \tex_prevgraf:D + \g__galley_current_par_lines_int }
- \__galley_parshape_reset:
\int_gzero:N \g__galley_current_par_lines_int
+ \bool_if:NF \l__galley_parshape_multipar_bool
+ {
+ \seq_clear:N \l__galley_parshape_left_indent_seq
+ \seq_clear:N \l__galley_parshape_right_indent_seq
+ \bool_set_true:N \l__galley_parshape_multipar_bool
+ \__galley_parshape_set:
+ }
+ \__galley_par_update_cutout:
}
\g_galley_par_reset_hook_tl
\tl_gclear:N \g_galley_par_reset_hook_tl
\tex_penalty:D \c_ten_thousand
}
+\cs_new_protected_nopar:Npn \__galley_par_set_cutout:
+ {
+ \bool_if:nF
+ {
+ \seq_if_empty_p:N \g__galley_cutout_left_seq
+ && \seq_if_empty_p:N \g__galley_cutout_right_seq
+ }
+ { \__galley_parshape_set: }
+ }
+\cs_new_protected_nopar:Npn \__galley_par_update_cutout:
+ {
+ \bool_if:nF
+ {
+ \seq_if_empty_p:N \g__galley_cutout_left_seq
+ && \seq_if_empty_p:N \g__galley_cutout_right_seq
+ }
+ {
+ \prg_replicate:nn \tex_prevgraf:D
+ {
+ \seq_gpop_left:NN \g__galley_cutout_left_seq \l__galley_tmp_tl
+ \seq_gpop_left:NN \g__galley_cutout_right_seq \l__galley_tmp_tl
+ }
+ }
+ }
\cs_new_protected:Npn \galley_par:n #1
{
\s__par_omit
@@ -328,10 +365,13 @@
\__galley_display_vspace:N \l_galley_display_end_par_vspace_tl
}
{
+ \__galley_par_set_cutout:
\group_begin:
\tex_par:D
\group_end:
\int_gadd:Nn \g__galley_current_par_lines_int \tex_prevgraf:D
+ \bool_set_false:N \l__galley_tmp_bool
+ \__galley_par_update_cutout:
\__galley_display_penalty:N \l_galley_display_end_penalty_tl
\__galley_display_vspace:N \l_galley_display_end_vspace_tl
}
@@ -427,7 +467,6 @@
\dim_new:N \l__galley_total_right_margin_dim
\cs_new_protected:Npn \galley_margins_set_absolute:nn #1#2
{
- \__galley_save_margins:
\dim_set:Nn \l_galley_total_left_margin_dim {#1}
\dim_set:Nn \l_galley_total_right_margin_dim {#2}
\dim_set:Nn \l_galley_text_width_dim
@@ -436,11 +475,10 @@
- \l_galley_total_left_margin_dim
- \l_galley_total_right_margin_dim
}
- \__galley_set_measure:
+ \__galley_parshape_set:
}
\cs_new_protected:Npn \galley_margins_set_relative:nn #1#2
{
- \__galley_save_margins:
\dim_add:Nn \l_galley_total_left_margin_dim {#1}
\dim_add:Nn \l_galley_total_right_margin_dim {#2}
\dim_set:Nn \l_galley_text_width_dim
@@ -449,74 +487,7 @@
- \l_galley_total_left_margin_dim
- \l_galley_total_right_margin_dim
}
- \__galley_set_measure:
- }
-\cs_new_protected_nopar:Npn \__galley_save_margins:
- {
- \dim_set_eq:NN \l__galley_total_left_margin_dim
- \l_galley_total_left_margin_dim
- \dim_set_eq:NN \l__galley_total_right_margin_dim
- \l_galley_total_right_margin_dim
- }
-\cs_new_protected_nopar:Npn \__galley_set_measure:
- {
- \int_compare:nNnTF \tex_parshape:D = \c_zero
- { \__galley_parshape_measure: }
- {
- \dim_sub:Nn \l__galley_total_left_margin_dim
- \l_galley_total_left_margin_dim
- \dim_sub:Nn \l__galley_total_right_margin_dim
- \l_galley_total_right_margin_dim
- \tex_parshape:D
- \tex_parshape:D
- \int_step_function:nnnN
- \c_one \c_one \tex_parshape:D
- \__galley_set_measure_aux:n
- }
- }
-\cs_new:Npn \__galley_set_measure_aux:n #1
- {
- \__dim_eval:w
- \etex_parshapeindent:D #1 - \l__galley_total_left_margin_dim
- \__dim_eval_end:
- \__dim_eval:w
- \etex_parshapelength:D #1
- + \l__galley_total_left_margin_dim + \l__galley_total_right_margin_dim
- \__dim_eval_end:
- }
-\cs_new_protected_nopar:Npn \__galley_parshape_reset:
- {
- \int_compare:nNnF \tex_parshape:D = \c_zero
- {
- \bool_if:nTF
- {
- \seq_if_empty_p:N \g__galley_cutout_left_seq
- && \seq_if_empty_p:N \g__galley_cutout_right_seq
- }
- {
- \bool_if:NF \l__galley_parshape_multipar_bool
- { \__galley_parshape_measure: }
- }
- {
- \prg_replicate:nn \g_galley_previous_par_lines_int
- {
- \seq_gpop:NN \g__galley_cutout_left_seq \l__galley_tmp_tl
- \seq_gpop:NN \g__galley_cutout_right_seq \l__galley_tmp_tl
- }
- \bool_if:NTF \l__galley_parshape_multipar_bool
- { \__galley_parshape_set: }
- { \__galley_parshape_measure: }
- \__galley_cutout_set:Nn \g__galley_cutout_left_seq { left }
- \__galley_cutout_set:Nn \g__galley_cutout_right_seq { right }
- }
- }
- }
-\cs_new_protected_nopar:Npn \__galley_parshape_measure:
- {
- \tex_parshape:D
- \c_one
- \l_galley_total_left_margin_dim
- \l_galley_text_width_dim
+ \__galley_parshape_set:
}
\cs_new_protected_nopar:Npn \galley_parshape_set_multi:nnnN
{
@@ -536,159 +507,173 @@
\seq_set_from_clist:Nn \l__galley_parshape_right_indent_seq {#3}
\prg_replicate:nn {#1}
{
- \seq_put_left:Nn \l__galley_parshape_left_indent_seq { 0 pt }
- \seq_put_left:Nn \l__galley_parshape_right_indent_seq { 0 pt }
+ \seq_put_left:Nn \l__galley_parshape_left_indent_seq { 0pt }
+ \seq_put_left:Nn \l__galley_parshape_right_indent_seq { 0pt }
}
\bool_if:NT #4
{
- \seq_put_right:Nn \l__galley_parshape_left_indent_seq { 0 pt }
- \seq_put_right:Nn \l__galley_parshape_right_indent_seq { 0 pt }
+ \seq_put_right:Nn \l__galley_parshape_left_indent_seq { 0pt }
+ \seq_put_right:Nn \l__galley_parshape_right_indent_seq { 0pt }
}
\__galley_parshape_set:
}
-\cs_new_protected_nopar:Npn \__galley_parshape_set:
- {
- \tex_parshape:D
- \__int_eval:w
- \int_min:nn
- { \seq_count:N \l__galley_parshape_left_indent_seq }
- { \seq_count:N \l__galley_parshape_right_indent_seq }
- \__int_eval_end:
- \seq_mapthread_function:NNN
- \l__galley_parshape_left_indent_seq
- \l__galley_parshape_right_indent_seq
- \__galley_parshape_set:nn
- }
-\cs_new:Npn \__galley_parshape_set:nn #1#2
- {
- \__dim_eval:w \l_galley_total_left_margin_dim + ( #1 ) \__dim_eval_end:
- \__dim_eval:w
- \l_galley_text_width_dim - ( ( #1 ) + ( #2 ) )
- \__dim_eval_end:
- }
\cs_new_protected_nopar:Npn \galley_cutout_left:nn
{ \__galley_cutout:nnn { left } }
\cs_new_protected_nopar:Npn \galley_cutout_right:nn
{ \__galley_cutout:nnn { right } }
\cs_new_protected:Npn \__galley_cutout:nnn #1#2#3
{
- \seq_set_from_clist:Nn \l__galley_tmpa_seq {#3}
+ \seq_gset_from_clist:Nn \g__galley_tmpa_seq {#3}
\prg_replicate:nn {#2}
- { \seq_put_left:Nn \l__galley_tmpa_seq { 0 pt } }
- \__galley_cutout_set:Nn \l__galley_tmpa_seq {#1}
- \seq_clear:N \l__galley_tmpb_seq
- \int_compare:nNnTF
- { \seq_count:N \l__galley_tmpa_seq } >
- { \seq_count:c { g__galley_cutout_ #1 _ seq } }
- {
- \seq_map_inline:Nn \l__galley_tmpa_seq
- {
- \__galley_cutout_store:nn
- { \seq_gpop:cNF { g__galley_cutout_ #1 _ seq } }
- {##1}
- }
+ { \seq_gput_left:Nn \g__galley_tmpa_seq { 0pt } }
+ \seq_if_empty:cTF { g__galley_cutout_ #1 _seq }
+ { \seq_gset_eq:cN { g__galley_cutout_ #1 _seq } \g__galley_tmpa_seq }
+ {
+ \int_compare:nNnTF
+ { \seq_count:c { g__galley_cutout_ #1 _seq } } >
+ { \seq_count:N \g__galley_tmpa_seq }
+ { \__galley_cutout:cN { g__galley_cutout_ #1 _seq } \g__galley_tmpa_seq }
+ { \__galley_cutout:Nc \g__galley_tmpa_seq { g__galley_cutout_ #1 _seq } }
+ \seq_gset_eq:cN { g__galley_cutout_ #1 _seq } \l__galley_tmp_seq
}
+ }
+\cs_new_protected:Npn \__galley_cutout:NN #1#2
+ {
+ \seq_clear:N \l__galley_tmp_seq
+ \seq_map_inline:Nn #1
{
- \seq_map_inline:cn { g__galley_cutout_ #1 _ seq }
- {
- \__galley_cutout_store:nn
- { \seq_pop:NNF \l__galley_tmpa_seq }
- {##1}
- }
+ \seq_gpop_left:NNF #2 \l__galley_tmp_tl
+ { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
+ \seq_put_right:Nx \l__galley_tmp_seq
+ { \dim_eval:n { ##1 + \l__galley_tmp_tl } }
}
- \seq_gset_eq:cN { g__galley_cutout_ #1 _ seq } \l__galley_tmpb_seq
}
-\cs_new_protected:Npn \__galley_cutout_store:nn #1#2
+\cs_generate_variant:Nn \__galley_cutout:NN { c , Nc }
+\cs_new_protected_nopar:Npn \__galley_parshape_set:
{
- #1 \l__galley_tmp_tl
- { \tl_set:Nn \l__galley_tmp_tl { 0 pt } }
- \seq_put_right:Nx \l__galley_tmpb_seq
- { \dim_eval:n { \l__galley_tmp_tl + #2 } }
+ \__galley_parshape_set_margins:
+ \__galley_parshape_set_indents:
+ \__galley_parshape_set_cutouts:
+ \tl_set:Nx \l__galley_tmp_tl
+ {
+ \int_use:N \tex_parshape:D
+ \int_step_function:nnnN \c_one \c_one \tex_parshape:D
+ \tmp
+ }
}
-\cs_new_protected:Npn \__galley_cutout_set:Nn #1#2
+ \def\tmp#1{%
+ \c_space_tl
+ \int_use:N \etex_parshapeindent:D #1 \c_space_tl \c_space_tl
+ \int_use:N \etex_parshapelength:D #1 \c_space_tl
+ }
+\cs_new_protected_nopar:Npn \__galley_parshape_set_margins:
{
- \int_zero:N \l__galley_tmp_int
- \tl_clear:N \l__galley_tmp_tl
- \seq_map_function:Nc #1 { __galley_cutout_ #2 :n }
- \int_compare:nNnTF \tex_parshape:D > \l__galley_tmp_int
+ \bool_if:nTF
{
- \int_step_function:nnnN
- { \l__galley_tmp_int + \c_one }
+ \dim_compare_p:nNn \l_galley_total_left_margin_dim = \c_zero_dim
+ && \dim_compare_p:nNn \l_galley_total_right_margin_dim = \c_zero_dim
+ }
+ { \tex_parshape:D \c_zero }
+ {
+ \tex_parshape:D
\c_one
- \tex_parshape:D
- \__galley_cutout_end:n
+ \l_galley_total_left_margin_dim
+ \l_galley_text_width_dim
}
+ }
+\cs_new_protected_nopar:Npn \__galley_parshape_set_indents:
+ {
+ \bool_if:nF
{
- \int_incr:N \l__galley_tmp_int
- \int_compare:nNnTF \tex_parshape:D = \c_zero
- {
- \tl_put_right:Nn \l__galley_tmp_tl
- { \l__galley_total_left_margin_dim \l_galley_text_width_dim }
- }
- {
- \tl_put_right:Nx \l__galley_tmp_tl
- {
- \dim_eval:n { \etex_parshapeindent:D \tex_parshape:D }
- \c_space_tl
- \dim_eval:n { \etex_parshapelength:D \tex_parshape:D }
- \c_space_tl
- }
- }
+ \seq_if_empty_p:N \l__galley_parshape_left_indent_seq
+ && \seq_if_empty_p:N \l__galley_parshape_right_indent_seq
+ }
+ {
+ \__galley_parshape_set_indents:NN
+ \l__galley_parshape_left_indent_seq
+ \l__galley_parshape_right_indent_seq
}
+ }
+\cs_new_protected:Npn \__galley_parshape_set_indents:NN #1#2
+ {
\tex_parshape:D
- \l__galley_tmp_int
- \l__galley_tmp_tl
+ \__int_eval:w
+ \int_min:nn { \seq_count:N #1 } { \seq_count:N #2 }
+ \__int_eval_end:
+ \seq_mapthread_function:NNN #1 #2
+ \__galley_parshape_set_indents:nn
}
-\cs_new_protected:Npn \__galley_cutout_left:n #1
+\cs_new:Npn \__galley_parshape_set_indents:nn #1#2
{
- \int_incr:N \l__galley_tmp_int
- \tl_put_right:Nx \l__galley_tmp_tl
+ \__dim_eval:w \l_galley_total_left_margin_dim + ( #1 ) \__dim_eval_end:
+ \__dim_eval:w
+ \l_galley_text_width_dim - ( ( #1 ) + ( #2 ) )
+ \__dim_eval_end:
+ }
+\cs_new_protected_nopar:Npn \__galley_parshape_set_cutouts:
+ {
+ \bool_if:nF
{
- \int_compare:nNnTF \l__galley_tmp_int > \tex_parshape:D
- {
- \dim_eval:n { \l__galley_total_left_margin_dim + ( #1 ) }
- \c_space_tl
- \dim_eval:n { \l_galley_text_width_dim - ( #1 ) }
- \c_space_tl
- }
+ \seq_if_empty_p:N \g__galley_cutout_left_seq
+ && \seq_if_empty_p:N \g__galley_cutout_right_seq
+ }
+ {
+ \__galley_parshape_set_cutouts:n { left }
+ \__galley_parshape_set_cutouts:n { right }
+ \int_set:Nn \l__galley_tmp_int
{
- \dim_eval:n { \etex_parshapeindent:D \l__galley_tmp_int + ( #1 ) }
- \c_space_tl
- \dim_eval:n { \etex_parshapelength:D \l__galley_tmp_int - ( #1 ) }
- \c_space_tl
+ \seq_count:N \l__galley_cutout_left_indent_seq
+ - \seq_count:N \l__galley_cutout_right_indent_seq
}
+ \int_compare:nNnTF \l__galley_tmp_int > \c_zero
+ { \__galley_parshape_set_cutouts:N \l__galley_cutout_right_indent_seq }
+ { \__galley_parshape_set_cutouts:N \l__galley_cutout_left_indent_seq }
+ \__galley_parshape_set_indents:NN
+ \l__galley_cutout_left_indent_seq
+ \l__galley_cutout_right_indent_seq
}
}
-\cs_new_protected:Npn \__galley_cutout_right:n #1
+\cs_new_protected:Npn \__galley_parshape_set_cutouts:n #1
{
- \int_incr:N \l__galley_tmp_int
- \tl_put_right:Nx \l__galley_tmp_tl
+ \seq_if_empty:cTF { g__galley_cutout_ #1 _seq }
{
- \int_compare:nNnTF \l__galley_tmp_int > \tex_parshape:D
+ \seq_set_eq:cc { l__galley_cutout_ #1 _indent_seq }
+ { l__galley_parshape_ #1 _indent_seq }
+ }
+ {
+ \seq_gset_eq:Nc \g__galley_tmpa_seq { g__galley_cutout_ #1 _seq }
+ \seq_gset_eq:Nc \g__galley_tmpb_seq { l__galley_parshape_ #1 _indent_seq }
+ \tl_set:Nx \l__galley_tmp_tl
{
- \dim_use:N \l__galley_total_left_margin_dim
- \c_space_tl
- \dim_eval:n { \l_galley_text_width_dim - ( #1 ) }
- \c_space_tl
+ \seq_item:Nn \g__galley_tmpb_seq
+ { \seq_count:N \g__galley_tmpb_seq }
}
+ \tl_if_empty:NT \l__galley_tmp_tl
+ { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
+ \int_set:Nn \l__galley_tmp_int
{
- \dim_eval:n { \etex_parshapeindent:D \l__galley_tmp_int }
- \c_space_tl
- \dim_eval:n { \etex_parshapelength:D \l__galley_tmp_int - ( #1 ) }
- \c_space_tl
+ \seq_count:N \g__galley_tmpa_seq
+ - \seq_count:N \g__galley_tmpb_seq
+ + \c_one
+ }
+ \int_compare:nNnT \l__galley_tmp_int > \c_zero
+ {
+ \prg_replicate:nn
+ { \l__galley_tmp_int }
+ { \seq_gput_right:NV \g__galley_tmpb_seq \l__galley_tmp_tl }
}
+ \__galley_cutout:NN \g__galley_tmpb_seq \g__galley_tmpa_seq
+ \seq_set_eq:cN { l__galley_cutout_ #1 _indent_seq } \l__galley_tmp_seq
}
}
-\cs_new_protected:Npn \__galley_cutout_end:n #1
+\cs_new_protected:Npn \__galley_parshape_set_cutouts:N #1
{
- \int_incr:N \l__galley_tmp_int
- \tl_put_right:Nx \l__galley_tmp_tl
- {
- \dim_eval:n { \etex_parshapeindent:D #1 }
- \c_space_tl
- \dim_eval:n { \etex_parshapelength:D #1 }
- \c_space_tl
- }
+ \tl_set:Nx \l__galley_tmp_tl
+ { \seq_item:Nn #1 { \seq_count:N #1 } }
+ \tl_if_empty:NT \l__galley_tmp_tl
+ { \tl_set:Nn \l__galley_tmp_tl { 0pt } }
+ \prg_replicate:nn { \int_abs:n \l__galley_tmp_int }
+ { \seq_put_right:NV #1 \l__galley_tmp_tl }
}
\cs_new_protected:Npn \galley_penalty_set_single:n #1
{ \tl_gset:Nx \g__galley_interpar_penalty_user_tl { \int_eval:n {#1} } }
@@ -908,7 +893,7 @@
{ \int_use:N \etex_interlinepenalties:D \etex_interlinepenalties:D \c_zero }
\__msg_kernel_new:nnn { galley } { no-line-to-end }
{ There's~no~line~here~to~end. }
-\RenewDocumentCommand \clearpage { }
+\cs_set_nopar:Npn \clearpage
{
\mode_if_vertical:T
{
@@ -924,25 +909,39 @@
\tex_vbox:D { }
\galley_penalty_set_single:n { -\@Mi }
}
-\RenewDocumentCommand \nobreak { }
+\cs_set_nopar:Npn \nobreak
{ \bool_gset_true:N \g_galley_no_break_next_bool }
-\RenewDocumentCommand \noindent { }
+\cs_set_protected_nopar:Npn \noindent
{
\tex_noindent:D
\bool_gset_false:N \g_galley_omit_next_indent_bool
}
-\RenewDocumentCommand \vspace { s m }
+\DeclareRobustCommand \vspace
+ {
+ \@ifstar
+ \@vspace
+ \@vspace
+ }
+\cs_set:Npn \@vspace #1 { \galley_vspace_set_single:n {#1} }
+\DeclareRobustCommand \\
+ {
+ \@ifstar
+ { \cs_set_eq:NN \reserved@e \c_true_bool }
+ { \cs_set_eq:NN \reserved@e \c_false_bool }
+ \@xnewline
+ }
+\cs_set:Npn \@xnewline
{
- \IfBooleanTF #1
- { \galley_vspace_set_single:n {#2} }
- { \galley_vspace_set_single:n {#2} }
+ \@ifnextchar [ % ]
+ { \@newline }
+ { \@newline [ 0pt ] }
}
-\RenewDocumentCommand \\ { s O { 0 pt } }
- { \galley_break_line:Nn #1 {#2} }
-\RenewDocumentCommand \newline { }
- { \galley_break_line:Nn \c_true_bool { 0 pt } }
+\cs_set:Npn \@newline [ #1 ]
+ { \galley_break_line:Nn \reserved@e {#1} }
+\DeclareRobustCommand \newline
+ { \galley_break_line:Nn \c_true_bool { 0pt } }
\cs_set_eq:cN { @ @ par } \galley_par:
-\cs_set_protected_nopar:Npn \@afterheading
+\cs_set_nopar:Npn \@afterheading
{
\bool_gset_true:N \g_galley_no_break_next_bool
\if@afterindent
@@ -950,7 +949,7 @@
\bool_gset_true:N \g_galley_omit_next_indent_bool
\fi
}
-\cs_set_protected:Npn \@hangfrom #1
+\cs_set:Npn \@hangfrom #1
{
\bool_gset_true:N \g_galley_omit_next_indent_bool
\leavevmode