Changes in version 0.5.12 (2025-12-08) - Added "default" format label which behaves like "xx" in format_value but indicates formatting behavior can be inherited from parent structures in upstream code. - round_type = "sas" no longer displays a negative sign when negative values are rounded to zero. - Added new round_type, "iec_mod". Provides IEC style rounding but will not display negative sign when rounding to zero. - New exported valid_round_type object for use as default value/with match.arg in upstream packages. - New obj_round_type and obj_round_type<- generics for objects which carry around a round_type. - Updated default round type value to retrieve the object's round type for all generics and relevant methods which accept round_type. Changes in version 0.5.11 (2025-04-09) - Fixed a bug in mform_handle_newlines that caused string matrix column names to be removed. This prevented paginated listing key column info from being repeated when vertically spanning multiple pages. - Fixed a minor bug with the paginate argument in the export_as_rtf function. - Added round_type argument to indicate IEC (default) or SAS (nearest value, 5 goes up) rounding to all formatting machinery. - Added support for new 2- and 3-d formats. Changes in version 0.5.10 (2025-01-08) - Fixed a bug in mf_update_cinfo causing an error when export_as_txt was applied to empty listings. - Fixed a bug in mform_handle_newlines that did not allow printing to console a table that has top left information, new lines in the column names and contained only one row. - Fixed a bug in mform_handle_newlines that did not allow for empty strings to be present in top left information. - Fixed a bug with top left information not being printed when more lines are present than header lines. Changes in version 0.5.9 (2024-09-12) - Fixed bug in format_value that caused multiple NA values to be associated with the wrong na_str values. Changes in version 0.5.8 (2024-06-19) - Added TrueType font support to pagination and word-wrapping machinery by @gmbecker. - Fixed a bug where col_gap was not correctly taken into account during horizontal pagination (#249) by @gmbecker. - Improved clarity of error messages returned by format_value. Changes in version 0.5.7 - Added lifecycle badge files for documentation. - Fixed a bug causing recursive appending of page number text during pagination. - Deprecated width, height and fontsize arguments of export_as_pdf() using lifecycle package. Changes in version 0.5.6 (2024-04-15) - Added "N=xx" format and unit test for it. - Added error catch for \r recursive special character. - Fixed pagination unexpected counts for rlistings' pagination by removing the manual subsetting workaround and fixing insightsengineering/rlistings#155. - Fixed mismatch between pagination and exports regarding the value assigned to parameter max_width. Introduced general handler .handle_max_width for pagination, exports, and toString. - Fixed bug in format_value causing a warning for vectors containing both NA and non-NA values. - Fixed issue with var_label assignment that needed to be of non-named strings. - Included indentation and split rows with their LabelRow assignment in basic_matrix_form. - Allowed tables with content rows in the end be exported. - Moved new line expansion for decorations from rtables' matrix_form to formatters' constructor MatrixPrintForm so to cover also rlistings. - Improved relevant information feedback during pagination. - Updated export_as_txt to allow lists of tables/listings as input. This enables listing pagination with pages by parameter. - Removed the possibility of setting min_siblings > 0 when dealing with listings. This allows smooth pagination when there are only 2 lines. - Removed redundant references to matrix_print_form constructor (now only MatrixPrintForm). Changes in version 0.5.5 (2023-12-06) - Applied styler and resolved package lint. Changed default indentation from 4 spaces to 2. - Added the possibility of setting a general default using set_default_hsep() that sets up the option getOption("formatters_default_hsep"). - Allowed section divider between header and table body. - Added support for combining duplicate referential footnotes. - Migrated export_as_pdf from rtables. Now using paginate_to_mpfs function. Made font_lcpi function internal. - Fixed wrapping and section dividers error. - Fixed infinite loop in wrap_string that was caused by a bug in stringi::stri_wrap not wrapping small strings with dots and spaces correctly. Changes in version 0.5.4 - Fixed a bug in paginate_to_mpfs() so that formatting in listings key columns is retained with pagination insightsengineering/rlistings#155. - Improved error message for pagination when cpp or lpp is too small in comparison to the column or row widths. - Added full support of newline characters in any part of rtables objects. - Modified default vertical alignment for top left information to bottom. - Rework of wrap_string so to allow space characters to be used and wrapped. Changes in version 0.5.3 - Decimal alignment now throws informative error if scientific notation is used. - Specified minimal version of package dependencies. - Updated hex sticker logo. Changes in version 0.5.2 (2023-08-25) - paginate_to_mpfs can handle single column tables and listings. - Added decimal alignment support with decimal, dec_right, and dec_left. - Updated export_as_txt to pass rep_cols argument to pagination function. - Added list_valid_aligns() that lists the available alignments. - Set default values for na_str and align to NULL in the format configuration function fmt_config. - Fixed a bug that threw warning when prov_footer length is greater than 1 insightsengineering/rtables#705. Changes in version 0.5.1 - Updated export_as_txt to print split label when using page_by with only one level. - Reduced the amount of spelling issues. - New generic getter and setter for align (obj_align and obj_align<-). - New fmt_config class to bundle together format, na_str, and align instructions. - Reverting default for alignment (from NULL to center) and na_str from NULL to "NA". This affects only rlistings, where the new default takes effect. Changes in version 0.5.0 (2023-05-25) - Fix bug in MPF pagination (and thus export_as_txt) when column labels had newlines (#150, insightsengineering/rtables#634) - font_size is now 8 consistently across the pagination machinery. - When specified, margins are in inches (including the default). - Fix off-by-one error in pagination machinery for certain cases. - Refined informative messages when pagination is verbose (verbose = TRUE). - Referential footnotes with specified (non-number) symbols are now printed once per page regardless of the number of elements on the page they refer to. - New export_as_txt function operates now on any object with an applicable matrix_form method (including pagination). - New paginate_indices and paginate_to_mpfs functions. - New diagnose_pagination function accepts the same arguments as paginate_to_mpfs and returns information about the pagination algorithm outcome at both row and column positions. - MatrixPrintForm objects now pay closer attention to referential footnote information than they did in the past. - MatrixPrintForm objects infer detailed referential footnote information from their strings element for backward compatibility. - Fix to test that failed on old Windows CRAN machine due to imperfect UTF support there. - If lpp and cpp in pagination or exporter functions are assigned to NULL, no pagination in the vertical or horizontal direction happens, respectively. - The new default of NA_integer_ for lpp and cpp now means those values should be inferred from page size. - Added hexSticker logo. Changes in version 0.4.0 (2023-03-02) - Cell values and row labels are now word-wrapped based on column widths (widths in toString and colwidths in pagination and exporters. - New "N=xx (xx%)" format support (https://github.com/insightsengineering/rtables/issues/516). - New generic getter and setter for na-string (obj_na_str and obj_na_str<-, migrated from rtables). - MatrixPrintForm class now carries around has_topleft information explicitly, getter mf_has_topleft. - Number of header lines in a MatrixPrintForm object (mf_nlheader) is now a computed attribute rather than a stored one, mf_nlheader<- has been removed. - New MatrixPrintForm accessor: mpf_has_rlabels determines whether the MPF$strings has a column which are label rows (i.e. no column index in originating object). - wrap_text and wrap_string now accept the hard argument (default FALSE) indicating whether 'hard' word-wrapping (i.e. explicit embedding of newline characters) should be performed. - vert_pag_indices now accepts rep_cols to control how many columns act as 'row-label-like', as required by rlistings. - Documentation of pagination algorithm greatly expanded. - Pagination with verbose = TRUE is now significantly more informative. - fix bug where indenting was not correct when row-labels were word wrapped (#84, #85). - fix bug where portions of table after last section div (e.g., non-nested further analyses) were omitted (#77). - fix bug in mf_rinfo<- checked the new value against the wrong dimensions. - Fixed off-by-one error in basic pagination machinery. - Fix bug in position of header separator when columns have word wrapping (#68). - Bug rendering mf_lgrouping non-functional has been fixed. Changes in version 0.3.4 - nlines now accepts both colwidths and max_width, defaulting to NULL for both - pag_indices_inner, find_pag and valid_pag now accept have_col_fnotes and div_height arguments - fix bug which lead to insightsengineering/rtables#414 (nlines("", ) threw an error - paginate related generics now accept max_width for use in ensuring pagination now takes word wrapping into account for titles and footers. - nlines character method has changed, not takes the sum of the nlines of its elements instead of the max in the case of a vector of length > 1 - new wrap_title_footer function for use on everything which implements the generic interface we design. - export new page_dim function which returns values of page dims for a named type. - tf_wrap functionality now breaks up words that are too large with respect to surrounding word wrapping. - tf_wrap behavior no longer emits a warning when breaking up 'words' larger than max_width - tf_wrap max_width = "auto" now sets the max_width to sum(widths) + table_inset(x) instead of sum(widths) - Experimental tf_wrap functionality added to toString MatrixPrintForm method - MatrixPrintForm class now includes a table_inset element - Add table_inset and table_inset<- generics now exported - toString now respects table_inset values set on a MatrixPrintForm object - Use exact=TRUE for all calls to attr in accessor functions. - length-zero values of na_str are now silently interpreted as the default value ("NA"), as are any missing values in na_str of length > 0. - adding wrapping of titles, subtitles, and footers. - page_lcpp function now provided to map page size and font combinations to lines and characters per page. - getters and setters for the components of MatrixPrintForm objects are now exported (i.e., mf_spans and friends). - na_str can now be length >1, and is matched in position to NAs in that case. - format_value now returns solely the na_str value when all-NA values are formatted with certain formats (currently"(N=xx)", ">999.9", ">999.99", "x.xxxx | (<0.0001)") Changes in version 0.3.3 - vert_pag_indices now accepts colwidths argument Changes in version 0.3.2.5 - label_vars<- now correctly adheres to names of value, even in different order than names(x). Fixes insightsengineering/rlistings#8 Changes in version 0.3.2.4 - vert_pag_indices now accepts colwidths argument Changes in version 0.3.2.3 - fix regression caused by 0.3.2.2 in vert_pag_indices when obj is not a MatrixPrintForm object Changes in version 0.3.2.2 - Added support for trailing_sep column to row_info data.frames (e.g, pagdfrow constructor) - trailing_sep info now used in both printing and pagination - col_gap is now an element of MatrixPrintForm objects - vert_pag_indices fixed to correctly take gap between printed columns into account Changes in version 0.3.2.1 - calling var_labels on a data.frame with no columns is no longer an error (insightsengineering/rtables#224) Changes in version 0.3.2 (2022-06-09) - Change warning when non-UTF line separator default is used to message, and displays it only during interactive sessions (once per session). Changes in version 0.3.1 (2022-05-20) - Released on CRAN Changes in version 0.3.0 - add exported default_hsep function for use her and in reverse-dependencies (incl rtables) - format_value now respects na_str even when format is xx (previously it returned "NA" always) - rename linesep argument to hsep in toString generic signature - add indent_size argument to matrix_form generic signature - add a number of "__ (__)" (no pct) formats in response to #23 - Switch to testthat as testing framework Changes in version 0.2.0 (2022-03-29) - Updated Documentation - Released on CRAN Changes in version 0.1.0.0003 - Fix regression in support for new lines in columns in rtables Changes in version 0.1.0.0002 - Add formats argument to matrix_form informal class/constructor for use in rtables::table_shell