Related
I am working with Quarto to create a pdf document from rstudio. I use the quarto_titlepages extension to create a title page, which is followed by a text of several pages. The first one of these pages is shown with a very large bottom margin, which is probably a heritage of the title page. However, this only happens with the bottom margin and not with the top one.
I tried re-stablishing the margins in the pdf format section with margin-left, margin-right, margin-bottom and margin-top. Then I tried the same approach but using geometry instead. None of the two options worked.
Here is the code with margin-top and so on.
---
title: "Here we have a title, not too long"
author: "First Author and Second Author"
date: last-modified
date-format: "d-MMMM-YYYY"
lang: "es"
format:
titlepage-pdf:
documentclass: scrreport
titlepage: plain
titlepage-geometry:
- top=90mm
- bottom=60mm
- right=30mm
- left=30mm
titlepage-logo: "images/anyimages.png"
titlepage-bg-image: "images/anyimage2.png"
titlepage-theme:
elements: ["\\titleblock", "\\logoblock", "\\authorblock", "(some additional information)" ]
page-fontfamily: "Helvetica Neue"
page-align: center
title-fontsize: 30
title-align: center
title-fontstyle: []
title-space-after: 3cm
author-fontsize: 16
author-style: plain
logo-align: center
logo-size: 4cm
logo-space-after: 4cm
bg-image-location: "ULCorner"
bg-image-size: 21cm
pdf:
# Fonts
mainfont: Helvetica Neue
fontsize: 12pt
papersize: A4
margin-top: 25mm
margin-bottom: 25mm
margin-left: 25mm
margin-right: 25mm
toc: true
toc-depth: 2
toc-title: Táboa de contidos
editor: visual
---
## Introdución
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec condimentum eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue tellus at vehicula interdum. Vivamus dapibus ante vitae rhoncus posuere. Ut ut ipsum nisl. Nullam luctus viverra augue id feugiat. Fusce sollicitudin sed massa eget blandit. Pellentesque tempus lacinia metus, nec facilisis massa varius eget. Proin in felis sed arcu faucibus scelerisque. Sed hendrerit tortor nisl, sed mattis lectus luctus at. Nulla et lorem ac est venenatis posuere. Vivamus eget vehicula purus, sit amet mollis nunc. Phasellus pellentesque nisi eu porttitor egestas. Aliquam a aliquam lectus, eu iaculis mauris.
Suspendisse eu gravida orci. Suspendisse vehicula sagittis libero quis lobortis. Suspendisse potenti. Sed imperdiet ligula eu tellus tincidunt rutrum. Vivamus vel nibh vel lacus efficitur tempus. Maecenas sit amet erat at sapien blandit congue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vel nunc hendrerit, venenatis sapien nec, commodo libero. Ut vehicula porta euismod. Vivamus eu dolor neque. Mauris a dui faucibus, elementum dui nec, condimentum nibh.
Etiam aliquam, arcu eget ornare elementum, leo magna sollicitudin augue, vel dapibus lectus nisi ac ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec semper lacus mauris, ac maximus lectus volutpat nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed interdum, velit non sollicitudin volutpat, purus tellus aliquam lacus, et scelerisque ex nisi et ex. Vivamus porta purus ac mauris placerat, venenatis suscipit augue accumsan. Cras consequat dapibus efficitur.
Phasellus diam felis, condimentum vitae diam nec, tincidunt bibendum elit. Donec condimentum, orci in euismod vestibulum, sapien massa maximus lectus, vel interdum magna magna non lectus. Integer vitae nunc nec urna feugiat venenatis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent sapien velit, molestie nec molestie vel, sodales at mauris. Maecenas accumsan malesuada ipsum eget pellentesque. Nam aliquet leo sit amet felis facilisis facilisis. Vivamus aliquam iaculis eros, non bibendum elit convallis ut. Quisque ut varius arcu. Vivamus pellentesque nisi vitae nisi vulputate, quis dapibus est efficitur. Aenean eget ipsum in lorem aliquet efficitur aliquet a est. In sit amet vehicula eros. Donec dui nulla, ultrices ut nisi non, ornare viverra ante.
Proin facilisis sit amet velit placerat porttitor. In congue risus id tempus congue. Cras rutrum justo at ultricies faucibus. Ut sed turpis nec nulla malesuada feugiat sed eu risus. In mattis eu tellus sit amet commodo. Nam molestie vulputate ullamcorper. Curabitur egestas ligula ut urna blandit faucibus.
And this is what I get in the two pages after the title page
UPDATE
I solved it partially, by following samcarter_is_at_topanswers.xyz's advice (using \restoregeometry). Then I realized that it was not only geometry, but I was also losing all other formats detailed under pdf:. To solve it I erased the pdf: line; that is, all pdf formats should directly go under "titlepage-pdf:". But, again, by doing so, the first page appeard with a large bottom margin, even when using \restoregeometry.
This is my code now:
---
title: "Here we have a title"
author: "Author 1 with surname & Author 2 with surname"
date: last-modified
date-format: "d-MMMM-YYYY"
lang: "es"
format:
titlepage-pdf:
documentclass: scrreport
titlepage: plain
titlepage-geometry:
- top=90mm
- bottom=60mm
- right=30mm
- left=30mm
titlepage-logo: "images/circularNegro.png"
titlepage-bg-image: "images/OsTres.png"
titlepage-theme:
elements: ["\\titleblock", "\\logoblock", "\\authorblock", "(some additional text)" ]
page-fontfamily: "Helvetica Neue"
page-align: center
title-fontsize: 30
title-align: center
title-fontstyle: []
title-space-after: 3cm
author-fontsize: 16
author-style: plain
logo-align: center
logo-size: 4cm
logo-space-after: 4cm
bg-image-location: "ULCorner"
bg-image-size: 21cm
# Fonts
mainfont: Helvetica Neue
fontsize: 12pt
papersize: A4
margin-top: 25mm
margin-bottom: 25mm
margin-left: 25mm
margin-right: 25mm
toc: true
toc-depth: 2
toc-title: Táboa de contidos
editor: visual
---
\restoregeometry
## Introdución
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec condimentum eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue tellus at vehicula interdum. Vivamus dapibus ante vitae rhoncus posuere. Ut ut ipsum nisl. Nullam luctus viverra augue id feugiat. Fusce sollicitudin sed massa eget blandit. Pellentesque tempus lacinia metus, nec facilisis massa varius eget. Proin in felis sed arcu faucibus scelerisque. Sed hendrerit tortor nisl, sed mattis lectus luctus at. Nulla et lorem ac est venenatis posuere. Vivamus eget vehicula purus, sit amet mollis nunc. Phasellus pellentesque nisi eu porttitor egestas. Aliquam a aliquam lectus, eu iaculis mauris.
Suspendisse eu gravida orci. Suspendisse vehicula sagittis libero quis lobortis. Suspendisse potenti. Sed imperdiet ligula eu tellus tincidunt rutrum. Vivamus vel nibh vel lacus efficitur tempus. Maecenas sit amet erat at sapien blandit congue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vel nunc hendrerit, venenatis sapien nec, commodo libero. Ut vehicula porta euismod. Vivamus eu dolor neque. Mauris a dui faucibus, elementum dui nec, condimentum nibh.
Etiam aliquam, arcu eget ornare elementum, leo magna sollicitudin augue, vel dapibus lectus nisi ac ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec semper lacus mauris, ac maximus lectus volutpat nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed interdum, velit non sollicitudin volutpat, purus tellus aliquam lacus, et scelerisque ex nisi et ex. Vivamus porta purus ac mauris placerat, venenatis suscipit augue accumsan. Cras consequat dapibus efficitur.
Phasellus diam felis, condimentum vitae diam nec, tincidunt bibendum elit. Donec condimentum, orci in euismod vestibulum, sapien massa maximus lectus, vel interdum magna magna non lectus. Integer vitae nunc nec urna feugiat venenatis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent sapien velit, molestie nec molestie vel, sodales at mauris. Maecenas accumsan malesuada ipsum eget pellentesque. Nam aliquet leo sit amet felis facilisis facilisis. Vivamus aliquam iaculis eros, non bibendum elit convallis ut. Quisque ut varius arcu. Vivamus pellentesque nisi vitae nisi vulputate, quis dapibus est efficitur. Aenean eget ipsum in lorem aliquet efficitur aliquet a est. In sit amet vehicula eros. Donec dui nulla, ultrices ut nisi non, ornare viverra ante.
Proin facilisis sit amet velit placerat porttitor. In congue risus id tempus congue. Cras rutrum justo at ultricies faucibus. Ut sed turpis nec nulla malesuada feugiat sed eu risus. In mattis eu tellus sit amet commodo. Nam molestie vulputate ullamcorper. Curabitur egestas ligula ut urna blandit faucibus.
And this is what I get:
The problem is that quarto and/or the titlepage extension issues \restoregeometry at the wrong place. If one looks at the intermediate .tex file, one will see code like this:
...
\clearpage
\restoregeometry
%%% TITLE PAGE END
\end{titlepage}
...
However \restoregeometry needs to be used after the title page is closed (it would also make more sense to have the \clearpage after the title page...)
You can work around it my manually adding one more \restoregeometry before your text:
---
title: "Here we have a title, not too long"
author: "First Author and Second Author"
date: last-modified
date-format: "d-MMMM-YYYY"
lang: "es"
format:
titlepage-pdf:
documentclass: scrreport
titlepage: plain
titlepage-geometry:
- top=90mm
- bottom=60mm
- right=30mm
- left=30mm
titlepage-logo: "example-image-duck"
titlepage-bg-image: "example-image-duck"
titlepage-theme:
elements: ["\\titleblock", "\\logoblock", "\\authorblock", "(some additional information)" ]
page-fontfamily: "Helvetica Neue"
page-align: center
title-fontsize: 30
title-align: center
title-fontstyle: []
title-space-after: 3cm
author-fontsize: 16
author-style: plain
logo-align: center
logo-size: 4cm
logo-space-after: 4cm
bg-image-location: "ULCorner"
bg-image-size: 21cm
editor: visual
---
\restoregeometry
## Introdución
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec condimentum eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue tellus at vehicula interdum. Vivamus dapibus ante vitae rhoncus posuere. Ut ut ipsum nisl. Nullam luctus viverra augue id feugiat. Fusce sollicitudin sed massa eget blandit. Pellentesque tempus lacinia metus, nec facilisis massa varius eget. Proin in felis sed arcu faucibus scelerisque. Sed hendrerit tortor nisl, sed mattis lectus luctus at. Nulla et lorem ac est venenatis posuere. Vivamus eget vehicula purus, sit amet mollis nunc. Phasellus pellentesque nisi eu porttitor egestas. Aliquam a aliquam lectus, eu iaculis mauris.
Suspendisse eu gravida orci. Suspendisse vehicula sagittis libero quis lobortis. Suspendisse potenti. Sed imperdiet ligula eu tellus tincidunt rutrum. Vivamus vel nibh vel lacus efficitur tempus. Maecenas sit amet erat at sapien blandit congue. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vivamus vel nunc hendrerit, venenatis sapien nec, commodo libero. Ut vehicula porta euismod. Vivamus eu dolor neque. Mauris a dui faucibus, elementum dui nec, condimentum nibh.
Etiam aliquam, arcu eget ornare elementum, leo magna sollicitudin augue, vel dapibus lectus nisi ac ipsum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec semper lacus mauris, ac maximus lectus volutpat nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed interdum, velit non sollicitudin volutpat, purus tellus aliquam lacus, et scelerisque ex nisi et ex. Vivamus porta purus ac mauris placerat, venenatis suscipit augue accumsan. Cras consequat dapibus efficitur.
Phasellus diam felis, condimentum vitae diam nec, tincidunt bibendum elit. Donec condimentum, orci in euismod vestibulum, sapien massa maximus lectus, vel interdum magna magna non lectus. Integer vitae nunc nec urna feugiat venenatis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Praesent sapien velit, molestie nec molestie vel, sodales at mauris. Maecenas accumsan malesuada ipsum eget pellentesque. Nam aliquet leo sit amet felis facilisis facilisis. Vivamus aliquam iaculis eros, non bibendum elit convallis ut. Quisque ut varius arcu. Vivamus pellentesque nisi vitae nisi vulputate, quis dapibus est efficitur. Aenean eget ipsum in lorem aliquet efficitur aliquet a est. In sit amet vehicula eros. Donec dui nulla, ultrices ut nisi non, ornare viverra ante.
Proin facilisis sit amet velit placerat porttitor. In congue risus id tempus congue. Cras rutrum justo at ultricies faucibus. Ut sed turpis nec nulla malesuada feugiat sed eu risus. In mattis eu tellus sit amet commodo. Nam molestie vulputate ullamcorper. Curabitur egestas ligula ut urna blandit faucibus.
Float options are not working for "latex" format pdf renders.
MWE:
---
title: ""
author: "Jono3030"
output:
html_document: default
pdf_document:
keep_tex: no
---
```{r echo=F, message=F, warning=F}
library(dplyr)
library(knitr)
library(kableExtra)
```
```{r, echo=FALSE}
out_type <- knitr::opts_knit$get("rmarkdown.pandoc.to")
```
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna in eleifend commodo. Praesent et tristique ligula, eget pretium eros. Ut congue leo nibh, a volutpat erat efficitur sed. Aliquam rhoncus mollis diam nec bibendum. Suspendisse eget massa a dui elementum tempus. Maecenas a lacus a odio bibendum eleifend sed ac mauris. Nunc molestie dui dignissim, egestas elit quis, suscipit erat. Donec id suscipit lectus, nec mollis nisl. Quisque ultrices quis eros in hendrerit. Etiam enim metus, vestibulum nec congue vitae, tempus eu ex. Ut vehicula elementum orci, vitae viverra mi tristique ac.
```{r demotable, results='asis', echo=F, message=F, warning=F}
latex_table <- tibble(col1=c(runif(9, 1, 99)), col2=c(runif(9, 1, 99))) %>%
kable(format="latex",
booktabs = T,
linesep = '',
caption = "MRE") %>%
kable_styling(full_width = F, position = "float_right")
html_table <- tibble(col1=c(runif(9, 1, 99)), col2=c(runif(9, 1, 99))) %>%
kable(format="html",
caption = "MRE") %>%
kable_styling(full_width = F, position = "float_right")
switch(out_type,
html = html_table,
latex = latex_table
)
```
Sed in efficitur mauris. Donec vulputate non leo eget commodo. Vivamus luctus arcu at lorem pulvinar condimentum. Nullam felis risus, mattis vel accumsan vehicula, ullamcorper in risus. Nullam ullamcorper dignissim massa, ac tristique nibh fringilla in. Proin tortor est, ornare sit amet magna non, eleifend feugiat sapien. Fusce quis augue quis lectus dignissim consequat vel et dui. Aliquam dui eros, cursus a mauris id, volutpat blandit tellus. Nunc porta tincidunt rhoncus. Donec fermentum sem et justo ultricies, ut ullamcorper quam vehicula. Aenean commodo velit rhoncus nibh tristique, at sollicitudin nibh ultricies. Curabitur odio enim, fringilla id neque a, pharetra lobortis urna. Curabitur suscipit quam vitae libero vestibulum, vel ornare arcu pharetra. Sed sagittis mauris faucibus arcu tincidunt elementum. In sodales tincidunt iaculis.
Cras a eleifend sapien, a eleifend nulla. Donec ultrices molestie nibh sed facilisis. Aliquam eu hendrerit justo. Nullam ac dictum dui. Nullam ac lectus ut nisl consequat ornare. Sed accumsan rutrum varius. Nam nec felis id elit viverra consequat et non lorem.
Pellentesque eget blandit lorem. Curabitur at ultricies leo, sed porttitor erat. Vivamus fringilla erat a arcu scelerisque vestibulum. Maecenas non mollis lectus. Aenean a ipsum sem. Aenean nec hendrerit lacus, at ornare neque. Phasellus id nisi non risus faucibus condimentum.
Nulla a nulla a nulla dapibus scelerisque. Pellentesque molestie leo id porta tincidunt. Ut venenatis interdum egestas. Ut id maximus libero, ut iaculis lacus. Praesent sit amet bibendum lacus. Donec venenatis at mauris sit amet mollis. Donec eleifend nibh mauris, in euismod nisi hendrerit a. Cras porttitor rhoncus diam eget rutrum. Phasellus condimentum maximus felis sit amet fermentum. Aenean lacinia ornare dolor, sit amet finibus magna tempor sed.
The MWE results in this:
I'm wondering if someone can reproduce this issue since I haven't found anything on it on stackoverflow or anywhere else.
There are no issues when using the "html" format:
Am I missing something here? Is the float option only available for the "html" format?
Edit: sessionInfo() as requested by #J_F
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.7.0
LAPACK: /usr/lib/lapack/liblapack.so.3.7.0
locale:
[1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
[5] LC_MONETARY=en_CA.UTF-8 LC_MESSAGES=en_CA.UTF-8 LC_PAPER=en_CA.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_1.1.0 knitr_1.24 dplyr_0.8.3 nvimcom_0.9-82
loaded via a namespace (and not attached):
[1] Rcpp_1.0.2 rstudioapi_0.10 xml2_1.2.2 magrittr_1.5 hms_0.5.0 munsell_0.5.0
[7] tidyselect_0.2.5 rvest_0.3.4 viridisLite_0.3.0 colorspace_1.4-1 R6_2.4.0 rlang_0.4.0
[13] stringr_1.4.0 httr_1.4.1 tools_3.6.3 webshot_0.5.1 xfun_0.8 htmltools_0.3.6
[19] assertthat_0.2.1 digest_0.6.20 tibble_2.1.3 crayon_1.3.4 purrr_0.3.2 readr_1.3.1
[25] vctrs_0.2.0 zeallot_0.1.0 glue_1.3.1.9000 evaluate_0.14 rmarkdown_1.14 stringi_1.4.3
[31] compiler_3.6.3 pillar_1.4.2 scales_1.0.0 backports_1.1.4 pkgconfig_2.0.2
Right here: How to I keep a kable caption with a floating table? user #bttomio suggests a solution based on this thread: https://github.com/haozhu233/kableExtra/issues/221#issuecomment-400473530
Once added proper libraries (I've also modified first R chunk!), in your case the implementation of this solution could look like that:
---
title: "Test"
author: "gnypit"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(tinytex.verbose = TRUE)
library(knitr)
library(kableExtra)
library(tibble)
library(xtable)
```
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vulputate urna in
eleifend commodo. Praesent et tristique ligula, eget pretium eros. Ut congue leo nibh,
a volutpat erat efficitur sed. Aliquam rhoncus mollis diam nec bibendum. Suspendisse
eget massa a dui elementum tempus. Maecenas a lacus a odio bibendum eleifend sed ac
mauris. Nunc molestie dui dignissim, egestas elit quis, suscipit erat. Donec id
suscipit lectus, nec mollis nisl. Quisque ultrices quis eros in hendrerit. Etiam enim
metus, vestibulum nec congue vitae, tempus eu ex. Ut vehicula elementum orci, vitae
viverra mi tristique ac.
```{r, echo=FALSE}
xtable2kable <- function(x)
{
out <- capture.output(print(x, table.placement = NULL))[-(1:2)]
out <- paste(out, collapse = "\n")
structure(out, format = "latex", booktabs = T, linesep = '', class = "knitr_kable")
}
data <- tibble(col1=c(runif(9, 1, 99)), col2=c(runif(9, 1, 99)))
xtable(data, caption = "MRE") %>%
xtable2kable() %>%
kable_styling(position = "float_right")
```
Sed in efficitur mauris. Donec vulputate non leo eget commodo. Vivamus luctus arcu at
lorem pulvinar condimentum. Nullam felis risus, mattis vel accumsan vehicula,
ullamcorper in risus. Nullam ullamcorper dignissim massa, ac tristique nibh fringilla
in. Proin tortor est, ornare sit amet magna non, eleifend feugiat sapien. Fusce quis
augue quis lectus dignissim consequat vel et dui. Aliquam dui eros, cursus a mauris
id, volutpat blandit tellus. Nunc porta tincidunt rhoncus. Donec fermentum sem et
justo ultricies, ut ullamcorper quam vehicula. Aenean commodo velit rhoncus nibh
tristique, at sollicitudin nibh ultricies. Curabitur odio enim, fringilla id neque a,
pharetra lobortis urna. Curabitur suscipit quam vitae libero vestibulum, vel ornare
arcu pharetra. Sed sagittis mauris faucibus arcu tincidunt elementum. In sodales
tincidunt iaculis.
Cras a eleifend sapien, a eleifend nulla. Donec ultrices molestie nibh sed facilisis.
Aliquam eu hendrerit justo. Nullam ac dictum dui. Nullam ac lectus ut nisl consequat
ornare. Sed accumsan rutrum varius. Nam nec felis id elit viverra consequat et non
lorem.
Pellentesque eget blandit lorem. Curabitur at ultricies leo, sed porttitor erat.
Vivamus fringilla erat a arcu scelerisque vestibulum. Maecenas non mollis lectus.
Aenean a ipsum sem. Aenean nec hendrerit lacus, at ornare neque. Phasellus id nisi non
risus faucibus condimentum.
Nulla a nulla a nulla dapibus scelerisque. Pellentesque molestie leo id porta
tincidunt. Ut venenatis interdum egestas. Ut id maximus libero, ut iaculis lacus.
Praesent sit amet bibendum lacus. Donec venenatis at mauris sit amet mollis. Donec
eleifend nibh mauris, in euismod nisi hendrerit a. Cras porttitor rhoncus diam eget
rutrum. Phasellus condimentum maximus felis sit amet fermentum. Aenean lacinia ornare
dolor, sit amet finibus magna tempor sed.
I have a groff document, however, when I set the trap to create a footer, groff puts one word after the specified height, then executes the macro for the trap. I am compilinig the document with groff -Tpdf -P-pletter ex.groff > ex.pdf.
ex.groff:
.de foot
. bp
..
.wh -1i foot
.ls 2
.nh
.ad l
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In pulvinar, ex id ultricies tincidunt, ligula neque hendrerit velit, id feugiat enim nisl eu justo.
In bibendum elementum auctor.
Fusce dapibus sed nulla in malesuada.
Ut vehicula ultrices nibh, at iaculis est consectetur vitae.
Phasellus condimentum est in elit ultrices mattis.
Mauris orci sem, dictum eleifend augue vitae, fermentum convallis nunc.
In semper vitae nunc a congue.
Pellentesque pretium risus vitae turpis mollis, a blandit lacus vestibulum.
Vivamus congue urna mauris, ac viverra ipsum tristique id.
Maecenas mauris massa, ullamcorper eu fringilla consequat, molestie ac nunc.
Etiam luctus tortor id odio fringilla, eu eleifend leo imperdiet.
.br
Integer venenatis et mi dignissim dictum.
Duis rutrum tortor lectus, eget pulvinar risus viverra id.
Vivamus vel vestibulum neque, in posuere libero.
Praesent eu erat ut ligula consequat consectetur sed nec magna.
Pellentesque vitae rhoncus felis.
Suspendisse potenti.
Nullam in sodales nisi.
Nulla vitae tempus sem, non laoreet felis.
.br
Fusce velit metus, condimentum non ultricies facilisis, dignissim eu diam.
Donec lorem ante, pulvinar et congue non, iaculis ac leo.
Nam sit amet risus dui.
Mauris lorem nunc, facilisis non odio dapibus, gravida posuere leo.
Quisque pellentesque tincidunt dolor sed eleifend.
Nam eget augue feugiat, tincidunt orci et, tempor quam.
Suspendisse purus mi, mollis quis porta quis, tincidunt vel odio.
Pellentesque nisl sapien, posuere sed accumsan eget, elementum vel est.
Maecenas cursus neque quis arcu varius, at efficitur dui dictum.
.br
Etiam semper ultrices ipsum, eget gravida risus condimentum vel.
Suspendisse sed tincidunt lectus.
Suspendisse faucibus gravida lorem, vel volutpat eros hendrerit nec.
Vestibulum ac leo eget metus sollicitudin rhoncus.
Fusce venenatis ligula a sodales varius.
Etiam mauris nisi, ultricies eu ex quis, vehicula facilisis nulla.
Pellentesque eu arcu nec urna tempor fringilla.
Sed consectetur, leo at convallis finibus, nunc mi feugiat dolor, a tincidunt tortor ipsum vitae sem.
Vestibulum tincidunt, nisl vel hendrerit consequat, leo felis rutrum tellus, quis tempor odio leo in lectus.
Donec placerat tempor turpis nec efficitur.
Donec quis erat a augue tempor lacinia sit amet ac felis.
Donec a dui ut diam tempus cursus.
Sed auctor, lorem sed interdum blandit, erat dui tristique dolor, vitae condimentum lorem dui ac augue.
.br
Phasellus et dignissim lacus.
Vestibulum a dolor sodales est bibendum sodales.
Nulla gravida erat lacus, in placerat sapien consequat id.
Donec vitae pulvinar neque.
Etiam a semper augue.
Phasellus sed justo id velit imperdiet finibus.
Nam eget vulputate orci, ac congue nunc.
Pellentesque sollicitudin, nulla quis luctus pulvinar, velit ex feugiat leo, sed euismod ante odio at est.
Duis velit sapien, ornare vel vulputate in, consectetur non neque.
Curabitur non libero at magna venenatis cursus et vel urna.
.br
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In pulvinar, ex id ultricies tincidunt, ligula neque hendrerit velit, id feugiat enim nisl eu justo.
In bibendum elementum auctor.
Fusce dapibus sed nulla in malesuada.
Ut vehicula ultrices nibh, at iaculis est consectetur vitae.
Phasellus condimentum est in elit ultrices mattis.
Mauris orci sem, dictum eleifend augue vitae, fermentum convallis nunc.
In semper vitae nunc a congue.
Pellentesque pretium risus vitae turpis mollis, a blandit lacus vestibulum.
Vivamus congue urna mauris, ac viverra ipsum tristique id.
Maecenas mauris massa, ullamcorper eu fringilla consequat, molestie ac nunc.
Etiam luctus tortor id odio fringilla, eu eleifend leo imperdiet.
which produces the undesired word right after the trap height (the word on the final line should be on the next page)
How can I make it so this word appears on the next page, instead of right where the trap should be?
I dont have the reference to hand, but from my notes, in the table listing the basic troff commands we have
.bp +-N N=1 Bbv new page. number of next page
where Bbv are a set of flags including this: b will cause line break unless use ' instead of . so the answer is to define your macro to call 'bp instead of .bp.
.de foot
' bp
..
The online groff doc briefly says about requests:
A request line begins with a control character, which is either a
single quote (', the no-break control character) or a period (., the normal control character).
and for bp has an example using 'bp.
I've a section at the middle of the page. At the left side of this section is vertical menu. I'm trying to affix this left menu. At the first glance it's working well, but when you scroll down and then scroll up, the affix plugin breaks down. I'm using 3.3.7 bootstrap adn 3.2.1 jquery. jsFiddle
$("#myNav").affix({
offset: {
top: function($el) {
var top = $("#sections").offset().top;
console.log(top);
return top;
},
bottom: function($el) {
var bottom = document.body.scrollHeight - $("#sections").offset().top - $("#sections").outerHeight(true);
console.log(bottom)
return bottom;
}
}
});
Try This happy Coding :)
$("#myNav").affix({
offset: {
top: function($el) {
var top = $(".row").offset().top;
return top;
}
}
});
/* Custom Styles */
ul.nav-tabs{
width: 140px;
margin-top: 20px;
border-radius: 4px;
border: 1px solid #ddd;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.067);
}
ul.nav-tabs li{
margin: 0;
border-top: 1px solid #ddd;
}
ul.nav-tabs li:first-child{
border-top: none;
}
ul.nav-tabs li a{
margin: 0;
padding: 8px 16px;
border-radius: 0;
}
ul.nav-tabs li.active a, ul.nav-tabs li.active a:hover{
color: #fff;
background: #0088cc;
border: 1px solid #0088cc;
}
ul.nav-tabs li:first-child a{
border-radius: 4px 4px 0 0;
}
ul.nav-tabs li:last-child a{
border-radius: 0 0 4px 4px;
}
ul.nav-tabs.affix{
top: 30px; /* Set the top position of pinned element */
}
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<div class="jumbotron">
<h1>Bootstrap Affix</h1>
</div>
<div class="row">
<div class="col-xs-3">
<ul class="nav nav-tabs nav-stacked" id="myNav">
<li class="active">Section One</li>
<li>Section Two</li>
<li>Section Three</li>
<li>Section Four</li>
<li>Section Five</li>
</ul>
</div>
<div class="col-xs-8 col-xs-offset-1" id="sections">
<h2 id="section-1">Section One</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eu sem tempor, varius quam at, luctus dui. Mauris magna metus, dapibus nec turpis vel, semper malesuada ante. Vestibulum id metus ac nisl bibendum scelerisque non non purus. Suspendisse varius nibh non aliquet sagittis. In tincidunt orci sit amet elementum vestibulum. Vivamus fermentum in arcu in aliquam. Quisque aliquam porta odio in fringilla. Vivamus nisl leo, blandit at bibendum eu, tristique eget risus. Integer aliquet quam ut elit suscipit, id interdum neque porttitor. Integer faucibus ligula.</p>
<p>Vestibulum quis quam ut magna consequat faucibus. Pellentesque eget nisi a mi suscipit tincidunt. Ut tempus dictum risus. Pellentesque viverra sagittis quam at mattis. Suspendisse potenti. Aliquam sit amet gravida nibh, facilisis gravida odio. Phasellus auctor velit at lacus blandit, commodo iaculis justo viverra. Etiam vitae est arcu. Mauris vel congue dolor. Aliquam eget mi mi. Fusce quam tortor, commodo ac dui quis, bibendum viverra erat. Maecenas mattis lectus enim, quis tincidunt dui molestie euismod. Curabitur et diam tristique, accumsan nunc eu, hendrerit tellus.</p>
<hr>
<h2 id="section-2">Section Two</h2>
<p>Nullam hendrerit justo non leo aliquet imperdiet. Etiam in sagittis lectus. Suspendisse ultrices placerat accumsan. Mauris quis dapibus orci. In dapibus velit blandit pharetra tincidunt. Quisque non sapien nec lacus condimentum facilisis ut iaculis enim. Sed viverra interdum bibendum. Donec ac sollicitudin dolor. Sed fringilla vitae lacus at rutrum. Phasellus congue vestibulum ligula sed consequat.</p>
<p>Vestibulum consectetur scelerisque lacus, ac fermentum lorem convallis sed. Nam odio tortor, dictum quis malesuada at, pellentesque vitae orci. Vivamus elementum, felis eu auctor lobortis, diam velit egestas lacus, quis fermentum metus ante quis urna. Sed at facilisis libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vestibulum bibendum blandit dolor. Nunc orci dolor, molestie nec nibh in, hendrerit tincidunt ante. Vivamus sem augue, hendrerit non sapien in, mollis ornare augue.</p>
<hr>
<h2 id="section-3">Section Three</h2>
<p>Integer pulvinar leo id risus pellentesque vestibulum. Sed diam libero, sodales eget sapien vel, porttitor bibendum enim. Donec sed nibh vitae lorem porttitor blandit in nec ante. Pellentesque vitae metus ipsum. Phasellus sed nunc ac sem malesuada condimentum. Etiam in aliquam lectus. Nam vel sapien diam. Donec pharetra id arcu eget blandit. Proin imperdiet mattis augue in porttitor. Quisque tempus enim id lobortis feugiat. Suspendisse tincidunt risus quis dolor fringilla blandit. Ut sed sapien at purus lacinia porttitor. Nullam iaculis, felis a pretium ornare, dolor nisl semper tortor, vel sagittis lacus est consequat eros. Sed id pretium nisl. Curabitur dolor nisl, laoreet vitae aliquam id, tincidunt sit amet mauris.</p>
<p>Phasellus vitae suscipit justo. Mauris pharetra feugiat ante id lacinia. Etiam faucibus mauris id tempor egestas. Duis luctus turpis at accumsan tincidunt. Phasellus risus risus, volutpat vel tellus ac, tincidunt fringilla massa. Etiam hendrerit dolor eget ante rutrum adipiscing. Cras interdum ipsum mattis, tempus mauris vel, semper ipsum. Duis sed dolor ut enim lobortis pellentesque ultricies ac ligula. Pellentesque convallis elit nisi, id vulputate ipsum ullamcorper ut. Cras ac pulvinar purus, ac viverra est. Suspendisse potenti. Integer pellentesque neque et elementum tempus. Curabitur bibendum in ligula ut rhoncus.</p>
<p>Quisque pharetra velit id velit iaculis pretium. Nullam a justo sed ligula porta semper eu quis enim. Pellentesque pellentesque, metus at facilisis hendrerit, lectus velit facilisis leo, quis volutpat turpis arcu quis enim. Nulla viverra lorem elementum interdum ultricies. Suspendisse accumsan quam nec ante mollis tempus. Morbi vel accumsan diam, eget convallis tellus. Suspendisse potenti.</p>
<hr>
<h2 id="section-4">Section Four</h2>
<p>Suspendisse a orci facilisis, dignissim tortor vitae, ultrices mi. Vestibulum a iaculis lacus. Phasellus vitae convallis ligula, nec volutpat tellus. Vivamus scelerisque mollis nisl, nec vehicula elit egestas a. Sed luctus metus id mi gravida, faucibus convallis neque pretium. Maecenas quis sapien ut leo fringilla tempor vitae sit amet leo. Donec imperdiet tempus placerat. Pellentesque pulvinar ultrices nunc sed ultrices. Morbi vel mi pretium, fermentum lacus et, viverra tellus. Phasellus sodales libero nec dui convallis, sit amet fermentum sapien auctor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed eu elementum nibh, quis varius libero.</p>
<p>Vestibulum quis quam ut magna consequat faucibus. Pellentesque eget nisi a mi suscipit tincidunt. Ut tempus dictum risus. Pellentesque viverra sagittis quam at mattis. Suspendisse potenti. Aliquam sit amet gravida nibh, facilisis gravida odio. Phasellus auctor velit at lacus blandit, commodo iaculis justo viverra. Etiam vitae est arcu. Mauris vel congue dolor. Aliquam eget mi mi. Fusce quam tortor, commodo ac dui quis, bibendum viverra erat. Maecenas mattis lectus enim, quis tincidunt dui molestie euismod. Curabitur et diam tristique, accumsan nunc eu, hendrerit tellus.</p>
<p>Phasellus fermentum, neque sit amet sodales tempor, enim ante interdum eros, eget luctus ipsum eros ut ligula. Nunc ornare erat quis faucibus molestie. Proin malesuada consequat commodo. Mauris iaculis, eros ut dapibus luctus, massa enim elementum purus, sit amet tristique purus purus nec felis. Morbi vestibulum sapien eget porta pulvinar. Nam at quam diam. Proin rhoncus, felis elementum accumsan dictum, felis nisi vestibulum tellus, et ultrices risus felis in orci. Quisque vestibulum sem nisl, vel congue leo dictum nec. Cras eget est at velit sagittis ullamcorper vel et lectus. In hac habitasse platea dictumst. Etiam interdum iaculis velit, vel sollicitudin lorem feugiat sit amet. Etiam luctus, quam sed sodales aliquam, lorem libero hendrerit urna, faucibus rhoncus massa nibh at felis. Curabitur ac tempus nulla, ut semper erat. Vivamus porta ullamcorper sem, ornare egestas mauris facilisis id.</p>
<p>Ut ut risus nisl. Fusce porttitor eros at magna luctus, non congue nulla eleifend. Aenean porttitor feugiat dolor sit amet facilisis. Pellentesque venenatis magna et risus commodo, a commodo turpis gravida. Nam mollis massa dapibus urna aliquet, quis iaculis elit sodales. Sed eget ornare orci, eu malesuada justo. Nunc lacus augue, dictum quis dui id, lacinia congue quam. Nulla sem sem, aliquam nec dolor ac, tempus convallis nunc. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla suscipit convallis iaculis. Quisque eget commodo ligula. Praesent leo dui, facilisis quis eleifend in, aliquet vitae nunc. Suspendisse fermentum odio ac massa ultricies pellentesque. Fusce eu suscipit massa.</p>
<hr>
<h2 id="section-5">Section Five</h2>
<p>Nam eget purus nec est consectetur vehicula. Nullam ultrices nisl risus, in viverra libero egestas sit amet. Etiam porttitor dolor non eros pulvinar malesuada. Vestibulum sit amet est mollis nulla tempus aliquet. Praesent luctus hendrerit arcu non laoreet. Morbi consequat placerat magna, ac ornare odio sagittis sed. Donec vitae ullamcorper purus. Vivamus non metus ac justo porta volutpat.</p>
<p>Vivamus mattis accumsan erat, vel convallis risus pretium nec. Integer nunc nulla, viverra ut sem non, scelerisque vehicula arcu. Fusce bibendum convallis augue sit amet lobortis. Cras porta urna turpis, sodales lobortis purus adipiscing id. Maecenas ullamcorper, turpis suscipit pellentesque fringilla, massa lacus pulvinar mi, nec dignissim velit arcu eget purus. Nam at dapibus tellus, eget euismod nisl. Ut eget venenatis sapien. Vivamus vulputate varius mauris, vel varius nisl facilisis ac. Nulla aliquet justo a nibh ornare, eu congue neque rutrum.</p>
<p>Suspendisse a orci facilisis, dignissim tortor vitae, ultrices mi. Vestibulum a iaculis lacus. Phasellus vitae convallis ligula, nec volutpat tellus. Vivamus scelerisque mollis nisl, nec vehicula elit egestas a. Sed luctus metus id mi gravida, faucibus convallis neque pretium. Maecenas quis sapien ut leo fringilla tempor vitae sit amet leo. Donec imperdiet tempus placerat. Pellentesque pulvinar ultrices nunc sed ultrices. Morbi vel mi pretium, fermentum lacus et, viverra tellus. Phasellus sodales libero nec dui convallis, sit amet fermentum sapien auctor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed eu elementum nibh, quis varius libero.</p>
<p>Morbi sed fermentum ipsum. Morbi a orci vulputate tortor ornare blandit a quis orci. Donec aliquam sodales gravida. In ut ullamcorper nisi, ac pretium velit. Vestibulum vitae lectus volutpat, consequat lorem sit amet, pulvinar tellus. In tincidunt vel leo eget pulvinar. Curabitur a eros non lacus malesuada aliquam. Praesent et tempus odio. Integer a quam nunc. In hac habitasse platea dictumst. Aliquam porta nibh nulla, et mattis turpis placerat eget. Pellentesque dui diam, pellentesque vel gravida id, accumsan eu magna. Sed a semper arcu, ut dignissim leo.</p>
<p>Sed vitae lobortis diam, id molestie magna. Aliquam consequat ipsum quis est dictum ultrices. Aenean nibh velit, fringilla in diam id, blandit hendrerit lacus. Donec vehicula rutrum tellus eget fermentum. Pellentesque ac erat et arcu ornare tincidunt. Aliquam erat volutpat. Vivamus lobortis urna quis gravida semper. In condimentum, est a faucibus luctus, mi dolor cursus mi, id vehicula arcu risus a nibh. Pellentesque blandit sapien lacus, vel vehicula nunc feugiat sit amet.</p>
</div>
</div>
<div style="margin-top: 700px">
</div>
</div>
I need a help
I have this:
NSString *txt1 = #"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ac elit in est volutpat laoreet. Sed in turpis id odio molestie commodo et et felis. Praesent at magna mauris, at rutrum lacus. Fusce eu dictum erat. Etiam tellus quam, aliquam a imperdiet non, tempor nec est. Proin quis est lectus. Sed facilisis mauris scelerisque erat auctor ut tempor tellus consectetur. In sed erat non massa tincidunt consectetur. Proin vitae sollicitudin dolor. Morbi euismod hendrerit lorem vitae facilisis. Curabitur suscipit odio in felis eleifend non porttitor dui auctor. Aenean sed libero mauris, vel sagittis neque. Mauris lobortis posuere sapien eget tempus. Sed scelerisque viverra scelerisque. Proin pharetra, tortor in adipiscing egestas, ante massa ultrices tellus, vitae molestie enim ante id diam. Aenean auctor mi a massa aliquet et facilisis nisi dignissim. Proin mauris turpis, fringilla et viverra ut, porta ac massa. Nulla adipiscing tincidunt metus, eget faucibus enim luctus interdum. Suspendisse tortor nibh, elementum ut dictum ac, ultricies quis nulla. Donec dictum, felis ac fermentum facilisis, augue dui mattis orci, ac feugiat mauris ante sit amet ligula. Nullam in dolor velit, non consectetur nisl. Nunc nec risus ante. Maecenas sapien dolor, faucibus a condimentum nec, luctus ut nulla. Donec feugiat ullamcorper risus. Quisque consequat pharetra velit, nec venenatis nibh pretium vitae. Mauris tempor tincidunt sagittis.";
NSString *txt2 = #"Quisque nec dui mauris, eget vestibulum arcu. Duis sed lacus lectus. Proin fermentum sapien eer conubia nostra, per inceptos himenaeos Quisque nec dui mauris, eget vestibulum arcu. Duis sed lacus lectus. Proin fermentum sapien eer conubia nostra, per inceptos himenaeos Quisque nec dui mauris, eget vestibulum arcu. Duis sed lacus lectus.";
NSString *txt3 = #"Suspendisse id arcu malesuada sem varius bibendum eu sit amet diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur quis tortor tristique nibh hendrerit luctus. Nullam nec augue quis libero malesuada blandit. Suspendisse et tellus dolor, eleifend condimentum augue. Aenean interdum, lorem a tincidunt laoreet, nisi neque dictum mi, ac laoreet lacus sem iaculis lorem. Cras ullamcorper mauris et quam euismod ac semper libero volutpat. Etiam massa risus, lobortis facilisis hendrerit eu, blandit sit amet nisi. Quisque sit amet nunc vel nunc aliquet dignissim in eget est. Aliquam erat volutpat. Donec varius suscipit dolor nec placerat. Ut eu dui vel nisl pretium sagittis nec quis risus. Suspendisse ut arcu enim, sit amet posuere libero. In dui magna, viverra id dictum eget, ornare et erat. Phasellus sit amet mi a magna iaculis scelerisque id eget turpis. Nam vitae mauris nunc. Curabitur erat ligula, consequat sit amet blandit ut, luctus in dui. Pellentesque non dignissim neque. Mauris mollis, lorem a aliquam faucibus, mi libero dignissim nisi, non luctus tortor mi vel magna. Vestibulum pellentesque, quam id consectetur iaculis, ipsum nibh aliquam nisi, eget tempor metus ipsum at neque. Vivamus elit urna, vestibulum varius pulvinar sit amet, vehicula quis ligula. Sed semper urna a erat pretium ut semper sem euismod.";
NSArray *textos = [[NSArray alloc] initWithObjects:txt1,txt2,txt3,nil];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,768,1024)];
scrollView.pagingEnabled = YES;
[scrollView setIndicatorStyle:UIScrollViewIndicatorStyleWhite];
int numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) {
CGFloat xOrigin = i * 768;
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(xOrigin,0,768,1024)];
[textView setText:[textos objectAtIndex:i]];
CGRect frameText = textView.frame;
frameText.size.height = textView.contentSize.height;
textView.frame = frameText;
[scrollView addSubview:textView];
[textView release];
}
scrollView.contentSize = CGSizeMake(numberOfViews * 768, 1024);
[self.view addSubview:scrollView];
And show a UIScrollView with pages, but the first text is biggest then 1024 pixels of the height.
how can I cut the text and put leftovers in another page with txt2?
Thanks
I don't know if there is any inbuilt functionality to do this but you can try this thing
UIFont *font = [UIFont systemFontOfSize:14.0];
NSArray *arrTxt1 = [txt1 componentsSeparatedByString:#" "];
NSMutableString *restOFStr = [[NSMutableString alloc] init];
NSMutableString *initialStr = [[NSMutableString alloc] init];
BOOL gotStr = NO;
for (NSString *tStr in arrTxt1) {
if (gotStr) {
[initialStr appendString:tStr];
CGSize size = [initialStr sizeWithFont:font constrainedToSize:CGSizeMake(768, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
if(size.height > 1024){
// Displayed in first page
[initialStr deleteCharactersInRange:NSMakeRange(initialStr.length-tStr.length, tStr.length)];
//Add tStr to restOfStr
[restOFStr appendString:tStr];
gotStr = YES;
}
else {
[initialStr appendString:#" "];
}
}
else {
//Collect the rest of string
[restOFStr appendString:tStr];
}
}
Edit
The logic here I'm using is to get the string that fits in the 768x1024 UITextView.
For that I divided your string into components separated by space i.e. if your string is "Hello how are you?"
Then the array will have
arrTxt1[0]---->Hello
arrTxt1[1]---->how
arrTxt1[2]---->are
arrTxt1[3]---->you?
Then I'm calculating the size and checking if height is less than 1024 then I append the string and where it exceeds 1024 I stop appending.
At last you have initialStr which will fit in 768x1024 and restOFStr the leftover string.