summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/embrac
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-13 23:44:35 +0000
committerKarl Berry <karl@freefriends.org>2013-05-13 23:44:35 +0000
commita43dfb3aaf9458a242743878b8ddb3ef995f956d (patch)
tree0877f008c14114d0d7ba5bb05d3ccf31c27db58c /Master/texmf-dist/tex/latex/embrac
parentc0dc062c01f14cacf38aee55437d0b97571c280a (diff)
embrac (13may13)
git-svn-id: svn://tug.org/texlive/trunk@30450 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/embrac')
-rw-r--r--Master/texmf-dist/tex/latex/embrac/embrac.sty237
1 files changed, 188 insertions, 49 deletions
diff --git a/Master/texmf-dist/tex/latex/embrac/embrac.sty b/Master/texmf-dist/tex/latex/embrac/embrac.sty
index 908fa356018..44b18b90da9 100644
--- a/Master/texmf-dist/tex/latex/embrac/embrac.sty
+++ b/Master/texmf-dist/tex/latex/embrac/embrac.sty
@@ -34,10 +34,25 @@
\RequirePackage { expl3 , xparse , l3keys2e }
\ProvidesExplPackage
{embrac}
- {2013/04/04}
- {0.3a}
+ {2013/05/13}
+ {0.4}
{Upright Brackets in Emphasized Text}
+% --------------------------------------------------------------------------
+% check expl3 version:
+\@ifpackagelater { expl3 } { 2012/11/21 }
+ { }
+ {
+ \PackageError { embrac } { Support~package~expl3~too~old }
+ {
+ You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~
+ 'l3packages'.\MessageBreak
+ Loading~embrac~will~abort!
+ }
+ \tex_endinput:D
+ }
+
+% --------------------------------------------------------------------------
\bool_new:N \l__embrac_treat_biblatex_bool
\tl_new:N \l__embrac_tmpa_tl
\tl_new:N \l__embrac_treat_biblatex_tl
@@ -177,22 +192,22 @@
}
% internal \emph command, second layer:
-\cs_new_protected:Npn \__embrac_new_emph:w #1#2
+\cs_new_protected:Npn \__embrac_new_emph:nn #1#2
{
\group_begin:
\__embrac_treat_bibparens:
- \IfBooleanTF { #1 }
+ \tl_if_eq:nnTF { #1 } { * }
{ \__embrac_orig_emph:n { #2 } }
{ \__embrac_emph:n { #2 } }
\group_end:
}
% internal \textit command, second layer:
-\cs_new_protected:Npn \__embrac_new_textit:w #1#2
+\cs_new_protected:Npn \__embrac_new_textit:nn #1#2
{
\group_begin:
\__embrac_treat_bibparens:
- \IfBooleanTF { #1 }
+ \tl_if_eq:nnTF { #1 } { * }
{ \__embrac_orig_textit:n { #2 } }
{ \__embrac_textit:n { #2 } }
\group_end:
@@ -202,11 +217,11 @@
\AtBeginDocument{
\__embrac_if_fontspec:T
{
- \cs_new_protected:Npn \__embrac_new_textsi:w #1#2
+ \cs_new_protected:Npn \__embrac_new_textsi:nn #1#2
{
\group_begin:
\__embrac_treat_bibparens:
- \IfBooleanTF { #1 }
+ \tl_if_eq:nnTF { #1 } { * }
{ \__embrac_orig_textsi:n { #2 } }
{ \__embrac_textsi:n { #2 } }
\group_end:
@@ -216,18 +231,30 @@
% user command \emph:
\RenewDocumentCommand \emph { sm }
- { \__embrac_new_emph:w #1 { #2 } }
+ {
+ \IfBooleanTF { #1 }
+ { \__embrac_new_emph:nn { * } { #2 } }
+ { \__embrac_new_emph:nn { } { #2 } }
+ }
% user command \textit:
\RenewDocumentCommand \textit { sm }
- { \__embrac_new_textit:w #1 { #2 } }
+ {
+ \IfBooleanTF { #1 }
+ { \__embrac_new_textit:nn { * } { #2 } }
+ { \__embrac_new_textit:nn { } { #2 } }
+ }
% user command \textsi:
\AtBeginDocument{
\__embrac_if_fontspec:T
{
\RenewDocumentCommand \textsi { sm }
- { \__embrac_new_textsi:w #1 { #2 } }
+ {
+ \IfBooleanTF { #1 }
+ { \__embrac_new_textsi:nn { * } { #2 } }
+ { \__embrac_new_textsi:nn { } { #2 } }
+ }
}
}
@@ -240,7 +267,7 @@
{ \__embrac_orig_emph:n { ##2 } }
\RenewDocumentCommand \textit { sm }
{ \__embrac_orig_textit:n { ##2 } }
- \cs_if_exist:NT
+ \cs_if_exist:NT \textsi
{
\RenewDocumentCommand \textsi { sm }
{ \__embrac_orig_textsi:n { ##2 } }
@@ -251,20 +278,32 @@
\NewDocumentCommand \EmbracOn {}
{
\RenewDocumentCommand \emph { sm }
- { \__embrac_new_emph:w ##1 { ##2 } }
+ {
+ \IfBooleanTF { ##1 }
+ { \__embrac_new_emph:nn { * } { ##2 } }
+ { \__embrac_new_emph:nn { } { ##2 } }
+ }
\RenewDocumentCommand \textit { sm }
- { \__embrac_new_textit:w ##1 { ##2 } }
- \cs_if_exist:NT
+ {
+ \IfBooleanTF { ##1 }
+ { \__embrac_new_textit:nn { * } { ##2 } }
+ { \__embrac_new_textit:nn { } { ##2 } }
+ }
+ \cs_if_exist:NT \textsi
{
\RenewDocumentCommand \textsi { sm }
- { \__embrac_new_textsi:w ##1 { ##2 } }
+ {
+ \IfBooleanTF { ##1 }
+ { \__embrac_new_textsi:nn { * } { ##2 } }
+ { \__embrac_new_textsi:nn { } { ##2 } }
+ }
}
}
% --------------------------------------------------------------------------
% ADDING AND REMOVING BRACKETS:
-% internal add command:
-\cs_new_protected:Npn \__embrac_add_to_emph:nnnnnn #1#2#3#4#5#6
+% internal add commands:
+\cs_new_protected:Npn \embrac_add_op_to_emph:nnn #1#2#3
{
\__embrac_empty_or_no_value:nTF { #2 }
{ \prop_put_if_new:Nnn \l__embrac_emph_obrackets_prop { #1 } { 0pt } }
@@ -272,25 +311,45 @@
\__embrac_empty_or_no_value:nTF { #3 }
{ \prop_put_if_new:Nnn \l__embrac_emph_obrackets_before_prop { #1 } { 0pt } }
{ \prop_put_if_new:Nnn \l__embrac_emph_obrackets_before_prop { #1 } { #3 } }
- \__embrac_empty_or_no_value:nTF { #5 }
- { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_prop { #4 } { 0pt } }
- { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_prop { #4 } { #5 } }
- \__embrac_empty_or_no_value:nTF { #6 }
- { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_after_prop { #4 } { 0pt } }
- { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_after_prop { #4 } { #6 } }
}
-% internal delete command:
-\cs_new_protected:Npn \__embrac_remove_from_emph:nn #1#2
+\cs_new_protected:Npn \embrac_add_cl_to_emph:nnn #1#2#3
+ {
+ \__embrac_empty_or_no_value:nTF { #2 }
+ { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_prop { #1 } { 0pt } }
+ { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_prop { #1 } { #2 } }
+ \__embrac_empty_or_no_value:nTF { #3 }
+ { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_after_prop { #1 } { 0pt } }
+ { \prop_put_if_new:Nnn \l__embrac_emph_cbrackets_after_prop { #1 } { #3 } }
+ }
+
+\cs_new_protected:Npn \embrac_add_to_emph:nnnnnn #1#2#3#4#5#6
+ {
+ \embrac_add_op_to_emph:nnn { #1 } { #2 } { #3 }
+ \embrac_add_cl_to_emph:nnn { #4 } { #5 } { #6 }
+ }
+
+% internal delete commands:
+\cs_new_protected:Npn \embrac_remove_op_from_emph:n #1
{
\prop_remove:Nn \l__embrac_emph_obrackets_prop { #1 }
\prop_remove:Nn \l__embrac_emph_obrackets_before_prop { #1 }
- \prop_remove:Nn \l__embrac_emph_cbrackets_prop { #2 }
- \prop_remove:Nn \l__embrac_emph_cbrackets_after_prop { #2 }
}
-% internal renew command:
-\cs_new_protected:Npn \__embrac_renew_emph:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \embrac_remove_cl_from_emph:n #1
+ {
+ \prop_remove:Nn \l__embrac_emph_cbrackets_prop { #1 }
+ \prop_remove:Nn \l__embrac_emph_cbrackets_after_prop { #1 }
+ }
+
+\cs_new_protected:Npn \embrac_remove_from_emph:nn #1#2
+ {
+ \embrac_remove_op_from_emph:n { #1 }
+ \embrac_remove_cl_from_emph:n { #2 }
+ }
+
+% internal renew commands:
+\cs_new_protected:Npn \embrac_renew_op_emph:nnn #1#2#3
{
\__embrac_empty_or_no_value:nTF { #2 }
{ \prop_put:Nnn \l__embrac_emph_obrackets_prop { #1 } { 0pt } }
@@ -298,16 +357,26 @@
\__embrac_empty_or_no_value:nTF { #3 }
{ \prop_put:Nnn \l__embrac_emph_obrackets_before_prop { #1 } { 0pt } }
{ \prop_put:Nnn \l__embrac_emph_obrackets_before_prop { #1 } { #3 } }
- \__embrac_empty_or_no_value:nTF { #5 }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #4 } { 0pt } }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #4 } { #5 } }
- \__embrac_empty_or_no_value:nTF { #6 }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #4 } { 0pt } }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #4 } { #6 } }
}
-% internal change command:
-\cs_new_protected:Npn \__embrac_change_emph:nnnnnn #1#2#3#4#5#6
+\cs_new_protected:Npn \embrac_renew_cl_emph:nnn #1#2#3
+ {
+ \__embrac_empty_or_no_value:nTF { #2 }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #1 } { 0pt } }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #1 } { #2 } }
+ \__embrac_empty_or_no_value:nTF { #3 }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #1 } { 0pt } }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #1 } { #3 } }
+ }
+
+\cs_new_protected:Npn \embrac_renew_emph:nnnnnn #1#2#3#4#5#6
+ {
+ \embrac_renew_op_emph:nnn { #1 } { #2 } { #3 }
+ \embrac_renew_cl_emph:nnn { #4 } { #5 } { #6 }
+ }
+
+% internal change commands:
+\cs_new_protected:Npn \embrac_change_op_emph:nnn #1#2#3
{
\prop_if_in:NnT \l__embrac_emph_obrackets_prop { #1 }
{
@@ -316,15 +385,26 @@
\__embrac_empty_or_no_value:nF { #3 }
{ \prop_put:Nnn \l__embrac_emph_obrackets_before_prop { #1 } { #3 } }
}
- \prop_if_in:NnT \l__embrac_emph_cbrackets_prop { #4 }
+ }
+
+\cs_new_protected:Npn \embrac_change_cl_emph:nnn #1#2#3
+ {
+ \prop_if_in:NnT \l__embrac_emph_cbrackets_prop { #1 }
{
- \__embrac_empty_or_no_value:nF { #5 }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #4 } { #5 } }
- \__embrac_empty_or_no_value:nF { #6 }
- { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #4 } { #6 } }
+ \__embrac_empty_or_no_value:nF { #2 }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_prop { #1 } { #2 } }
+ \__embrac_empty_or_no_value:nF { #3 }
+ { \prop_put:Nnn \l__embrac_emph_cbrackets_after_prop { #1 } { #3 } }
}
}
+\cs_new_protected:Npn \embrac_change_emph:nnnnnn #1#2#3#4#5#6
+ {
+ \embrac_change_op_emph:nnn { #1 } { #2 } { #3 }
+ \embrac_change_cl_emph:nnn { #4 } { #5 } { #6 }
+ }
+
+% --------------------------------------------------------------------------
% user commands:
\NewDocumentCommand \AddEmph
{
@@ -332,13 +412,39 @@
m > { \SplitArgument { 1 } { , } } O{,}
}
{
- \__embrac_add_to_emph:nnnnnn { #1 } #2 { #3 } #4
+ \embrac_add_to_emph:nnnnnn { #1 } #2 { #3 } #4
+ \ignorespaces
+ }
+
+\NewDocumentCommand \AddOpEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_add_op_to_emph:nnn { #1 } #2
+ \ignorespaces
+ }
+
+\NewDocumentCommand \AddClEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_add_cl_to_emph:nnn { #1 } #2
\ignorespaces
}
\NewDocumentCommand \DeleteEmph { mm }
{
- \__embrac_remove_from_emph:nn { #1 } { #2 }
+ \embrac_remove_from_emph:nn { #1 } { #2 }
+ \ignorespaces
+ }
+
+\NewDocumentCommand \DeleteOpEmph { mm }
+ {
+ \embrac_remove_op_from_emph:n { #1 }
+ \ignorespaces
+ }
+
+\NewDocumentCommand \DeleteClEmph { mm }
+ {
+ \embrac_remove_cl_from_emph:n { #1 }
\ignorespaces
}
@@ -348,7 +454,21 @@
m > { \SplitArgument { 1 } { , } } O{,}
}
{
- \__embrac_renew_emph:nnnnnn { #1 } #2 { #3 } #4
+ \embrac_renew_emph:nnnnnn { #1 } #2 { #3 } #4
+ \ignorespaces
+ }
+
+\NewDocumentCommand \RenewOpEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_renew_op_emph:nnn { #1 } #2
+ \ignorespaces
+ }
+
+\NewDocumentCommand \RenewClEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_renew_cl_emph:nnn { #1 } #2
\ignorespaces
}
@@ -358,11 +478,26 @@
m > { \SplitArgument { 1 } { , } } O{,}
}
{
- \__embrac_change_emph:nnnnnn { #1 } #2 { #3 } #4
+ \embrac_change_emph:nnnnnn { #1 } #2 { #3 } #4
\ignorespaces
}
-% add some defaults:
+\NewDocumentCommand \ChangeOpEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_change_op_emph:nnn { #1 } #2
+ \ignorespaces
+ }
+
+\NewDocumentCommand \ChangeClEmph
+ { m > { \SplitArgument { 1 } { , } } O{,} }
+ {
+ \embrac_change_cl_emph:nnn { #1 } #2
+ \ignorespaces
+ }
+
+% --------------------------------------------------------------------------
+% add some defaults and finalize package:
\AddEmph{[}{]}[.04em,-.12em]
\AddEmph{(}[-.04em]{)}[,-.15em]
@@ -372,6 +507,7 @@
\tex_endinput:D
+% --------------------------------------------------------------------------
% HISTORY
2012/06/29 - v0.1 - first public release
2012/06/29 - v0.1a - renamed \RenewEmph => \ChangeEmph and added new \RenewEmph
@@ -380,4 +516,7 @@
- changed buggy definition of \EmbracOff and \EmbracOn
2013/03/22 - v0.3 - made definitions robust where appropriate
- added support for `fontspec's \textsi
-2013/04/04 - v0.3a - bug fix in \EmbracOn and \EmbracOff \ No newline at end of file
+2013/04/04 - v0.3a - bug fix in \EmbracOn and \EmbracOff
+2013/05/13 - v0.4 - added versions of \AddEmph, \RenewEmph, \DeleteEmph and
+ \ChangeEmph that allow setting opening or closing parts
+ separately \ No newline at end of file