Cross-platform compatibility???

I have a rather large project (a 533-page user manual) that I created in Scrivener 3 on a Mac. I opened it in the Windows version and tried to compile a pdf and noticed the following:

  1. The pdf outline is missing.
  2. References within the document are no longer clickable links.
  3. All of my images are missing. I used relative paths, e.g. “<$img:./_img/00_FrontMatter/CoverPage_w496.png;w=496>”
  4. Some lists have had an extra blank item added to the end.
  5. Some lists have become “nested”, e.g. “- item 1” becomes “- - item 1”

I tried compiling it to a docx as a test, and all the images are missing and the references are messed up. Everything is on Dropbox, and it is fully synced. I have not changed anything, including the folder structure, since the last time I compiled it on the Mac. Is there some sort of conversion process required?

Compatibility notes are available in the knowledge base, incidentally.

Regarding PDF output, the export engine available to the Windows developers is incapable of placing internal linkages between pages, and does not have any capacity for adding a table of contents to the PDF’s metadata. We always suggest that Scrivener’s PDF output is intended primarily for proofing, but this is more true on Windows. If you are intending to proof, you might try setting the compile option to Convert document links to link back to Scrivener.

As for links, aliases, shortcuts and file system bookmarks: you can expect most links to break given how UNIX file paths are different from Windows file paths—in general links are fragile across multiple systems, even of the same type. I think we do a little where we can, for example to consider slash direction as acceptable either way in some cases—but overall that’s not something that should be considered a software level compatibility. It will be better to reserve compilation for one system (probably the Mac) if you can, but if you cannot, then consider keeping the images in the project, and pointing your image link placeholders to the binder item titles, instead.

As for lists, yeah, tell me about it. Bullet compatibility has been a nightmare given how very differently they are formatted by each text engine. You’ll probably have noticed that on a Mac you can select the entire bullet line, and even style it or apply formatting to the whole line, bullet included. On the PC the bullet is a thing that doesn’t act like it “exists” in the editor.

Reposted from earlier.

I know there were a couple of replies to this, but they seem to have vanished (at least temporarily) with the new forum. I’ll try to address what I remember of them.

Pdf is the final form for this user manual. It used to be maintained in MS Word, but due to a combination of its size and the large number of images and cross-references, Word would periodically corrupt it. (It probably didn’t help that multiple people were editing it.) The last time that happened, I recreated it in Scrivener, thinking that its cross-platform availability would make it a good solution, rather than try to patch it up in Word again. I could in theory tell Scrivener to compile to some other format and generate the pdf from there, but with the references being messed up, that won’t work.

I know that it is possible to create internal document links in a pdf on Windows. MS Word, LibreOffice, LaTex, and the pdf editors that I regularly use all do it. I don’t know what pdf package(s) Scrivener is using internally, but those links seem to be basic functionality elsewhere, and if Scrivener can’t do them, that’s a show-stopper.

Regarding path differences between MacOS and Windows, all of my relative paths are perfectly valid on either system, as long as the separator ("/" vs “\”) is not an issue. I tried changing the separator on one of the images, but Scrivener still didn’t include it. One of the currently missing replies mentioned the possibility of using compile-time replacements to swap in the correct absolute path. I just tried replacing “./_img/” with the absolute path, and it does at least find the images now. Unfortunately, it’s not formatting them correctly, plus I couldn’t put this out with all the internal links missing even if the images were perfect.

To further complicate things, I replaced my Mac with a Windows box when the Mac started having hardware issues and it wasn’t clear if Apple was about to make it completely unusable for audio recording. I still have the Mac, but I don’t know if it will work the next time I turn it on, and I certainly can’t expect to use it for compiling Scrivener docs going forward. I have a Linux box, but my understanding is that the unofficial Linux version is the Windows version compiled for Linux, so it probably wouldn’t fix any of these issues.

Since my original Scrivener purchase, I have successfully used LaTeX for some other projects, and I suspect that will be the way forward, either starting from the TeX compile that I did a while back on the Mac, or just copying everything out of Scrivener.

The PDF generator being used is the one that comes with Qt5, so it is likely to be different from any of the others in your list. While LyX also uses Qt, it quite understandably does not use the Qt engine to create PDFs, but LaTeX. That isn’t really option for us, given we cannot assume everyone will have a functional distribution installed, never mind the complexities of conversion.

Speaking of LaTeX though, you might want to give the new-ish LaTeX template a try. It’s in the Non-Fiction category when you create a new project. It’s designed for those intending to author .tex files straight out of Scrivener. Personally I’ve always used the Markdown path to get to that point, but 95% of what I take to PDF is going through LaTeX, and 100% of that starts in Scrivener. It definitely does not have to be an either/or scenario.

Regarding relative links… hmmm. I think in fact that might be a problem/bug with the Windows version. That should be working, and definitely with “\” (but either way, I should think).

I’m currently using TeXstudio with XeLaTeX for some other projects. I will check out the new template.

“/” as a path separator works in the Windows version - I used it in my absolute path replacement to be consistent with the rest of the path.